/// <summary> /// 数据重复校验 /// <para>作 者:Huang GaoLiang </para> /// <para>创建时间:2018-09-15 </para> /// </summary> /// <param name="courseLevel">课程级别id</param> /// <param name="courseLevelList">课程级别集合</param> /// <exception cref="AMS.Core.BussinessException"> /// 异常ID:16,系统中已经存在该课程级别,不能重复添加 /// </exception> private static void CheckAddOrUpdate(TblDatCourseLevel courseLevel, List <TblDatCourseLevel> courseLevelList) { // 如果课程级别大于0 if (courseLevel.CourseLevelId > 0) { courseLevelList = courseLevelList.Where(m => m.CourseLevelId != courseLevel.CourseLevelId).ToList(); } // 根据课程级别编号查询课程级别信息 bool levelCodeIsExist = courseLevelList.Any(m => m.LevelCode == courseLevel.LevelCode); if (levelCodeIsExist) { throw new BussinessException((byte)ModelType.Datum, 16, $"课程级别代码\"{courseLevel.LevelCode }\"已存在"); } bool levelCnNameIsExist = courseLevelList.Any(m => m.LevelCnName == courseLevel.LevelCnName); if (levelCnNameIsExist) { throw new BussinessException((byte)ModelType.Datum, 16, $"课程级别中文名\"{courseLevel.LevelCnName }\"已存在"); } bool levelEnNameIsExist = courseLevelList.Any(m => m.LevelEnName == courseLevel.LevelEnName); if (levelEnNameIsExist) { throw new BussinessException((byte)ModelType.Datum, 16, $"课程级别英文名\"{courseLevel.LevelEnName }\"已存在"); } }
/// <summary> /// 课程级别数据验证 /// <para>作 者:Huang GaoLiang </para> /// <para>创建时间:2018-09-14 </para> /// </summary> /// <param name="dto">课程级别实体</param> /// <exception cref="BussinessException"> /// 异常ID:13,课程级别代码不能为空 /// 异常ID:14,课程级别名称(中文)不能为空 /// 异常ID:15,课程级别名称(英文)不能为空 /// </exception> private async Task CourseLeaveVerification(CourseLevelAddRequest dto) { // 判断等级编号是否为空 if (string.IsNullOrWhiteSpace(dto.LevelCode)) { throw new BussinessException((byte)ModelType.Datum, 13); } // 判断等级中文名称是否为空 if (string.IsNullOrWhiteSpace(dto.LevelCnName)) { throw new BussinessException((byte)ModelType.Datum, 14); } // 判断等级英文名称是否为空 if (string.IsNullOrWhiteSpace(dto.LevelEnName)) { throw new BussinessException((byte)ModelType.Datum, 15); } TblDatCourseLevel courseLevel = Mapper.Map <CourseLevelAddRequest, TblDatCourseLevel>(dto); List <TblDatCourseLevel> courseLevelList = await new TblDatCourseLevelRepository().Get(this._companyId); // 重复校验(数据不能重复) CheckAddOrUpdate(courseLevel, courseLevelList); }
/// <summary> /// 启用/禁用 /// <para>作 者:Huang GaoLiang </para> /// <para>创建时间:2018-09-15 </para> /// </summary> /// <param name="courseLevelId">课程等级id</param> /// <param name="isDisabled">启用:false;禁用:true</param> /// <exception cref="AMS.Core.BussinessException"> /// 异常ID:11,课程级别编号不能为空 /// 异常ID:12,系统中没有此课程级别 /// </exception> private async Task SetDisabled(long courseLevelId, bool isDisabled = false) { // 如果课程级别编号小于或者等于0 if (courseLevelId <= 0) { throw new BussinessException((byte)ModelType.Datum, 11); } // 根据课程级别编号查询课程级别信息 TblDatCourseLevel courseLeave = _courseLevelRepository.Value.Load(courseLevelId); if (courseLeave == null) { throw new BussinessException((byte)ModelType.Datum, 12); } courseLeave.IsDisabled = isDisabled; await _courseLevelRepository.Value.UpdateTask(courseLeave); }
/// <summary> /// 删除 /// <para>作 者:Huang GaoLiang </para> /// <para>创建时间:2018-09-14 </para> /// </summary> /// <param name="courseLevelId">课程级别编号</param> /// <exception cref="BussinessException"> /// 异常ID:17,删除失败 /// 异常ID:18,本级别已被使用,不可删除 /// </exception> public async Task Remove(long courseLevelId) { // 1、校验课程等级有没有被使用 bool used = await _courseLevelMiddleRepository.Value.CourseLevelIsUse(courseLevelId); if (used) { throw new BussinessException((byte)ModelType.Datum, 18); } // 2、根据课程等级id查询实体 TblDatCourseLevel courseLevel = await _courseLevelRepository.Value.LoadTask(courseLevelId); // 3、删除 int result = await _courseLevelRepository.Value.DeleteAsync(courseLevel); if (result < 0) { throw new BussinessException((byte)ModelType.Datum, 17); } }
/// <summary> /// 添加一个课程级别 /// <para>作 者:Huang GaoLiang </para> /// <para>创建时间:2018-09-14 </para> /// </summary> /// <param name="dto">添加课程等级请求数据</param> public async Task Add(CourseLevelAddRequest dto) { // 1、数据校验 await CourseLeaveVerification(dto); // 2、准备数据 TblDatCourseLevel courseLevelInfo = new TblDatCourseLevel { CourseLevelId = IdGenerator.NextId(), CompanyId = this._companyId, LevelCode = dto.LevelCode, LevelCnName = dto.LevelCnName, LevelEnName = dto.LevelEnName, IsDisabled = false, CreateTime = DateTime.Now, UpdateTime = DateTime.Now }; // 3、写入数据库 await new TblDatCourseLevelRepository().AddTask(courseLevelInfo); }