Beispiel #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);
        }
Beispiel #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);
        }
Beispiel #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;
            }
        }
Beispiel #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());
            }
        }
Beispiel #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);
        }
Beispiel #6
0
        /// <summary>
        /// 设置用于前端页面需要的关联数据选项
        /// </summary>
        public void SetRelevanceItems(GradeAndClassVM boVM)
        {
            boVM.ParentDepartmentItemCollection = SelfReferentialItemFactory <GradeAndClass> .GetCollection(_boRepository, true);

            boVM.ApplicationRoleItemCollection = _GetApplicationRoleItemCollection(_roleManager.Roles.ToList());
        }