/// <summary> /// 业务对象的属性转换为视图对象的属性 /// </summary> /// <param name="bo"></param> private void _BoMapToVM(Department bo, DepartmentVM boVM) { boVM.Id = bo.Id; boVM.Name = bo.Name; boVM.Description = bo.Description; boVM.SortCode = bo.SortCode; boVM.DepartmentType = bo.DepartmentType; boVM.DepartmentTypeName = bo.DepartmentType.ToString(); if (bo.ParentDepartment != null) { boVM.ParentDepartmentId = bo.ParentDepartment.Id.ToString(); boVM.ParentDepartmentName = bo.ParentDepartment.Name; } if (bo.Organization != null) { boVM.OrganizationId = bo.Organization.Id.ToString(); boVM.OrganizationName = bo.Organization.Name; } if (bo.ApplicationRole != null) { boVM.ApplicationRoleId = bo.ApplicationRole.Id.ToString(); boVM.ApplicationRoleName = bo.ApplicationRole.Name; } }
/// <summary> /// 将视图对象的数据,映射为业务对象数据,进行持久化处理 /// </summary> /// <param name="boService"></param> /// <param name="gradeService"></param> /// <returns></returns> public async Task <bool> SaveBo(DepartmentVM boVM) { var bo = _boRepository.GetSingle(boVM.Id, r => r.ApplicationRole); if (bo == null) { bo = new Department(); } await _VMMapToBo(bo, boVM); // 处理创建用户组 if (boVM.IsCreateRoleAuto) { var roleFactory = new ApplicationRoleVMService(_userManager, _roleManager, _boRepository, _gradeAndClassRepository); var result = await roleFactory.CreateOrEditSaveByDepeartment(bo); } var saveResult = await _boRepository.AddOrEditAndSaveAsyn(bo); if (saveResult) { } return(saveResult); }
/// <summary> /// 根据业务实体对象返回对应的视图模型 /// </summary> /// <param name="boId"></param> /// <returns></returns> public async Task <DepartmentVM> GetVM(Department bo) { var boVM = new DepartmentVM(); _BoMapToVM(bo, boVM); var collection = await _employeeRepository.GetAllAsyn(x => x.Department.Id == bo.Id); boVM.PersonAmount = collection.Count(); return(boVM); }
/// <summary> /// 设置用于前端页面需要的关联数据选项 /// </summary> public void SetRelevanceItems(DepartmentVM boVM) { boVM.DepartmentTypeItemCollection = PlainFacadeItemFactory <Department> .GetByEnum(boVM.DepartmentType); boVM.ParentDepartmentItemCollection = SelfReferentialItemFactory <Department> .GetCollection(_boRepository, true); boVM.OrganizationItemCollection = PlainFacadeItemFactory <Organ> .Get(_orgRepository); boVM.ApplicationRoleItemCollection = _GetApplicationRoleItemCollection(_roleManager.Roles.ToList()); }
/// <summary> /// 根据业务实体对象 Id 返回对应的视图模型 /// </summary> /// <param name="boId"></param> /// <returns></returns> public DepartmentVM GetVM(Guid id) { var boVM = new DepartmentVM(); // 初始化数据对象 var bo = _boRepository.GetSingle(id, x => x.ParentDepartment, y => y.Organization, z => z.ApplicationRole); if (bo == null) { bo = new Department(); boVM.IsNew = true; } else { boVM.IsNew = false; } // 映射基本的属性值 _BoMapToVM(bo, boVM); // 设置供前端下拉选项所需要的数据集合 SetRelevanceItems(boVM); return(boVM); }
/// <summary> /// 视图对象的属性转换为业务对象的属性 /// </summary> /// <param name="bo"></param> private async Task _VMMapToBo(Department bo, DepartmentVM boVM) { bo.Id = boVM.Id; bo.Name = boVM.Name; bo.Description = boVM.Description; bo.SortCode = boVM.SortCode; if (!String.IsNullOrEmpty(boVM.ParentDepartmentId)) { bo.ParentDepartment = await _boRepository.GetSingleAsyn(Guid.Parse(boVM.ParentDepartmentId)); } else { bo.ParentDepartment = bo; } if (!String.IsNullOrEmpty(boVM.OrganizationId)) { bo.Organization = await _orgRepository.GetSingleAsyn(Guid.Parse(boVM.OrganizationId)); } if (!String.IsNullOrEmpty(boVM.ApplicationRoleId)) { bo.ApplicationRole = await _roleManager.FindByIdAsync(boVM.ApplicationRoleId.ToString()); } }