/// <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)); } }
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)); } }
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)); } }