/// <summary>
 /// 编辑
 /// </summary>
 /// <param name="id"></param>
 /// <returns></returns>
 public ActionResult Edit(int?id)
 {
     if (id.HasValue && id.Value > 0)
     {
         var model = this.AssetAttributeService.GetAttributeById(id.Value);
         return(View(model));
     }
     else
     {
         AssetAttributeModel model = new AssetAttributeModel();
         return(View(model));
     }
 }
        public static AssetAttribute ToEntity(this AssetAttributeModel model)
        {
            var entity = new AssetAttribute()
            {
                Id          = model.Id,
                Name        = model.Name,
                Description = model.Description,
                Sort        = model.Sort,
                DataType    = (int)model.DataType
            };

            return(entity);
        }
        /// <summary>
        /// 添加属性
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public AssetAttributeModel Add(AssetAttributeModel model)
        {
            using (var dbContext = new MissionskyOAEntities())
            {
                var existItem = dbContext.AssetAttributes.Where(it => it.Name == model.Name).FirstOrDefault();
                if (existItem != null)
                {
                    throw new Exception("此属性已存在.");
                }

                var entity = model.ToEntity();
                dbContext.AssetAttributes.Add(entity);
                dbContext.SaveChanges();
                return(entity.ToModel());
            }
        }
        public static AssetAttributeModel ToModel(this AssetAttribute entity)
        {
            var model = new AssetAttributeModel()
            {
                Id          = entity.Id,
                Name        = entity.Name,
                Description = entity.Description,
                Sort        = entity.Sort
            };

            if (entity.DataType.HasValue)
            {
                model.DataType = (AssetDataType)entity.DataType;
            }

            return(model);
        }
        /// <summary>
        /// 更新属性
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool Update(AssetAttributeModel model)
        {
            using (var dbContext = new MissionskyOAEntities())
            {
                var existItem = dbContext.AssetAttributes.Where(it => it.Name == model.Name && it.Id != model.Id).FirstOrDefault();
                if (existItem != null)
                {
                    throw new Exception("此属性已存在.");
                }

                var entity = dbContext.AssetAttributes.Where(it => it.Id == model.Id).FirstOrDefault();
                if (entity != null)
                {
                    entity.Name        = model.Name;
                    entity.Description = model.Description;
                    entity.Sort        = model.Sort;
                    entity.DataType    = (int)model.DataType;
                }
                dbContext.SaveChanges();
                return(true);
            }
        }
        public ActionResult Edit(AssetAttributeModel model)
        {
            string action = Request["Submit"];

            if (action == "cancel")
            {
                return(RedirectToAction("Index"));
            }

            if (string.IsNullOrEmpty(model.Name))
            {
                ModelState.AddModelError("Name", "请输入名称.");
            }

            if (ModelState.IsValid)
            {
                try
                {
                    if (model.Id > 0)
                    {
                        this.AssetAttributeService.Update(model);
                    }
                    else
                    {
                        this.AssetAttributeService.Add(model);
                    }

                    return(RedirectToAction("Index"));
                }
                catch (Exception ex)
                {
                    ViewBag.Message = ex.Message;
                }
            }

            return(View(model));
        }