Exemplo n.º 1
0
        /// <summary>
        /// 保存人员数据
        /// </summary>
        /// <param name="perVM"></param>
        /// <returns></returns>
        public async Task <IActionResult> Save([Bind("ID,IsNew,Name,Email,FixedTelephone,Description,SortCode")] PersonVM perVM)
        {
            var hasDuplicateNamePerson = await _PersonExtension.HasInstanceAsyn(x => x.Name == perVM.Name);

            if (hasDuplicateNamePerson && perVM.IsNew)      //判断是否已存在该人员
            {
                ModelState.AddModelError("", "人员名重复,无法添加"); //添加指定的错误信息
                return(View("../../Views/BusinessOrganization/Person/CreateOrEdit", perVM));
            }
            var bo = new Person();

            if (!perVM.IsNew)
            {
                bo = await _PersonRepository.GetSingleAsyn(perVM.ID);
            }
            perVM.MapToBo(bo);
            var saveStatus = await _PersonRepository.AddOrEditAndSaveAsyn(bo);

            if (saveStatus)
            {
                return(RedirectToAction("Index"));
            }
            else
            {
                ModelState.AddModelError("", "数据保存出现异常,无法处理,请联系开发部人员。");
                return(View("../../Views/BusinessOrganization/Person/CreateOrEdit", perVM));
            }
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Save([Bind("ID,IsNew,ParentItemID,Name,Email,MobileNumber,Description,SortCode")] PersonVM boVM)
        {
            if (ModelState.IsValid)
            {
                var hasDuplicateNmaePerson = await _BoRepository.HasInstanceAsyn(x => x.Name == boVM.Name);

                if (hasDuplicateNmaePerson && boVM.IsNew)
                {
                    ModelState.AddModelError("", "人员姓名重复,无法添加。");
                    return(View("../../Views/BusinessOrganization/Person/CreateOrEdit", boVM));
                }

                var bo = new Person();
                if (!boVM.IsNew)
                {
                    bo = await _BoRepository.GetSingleAsyn(boVM.ID);
                }

                // 处理一般的属性数据
                boVM.MapToBo(bo);

                // 处理关联数据
                if (!String.IsNullOrEmpty(boVM.ParentItemID))
                {
                    var dID  = Guid.Parse(boVM.ParentItemID);
                    var dept = _BoRepository.EntitiesContext.Departments.FirstOrDefault(x => x.ID == dID);
                    bo.Department = dept;
                }
                var saveStatus = await _BoRepository.AddOrEditAndSaveAsyn(bo);

                if (saveStatus)
                {
                    return(RedirectToAction("Index"));
                }
                else
                {
                    ModelState.AddModelError("", "数据保存出现异常,无法处理,请联系开发人员。");
                    return(View("../../Views/BusinessOrganization/Person/CreateOrEdit", boVM));
                }
            }
            else
            {
                return(View("../../Views/BusinessOrganization/Person/CreateOrEdit", boVM));
            }
        }
Exemplo n.º 3
0
        public ActionResult Save(PersonVM boVM)
        {
            if (ModelState.IsValid)
            {
                var bo = _Service.GetSingle(boVM.ID);
                if (bo == null)
                {
                    bo    = new Person();
                    bo.ID = boVM.ID;
                }

                boVM.MapToBo(bo);

                var creID          = Guid.Parse(boVM.CredentialsTypeID);
                var credentialType = _Service.GetSingleRelevance <CredentialsType>(creID);

                var jlID     = Guid.Parse(boVM.JobLevelID);
                var jobLevel = _Service.GetSingleRelevance <JobLevel>(jlID);

                var jtID     = Guid.Parse(boVM.JobTitleID);
                var jobTitle = _Service.GetSingleRelevance <JobTitle>(jtID);

                var dID  = Guid.Parse(boVM.ParentItemID);
                var dept = _Service.GetSingleRelevance <Department>(dID);

                bo.Name = bo.FirstName + bo.LastName;
                if (String.IsNullOrEmpty(bo.SortCode))
                {
                    bo.SortCode = BusinessEntityComponentsFactory.SortCodeByDefaultDateTime <Person>();
                }

                bo.CredentialsType = credentialType;
                bo.JobLevel        = jobLevel;
                bo.JobTitle        = jobTitle;
                bo.Department      = dept;
                bo.UpdateTime      = DateTime.Now;
                bo.IsActivePerson  = true;

                _Service.AddOrEditAndSave(bo);

                //var personInDepartment = _Service.GetSingleRelevanceBy<PersonsInDepartment>(p => p.Person.ID == bo.ID && p.Department.ID == dID);
                //if (personInDepartment == null)
                //{
                //    personInDepartment = new PersonsInDepartment() { Department = dept, Person = bo };
                //    _Service.AddAndSaveRelevance<PersonsInDepartment>(personInDepartment);
                //}

                var typeID = boVM.ParentItemID;
                return(Json(PageComponentRepository <PersonVM> .SaveOK(true, "1", typeID)));
            }
            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);

                boVM.CredentialsTypeCollection = BusinessCollectionFactory <CredentialsType> .GetPlainFacadeItemCollection();

                boVM.JobLevelCollection = BusinessCollectionFactory <JobLevel> .GetPlainFacadeItemCollection();

                boVM.JobTitleCollection = BusinessCollectionFactory <JobTitle> .GetPlainFacadeItemCollection();

                var editor = PageComponentRepository <PersonVM> .UpdateCreateOrEditDialog(boVM, false, vItems).InnerHtmlContent;

                return(Json(editor));
            }
        }