コード例 #1
0
        internal virtual TEntity CreateEntity(object model, UpsertType upsertType)
        {
            var entity = Activator.CreateInstance <TEntity>();

            UpdateEntity(entity, model, upsertType);
            return(entity);
        }
コード例 #2
0
        protected internal virtual TEntity ToEntity(TModel model, UpsertType upsertType)
        {
            var entity = Entity.Create <TEntity>();

            entity.UpdateFrom(model, new EntityUpdateOptions(upsertType));
            return(entity);
        }
コード例 #3
0
        protected internal virtual TEntity CreateEntity(TIdentifier identifier, UpsertType upsertType)
        {
            var entity = Activator.CreateInstance <TEntity>();

            entity.Id = identifier;

            return(entity);
        }
コード例 #4
0
        internal override TEntity UpdateEntityInternal(TEntity entity, object model, UpsertType upsertType)
        {
            if (!(model is TModel tmodel))
            {
                throw new Exception("Model is not TModel");
            }

            return(UpdateEntityModel(entity, tmodel, upsertType));
        }
コード例 #5
0
        public EntityUpdateOptions(UpsertType upsertType = UpsertType.Instance, params KeyValuePair <string, object>[] options)
        {
            UpsertType = upsertType;

            if (options != null)
            {
                foreach (var option in options)
                {
                    Add(option.Key, option.Value);
                }
            }
        }
コード例 #6
0
        override internal TEntity UpdateEntity(TEntity entity, object model, UpsertType upsertType)
        {
            if (!(model is TModel tmodel))
            {
                throw new Exception("not good");
            }

            entity.Id = tmodel.Id;

            entity.UpdateFrom(tmodel);
            return(entity);
        }
コード例 #7
0
        internal override TEntity UpdateEntity(
            TEntity entity, object model, UpsertType upsertType)
        {
            var entityType = entity.GetType();

            var updateFromMethods = entityType.GetMethods()
                                    .Where(w => w.Name.Equals("UpdateFrom", StringComparison.OrdinalIgnoreCase));

            var actualUpdateFromMethod = updateFromMethods
                                         .SingleOrDefault(m => m.GetParameters()
                                                          .Any(p => p.ParameterType == model.GetType()));

            actualUpdateFromMethod?.Invoke(entity, new object[] { model, new EntityUpdateOptions(upsertType) });
            return(entity);
        }
コード例 #8
0
        public IEnumerable <TEntity> ToEntities(IEnumerable <TModel> models, UpsertType upsertType)
        {
            var es = new List <TEntity>();

            foreach (var model in models)
            {
                var e = wrapper.CreateEntity(model, upsertType);
                wrapper.UpdateEntity(e, model, upsertType);

                if (upsertType == UpsertType.Insert)
                {
                    wrapper.GenerateId(e);
                }

                es.Add(e);
            }

            return(es);
        }
コード例 #9
0
 internal abstract TEntity UpdateEntityInternal(TEntity entity, object model, UpsertType upsertType);
コード例 #10
0
 public virtual TEntity CreateEntity(TModel model, UpsertType upsertType)
 {
     return(tableDataService.CreateEntity(model, upsertType));
 }
コード例 #11
0
 public virtual void UpdateEntity(TEntity e, TModel model, UpsertType upsertType)
 {
     tableDataService.UpdateEntity(e, model, upsertType);
 }
コード例 #12
0
 protected internal virtual TEntity UpdateEntityModel(TEntity entity, TModel tmodel, UpsertType upsertType)
 {
     entity.Id = tmodel.Id;
     entity.UpdateFrom(tmodel, new EntityUpdateOptions(upsertType));
     return(entity);
 }
コード例 #13
0
 protected internal virtual TEntity CreateEntity(TModel model, UpsertType upsertType)
 {
     return(base.CreateEntity(model, upsertType));
 }