/// <summary> /// 将视图对象的数据,映射为业务对象数据,进行持久化处理 /// </summary> /// <param name="boService"></param> /// <param name="gradeService"></param> /// <returns></returns> public async Task <bool> SaveBo(GradeAndClassVM boVM) { var bo = _boRepository.GetSingle(boVM.Id, r => r.ApplicationRole); if (bo == null) { bo = new GradeAndClass(); } await _VMMapToBo(bo, boVM); // 处理创建用户组 if (boVM.IsCreateRoleAuto) { var roleFactory = new ApplicationRoleVMService(_userManager, _roleManager, _departmentRepository, _boRepository); var result = await roleFactory.CreateOrEditSaveByGradeAndClass(bo); } var saveResult = await _boRepository.AddOrEditAndSaveAsyn(bo); if (saveResult) { } return(saveResult); }
/// <summary> /// 根据业务实体对象返回对应的视图模型 /// </summary> /// <param name="boId"></param> /// <returns></returns> public async Task <GradeAndClassVM> GetVM(GradeAndClass bo) { var boVM = new GradeAndClassVM(); _BoMapToVM(bo, boVM); var collection = await _studentRepository.GetAllAsyn(x => x.GradeAndClass.Id == bo.Id); boVM.PersonAmount = collection.Count(); return(boVM); }
/// <summary> /// 业务对象的属性转换为视图对象的属性 /// </summary> /// <param name="bo"></param> private void _BoMapToVM(GradeAndClass bo, GradeAndClassVM boVM) { boVM.Id = bo.Id; boVM.Name = bo.Name; boVM.Description = bo.Description; boVM.SortCode = bo.SortCode; if (bo.ParentDepartment != null) { boVM.ParentDepartmentId = bo.ParentDepartment.Id.ToString(); boVM.ParentDepartmentName = bo.ParentDepartment.Name; } if (bo.ApplicationRole != null) { boVM.ApplicationRoleId = bo.ApplicationRole.Id.ToString(); boVM.ApplicationRoleName = bo.ApplicationRole.Name; } }
/// <summary> /// 视图对象的属性转换为业务对象的属性 /// </summary> /// <param name="bo"></param> private async Task _VMMapToBo(GradeAndClass bo, GradeAndClassVM 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.ApplicationRoleId)) { bo.ApplicationRole = await _roleManager.FindByIdAsync(boVM.ApplicationRoleId.ToString()); } }
/// <summary> /// 根据业务实体对象 Id 返回对应的视图模型 /// </summary> /// <param name="boId"></param> /// <returns></returns> public GradeAndClassVM GetVM(Guid id) { var boVM = new GradeAndClassVM(); // 初始化数据对象 var bo = _boRepository.GetSingle(id, x => x.ParentDepartment, z => z.ApplicationRole); if (bo == null) { bo = new GradeAndClass(); boVM.IsNew = true; } else { boVM.IsNew = false; } // 映射基本的属性值 _BoMapToVM(bo, boVM); // 设置供前端下拉选项所需要的数据集合 SetRelevanceItems(boVM); return(boVM); }
private static void _ForDepartmentAndEmployeeAndStudent() { if (!_dbContext.Departments.Any()) { var o1 = _dbContext.Organs.Where(x => x.Name == "内部组织").FirstOrDefault(); var o2 = _dbContext.Organs.Where(x => x.Name == "外部组织").FirstOrDefault(); var dept01 = new Department() { Name = "数学与信息工程学院", Description = "", SortCode = "01", DepartmentType = DepartmentTypeEnum.二级部门, Organization = o1 }; var dept02 = new Department() { Name = "物理与材料工程学院", Description = "", SortCode = "02", DepartmentType = DepartmentTypeEnum.二级部门, Organization = o1 }; var dept03 = new Department() { Name = "教务处", Description = "", SortCode = "03", DepartmentType = DepartmentTypeEnum.总部部门, Organization = o1 }; var dept04 = new Department() { Name = "攀登数字工作室", Description = "", SortCode = "04", DepartmentType = DepartmentTypeEnum.总部部门, Organization = o2 }; var dept0401 = new Department() { Name = "客户响应服务组", Description = "", SortCode = "0401", DepartmentType = DepartmentTypeEnum.二级部门 }; var dept0402 = new Department() { Name = "客户需求分析组", Description = "", SortCode = "0402", DepartmentType = DepartmentTypeEnum.二级部门 }; var dept0403 = new Department() { Name = "应用设计开发组", Description = "", SortCode = "0403", DepartmentType = DepartmentTypeEnum.二级部门 }; var dept05 = new Department() { Name = "神华软件技术公司", Description = "", SortCode = "05", DepartmentType = DepartmentTypeEnum.二级部门, Organization = o2 }; var dept06 = new Department() { Name = "2019年级学生", Description = "", SortCode = "06", DepartmentType = DepartmentTypeEnum.教学班级, Organization = o1 }; var dept0601 = new Department() { Name = "2019级01班", Description = "", SortCode = "0601", DepartmentType = DepartmentTypeEnum.教学班级 }; var dept0602 = new Department() { Name = "2019级02班", Description = "", SortCode = "0602", DepartmentType = DepartmentTypeEnum.教学班级 }; dept01.ParentDepartment = dept01; dept02.ParentDepartment = dept02; dept03.ParentDepartment = dept03; dept04.ParentDepartment = dept04; dept0401.ParentDepartment = dept04; dept0402.ParentDepartment = dept04; dept0403.ParentDepartment = dept04; dept05.ParentDepartment = dept05; dept06.ParentDepartment = dept06; dept0601.ParentDepartment = dept06; dept0602.ParentDepartment = dept06; var depts = new List <Department>() { dept01, dept02, dept03, dept04, dept0401, dept0402, dept0403, dept05, dept06, dept0601, dept0602 }; foreach (var item in depts) { _dbContext.Departments.Add(item); } _dbContext.SaveChanges(); } if (!_dbContext.Employees.Any()) { var dept = _dbContext.Departments.FirstOrDefault(); var persons = new List <Employee>() { new Employee() { Name = "刘虎军", EmployeeCode = "20190001", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "15107728899", SortCode = "01001", Description = "请补充个人简介", Department = dept }, new Employee() { Name = "魏小花", EmployeeCode = "20190002", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13678622345", SortCode = "01002", Description = "请补充个人简介", Department = dept }, new Employee() { Name = "李文慧", EmployeeCode = "20190003", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13690251923", SortCode = "01003", Description = "请补充个人简介", Department = dept }, new Employee() { Name = "张江的", EmployeeCode = "20190004", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13362819012", SortCode = "01004", Description = "请补充个人简介", Department = dept }, new Employee() { Name = "萧可君", EmployeeCode = "20190005", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13688981234", SortCode = "01005", Description = "请补充个人简介", Department = dept }, new Employee() { Name = "魏铜生", EmployeeCode = "20190006", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "18398086323", SortCode = "01006", Description = "请补充个人简介", Department = dept }, new Employee() { Name = "刘德华", EmployeeCode = "20190007", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13866225636", SortCode = "01007", Description = "请补充个人简介", Department = dept }, new Employee() { Name = "魏星亮", EmployeeCode = "20190008", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13872236091", SortCode = "01008", Description = "请补充个人简介", Department = dept }, new Employee() { Name = "潘家富", EmployeeCode = "20190009", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13052366213", SortCode = "01009", Description = "请补充个人简介", Department = dept }, new Employee() { Name = "黎温德", EmployeeCode = "20190010", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13576345509", SortCode = "01010", Description = "请补充个人简介", Department = dept }, new Employee() { Name = "邓淇升", EmployeeCode = "20190011", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13709823456", SortCode = "01011", Description = "请补充个人简介", Department = dept }, new Employee() { Name = "谭檀檀", EmployeeCode = "20190012", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "18809888754", SortCode = "01012", Description = "请补充个人简介", Department = dept }, new Employee() { Name = "陈慧琳", EmployeeCode = "20190013", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13172038023", SortCode = "01013", Description = "请补充个人简介", Department = dept }, new Employee() { Name = "祁华钰", EmployeeCode = "20190014", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "15107726987", SortCode = "01014", Description = "请补充个人简介", Department = dept }, new Employee() { Name = "胡德财", EmployeeCode = "20190015", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13900110988", SortCode = "01015", Description = "请补充个人简介", Department = dept }, new Employee() { Name = "吴富贵", EmployeeCode = "20190016", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "15087109921", SortCode = "01016", Description = "请补充个人简介", Department = dept } }; foreach (var person in persons) { _dbContext.Employees.Add(person); } _dbContext.SaveChanges(); } if (!_dbContext.GradeAndClasses.Any()) { var gc001 = new GradeAndClass() { Name = "LZ2019-2020", Description = "", SortCode = "01" }; gc001.ParentDepartment = gc001; var gc00101 = new GradeAndClass() { Name = "高一3班", Description = "", SortCode = "0101", ParentDepartment = gc001 }; var gc00102 = new GradeAndClass() { Name = "高一2班", Description = "", SortCode = "0102", ParentDepartment = gc001 }; _dbContext.GradeAndClasses.AddRange(new GradeAndClass[] { gc001, gc00101, gc00102 }); _dbContext.SaveChanges(); } if (!_dbContext.Students.Any()) { var grade = _dbContext.GradeAndClasses.FirstOrDefault();; var students = new List <Student>() { new Student() { Name = "黄虎军", EmployeeCode = "201908001", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "15107728899", SortCode = "01001", Description = "请补充个人简介" }, new Student() { Name = "河小花", EmployeeCode = "201908002", CredentialsCode = "452230198210010012", Email = "*****@*****.**", Mobile = "13678622345", SortCode = "01002", Description = "请补充个人简介" }, new Student() { Name = "陆文慧", EmployeeCode = "201908003", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13690251923", SortCode = "01003", Description = "请补充个人简介" }, new Student() { Name = "刘江的", EmployeeCode = "201908004", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13362819012", SortCode = "01004", Description = "请补充个人简介" }, new Student() { Name = "韦可君", EmployeeCode = "201908005", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13688981234", SortCode = "01005", Description = "请补充个人简介" }, new Student() { Name = "韦铜生", EmployeeCode = "201908006", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "18398086323", SortCode = "01006", Description = "请补充个人简介" }, new Student() { Name = "韦德华", EmployeeCode = "201908007", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13866225636", SortCode = "01007", Description = "请补充个人简介" }, new Student() { Name = "蒋星亮", EmployeeCode = "201908008", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13872236091", SortCode = "01008", Description = "请补充个人简介" }, new Student() { Name = "蒋家富", EmployeeCode = "201908009", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13052366213", SortCode = "01009", Description = "请补充个人简介" }, new Student() { Name = "张温德", EmployeeCode = "201908010", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13576345509", SortCode = "01010", Description = "请补充个人简介" }, new Student() { Name = "张淇升", EmployeeCode = "201908011", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13709823456", SortCode = "01011", Description = "请补充个人简介" }, new Student() { Name = "秦冠希", EmployeeCode = "201908011", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "18809888754", SortCode = "01012", Description = "请补充个人简介" }, new Student() { Name = "刘慧琳", EmployeeCode = "201908012", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13172038023", SortCode = "01013", Description = "请补充个人简介" }, new Student() { Name = "周华钰", EmployeeCode = "201908013", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "15107726987", SortCode = "01014", Description = "请补充个人简介" }, new Student() { Name = "钱德财", EmployeeCode = "201908014", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13900110988", SortCode = "01015", Description = "请补充个人简介" }, new Student() { Name = "孙富贵", EmployeeCode = "201908015", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "15087109921", SortCode = "01016", Description = "请补充个人简介" }, new Student() { Name = "韦虎军", EmployeeCode = "201908016", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "15107728899", SortCode = "01001", Description = "请补充个人简介" }, new Student() { Name = "韦小花", EmployeeCode = "201908017", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13678622345", SortCode = "01002", Description = "请补充个人简介" }, new Student() { Name = "韦文慧", EmployeeCode = "201908018", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13690251923", SortCode = "01003", Description = "请补充个人简介" }, new Student() { Name = "韦江的", EmployeeCode = "201908019", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13362819012", SortCode = "01004", Description = "请补充个人简介" }, new Student() { Name = "温可君", EmployeeCode = "201908020", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13688981234", SortCode = "01005", Description = "请补充个人简介" }, new Student() { Name = "温铜生", EmployeeCode = "201908021", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "18398086323", SortCode = "01006", Description = "请补充个人简介" }, new Student() { Name = "温德华", EmployeeCode = "201908022", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13866225636", SortCode = "01007", Description = "请补充个人简介" }, new Student() { Name = "温星亮", EmployeeCode = "201908023", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13872236091", SortCode = "01008", Description = "请补充个人简介" }, new Student() { Name = "温家富", EmployeeCode = "201908024", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13052366213", SortCode = "01009", Description = "请补充个人简介" }, new Student() { Name = "覃温德", EmployeeCode = "201908025", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13576345509", SortCode = "01010", Description = "请补充个人简介" }, new Student() { Name = "覃淇升", EmployeeCode = "201908026", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13709823456", SortCode = "01011", Description = "请补充个人简介" }, new Student() { Name = "覃冠希", EmployeeCode = "201908027", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "18809888754", SortCode = "01012", Description = "请补充个人简介" }, new Student() { Name = "覃慧琳", EmployeeCode = "201908028", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13172038023", SortCode = "01013", Description = "请补充个人简介" }, new Student() { Name = "覃华钰", EmployeeCode = "201908029", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "15107726987", SortCode = "01014", Description = "请补充个人简介" }, new Student() { Name = "覃德财", EmployeeCode = "201908030", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "13900110988", SortCode = "01015", Description = "请补充个人简介" }, new Student() { Name = "覃富贵", EmployeeCode = "201908031", CredentialsCode = "452230198210010011", Email = "*****@*****.**", Mobile = "15087109921", SortCode = "01016", Description = "请补充个人简介" } }; foreach (var student in students) { student.GradeAndClass = grade; _dbContext.Students.Add(student); } _dbContext.SaveChanges(); } }
/// <summary> /// 根据班级对象创建或者修改响应的角色组 /// </summary> /// <param name="department"></param> /// <returns></returns> public async Task <EntityProcessResult> CreateOrEditSaveByGradeAndClass(GradeAndClass gradeAndClass, string roleName = null) { var result = new EntityProcessResult() { Succeeded = true, Messages = new List <string> { } }; if (gradeAndClass.ApplicationRole == null) { // 检查重名 var checkName = gradeAndClass.Name; if (!String.IsNullOrEmpty(roleName)) { checkName = roleName; } // 检查重名 var isUniquelyForName = await IsUniquelyForName(checkName); if (isUniquelyForName) { // 新建用户组 var role = new ApplicationRole() { Name = gradeAndClass.Name, DisplayName = gradeAndClass.Name, Description = gradeAndClass.Description, SortCode = "G_" + gradeAndClass.SortCode, ApplicationRoleType = ApplicationRoleTypeEnum.适用于教学班级学员 }; var createResult = await _roleManager.CreateAsync(role); // 根据创建的结果返回处理状态(创建失败) if (createResult.Succeeded) { gradeAndClass.ApplicationRole = role; await _gradeAndClassRepository.AddOrEditAndSaveAsyn(gradeAndClass); } else { result.Succeeded = false; result.Messages.Add("新建用户组数据保存出现异常,请联系相关人员处理!"); foreach (var err in createResult.Errors) { result.Messages.Add(err.Description); } return(result); } } else { result.Succeeded = false; result.Messages.Add("提交的部门名称已经存在同名的用户组,请检查相关的数据!"); return(result); } } else { gradeAndClass.ApplicationRole.Name = gradeAndClass.Name; gradeAndClass.ApplicationRole.DisplayName = gradeAndClass.Name; gradeAndClass.ApplicationRole.Description = gradeAndClass.Description; gradeAndClass.ApplicationRole.SortCode = "G_" + gradeAndClass.SortCode; if (!String.IsNullOrEmpty(roleName)) { gradeAndClass.ApplicationRole.Name = roleName; } var editResult = await _roleManager.UpdateAsync(gradeAndClass.ApplicationRole); result.BusinessObject = gradeAndClass.ApplicationRole; if (editResult.Succeeded) { await _gradeAndClassRepository.AddOrEditAndSaveAsyn(gradeAndClass); } else { result.Succeeded = false; result.Messages.Add("更新用户组数据保存出现异常,请联系相关人员处理!"); foreach (var err in editResult.Errors) { result.Messages.Add(err.Description); } return(result); } } return(result); }