Breeze.Sharp.JsonEntityConverter.PopulateEntity C# (CSharp) Method

PopulateEntity() protected method

protected PopulateEntity ( NodeContext nodeContext, IEntity entity ) : Object
nodeContext NodeContext
entity IEntity
return Object
    protected virtual Object PopulateEntity(NodeContext nodeContext, IEntity entity) {

      var aspect = entity.EntityAspect;
      if (aspect.EntityManager == null) {
        // new to this entityManager
        ParseObject(nodeContext, aspect);
        aspect.Initialize();
        // TODO: This is a nit.  Wierd case where a save adds a new entity will show up with
        // a AttachOnQuery operation instead of AttachOnSave
        _mappingContext.EntityManager.AttachQueriedEntity(entity, (EntityType)nodeContext.StructuralType);
      } else if (_mappingContext.MergeStrategy == MergeStrategy.OverwriteChanges || aspect.EntityState == EntityState.Unchanged) {
        // overwrite existing entityManager
        ParseObject(nodeContext, aspect);
        aspect.Initialize();
        aspect.OnEntityChanged(_mappingContext.LoadingOperation == LoadingOperation.Query ? EntityAction.MergeOnQuery : EntityAction.MergeOnSave);
      } else {
        // preserveChanges handling - we still want to handle expands.
        ParseObject(nodeContext, null);
      }

      return entity;
    }