Exemple #1
0
        public virtual ServiceResult <T> Add(T item)
        {
            var result = Validate(item);

            if (result.HasViolation)
            {
                return(result);
            }
            var editor = item as EditorEntity;

            if (editor != null)
            {
                if (ApplicationContext.CurrentUser != null)
                {
                    editor.CreateBy     = ApplicationContext.CurrentUser.UserID;
                    editor.CreatebyName = ApplicationContext.CurrentUser.UserName;

                    editor.LastUpdateBy     = ApplicationContext.CurrentUser.UserID;
                    editor.LastUpdateByName = ApplicationContext.CurrentUser.UserName;
                }
                editor.CreateDate     = DateTime.Now;
                editor.LastUpdateDate = DateTime.Now;
            }
            CurrentDbSet.Add(item);
            DbContext.SaveChanges();
            return(result);
        }
        public void Save(T entity)
        {
            //TODO: provisório tentar achar uma forma mais eficiente para colocar no contexto, se for uma importação
            if (entity.Id == 0)
            {
                CurrentDbSet.Add(entity);
            }
            else
            {
                var entry = GetDbContext.ChangeTracker.Entries().FirstOrDefault(x => ((ILGTEntity)x.Entity).Id == entity.Id);
                if (entry != null)
                {
                    var concretType      = entity.GetType();
                    var propertysToClone = concretType.GetProperties().Where(x => !x.PropertyType.IsNested && x.CanWrite).ToList();

                    foreach (var p in propertysToClone)
                    {
                        p.SetValue(entry.Entity, p.GetValue(entity, new object[0]), new object[0]);
                    }
                }
                else
                {
                    GetDbContext.Entry(entity).State = EntityState.Modified;
                }
            }
            this.SaveChanges();
        }
Exemple #3
0
        public virtual void Add(T item)
        {
            var editor = item as EditorEntity;

            if (editor != null && ApplicationContext.CurrentUser != null)
            {
                editor.CreateBy     = ApplicationContext.CurrentUser.UserID;
                editor.CreatebyName = ApplicationContext.CurrentUser.UserName;
                editor.CreateDate   = DateTime.Now;
            }
            CurrentDbSet.Add(item);
            DbContext.SaveChanges();
        }
        /// <summary>
        ///     Creates new user and Person Record and returns auto-generated UserId
        /// </summary>
        /// <param name="newUser">The new user.</param>
        /// <returns></returns>
        /// <exception cref="System.NotImplementedException"></exception>
        public int CreateNewUser(User newUser)
        {
            var result = -1;

            var added = CurrentDbSet.Add(newUser);

            if (!added.IsNull())
            {
                result = CurrentDbContext.SaveChanges();
            }

            return(result);
        }
 public void Add(Model m)
 {
     try
     {
         CurrentDbSet.Add(m);
     }
     catch (Exception ex)
     {
         Report.Notify(new RCM.Message(Codes.ERR_DB_INS)
         {
             DetailedText = ex.ToString()
         });
     }
 }
Exemple #6
0
        /// <summary>
        /// 以乐观锁的形式实现添加分组
        /// </summary>
        public async Task <DataResult> AddGoodsCategory(GoodsCategory goodsCategory)
        {
            ShopInfoExtensions shopInfoExtensions = await shopInfoExtensionsDbSet.FirstOrDefaultAsync(sh => sh.ShopId == goodsCategory.ShopId);

            int categoryCount = await CurrentDbSet.CountAsync(gr => gr.ShopId == goodsCategory.ShopId);

            if (categoryCount >= shopInfoExtensions.LimitCategoryNum)
            {
                return new DataResult {
                           Code = DataResultCode.Fail, Message = $"最多只能拥有{shopInfoExtensions.LimitCategoryNum}个商品分组!"
                }
            }
            ;

            using (IDbContextTransaction transaction = Database.BeginTransaction(IsolationLevel.ReadCommitted))
            {
                CurrentDbSet.Add(goodsCategory);

                string sql    = $"update ShopInfoExtensions set CategoryDataVersion = @newVersion where shopId = @shopId and CategoryDataVersion = @oldVersion";
                int    result = this.Database.ExecuteSqlCommand(sql, new[]
                {
                    new MySqlParameter("newVersion", Guid.NewGuid().ToString("N")),
                    new MySqlParameter("oldVersion", shopInfoExtensions.CategoryDataVersion),
                    new MySqlParameter("shopId", shopInfoExtensions.ShopId),
                });

                if (result <= 0)
                {
                    transaction.Rollback();
                    return(new DataResult {
                        Code = DataResultCode.Fail, Message = "添加失败,请重试!"
                    });
                }

                SaveChanges();
                transaction.Commit();
            }

            return(new DataResult {
                Code = DataResultCode.Success, Message = "添加成功!"
            });
        }
    }
 public void Add(TEntity entity)
 {
     CurrentDbSet.Add(entity);
 }
Exemple #8
0
 public virtual void Add(T item)
 {
     CurrentDbSet.Add(item);
     DbContext.SaveChanges();
 }