Exemplo n.º 1
0
        public ActionResult Save(DepartmentVM boVM)
        {
            if (ModelState.IsValid)
            {
                var bo = _Service.GetSingle(boVM.ID);
                if (bo == null)
                {
                    bo = new Department();
                    bo.ID = boVM.ID;
                }
                var parentBo = bo; // 对于具有层次结构关系的实体类,如果没有选择上级层次对象,缺省处理为自身,即为根节点对象。
                if (!String.IsNullOrEmpty(boVM.ParentItemID))
                    parentBo = _Service.GetSingle(Guid.Parse(boVM.ParentItemID));

                boVM.MapToBo(bo,parentBo);

                _Service.AddOrEditAndSave(bo);

                var typeID = bo.ParentDapartment.ID.ToString();
                var extessionFunction = "RefreshTreeView"; // 约定数据持久化之后,除了执行返回列表的方法外,还需要执行的刷新导航树的另外的方法

                return Json(PageComponentRepository<DepartmentVM>.SaveOK(true, "1", typeID, extessionFunction));
            }
            else
            {
                var vItems = new List<ValidatorResult>();
                foreach (var item in ModelState)
                {
                    if (item.Value.Errors != null)
                    {
                        foreach (var vItem in item.Value.Errors)
                        {
                            var errItem = new ValidatorResult();
                            errItem.Name = item.Key;
                            errItem.ErrorMessage = vItem.ErrorMessage;
                            vItems.Add(errItem);
                        }
                    }
                }

                boVM.ParentItemColection = BusinessCollectionFactory<Department>.GetSelfReferentialItemCollection(true);
                var editor = PageComponentRepository<DepartmentVM>.UpdateCreateOrEditDialog(boVM, false, vItems).InnerHtmlContent;
                return Json(editor);
            }
        }