コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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;
            }
        }
コード例 #4
0
        /// <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());
            }
        }
コード例 #5
0
        /// <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);
        }
コード例 #6
0
        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();
            }
        }
コード例 #7
0
        /// <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);
        }