/// <summary> /// 获取并转换为<see cref="QuestionDetails"/>类型数据对象 /// </summary> /// <returns></returns> public QuestionDetails ConvertToQuestionDetails() { if (Question == null) { return(null); } //科目名称 var subjectName = SubjectsAccessor.GetName(Question.SubjectId); //课程标题 var courseTitle = CourseAccessor.GetTitle(Question.CourseId); var details = new QuestionDetails { QuestionId = Question.QuestionId, Answer = QuestionTools.DeserializeAnswers(Question.Answer, Question.Type), Count = Question.Count, CourseId = Question.CourseId, CourseTitle = courseTitle, CreateTime = Question.CreateTime, LastTime = Question.LastTime, Marking = Question.Marking, Status = Question.Status, SubjectId = Question.SubjectId, SubjectName = subjectName, Topic = Question.Topic, Type = Question.Type, UserId = Question.UserId }; return(details); }
/// <summary> /// 业务数据检测 /// </summary> protected override void Validate() { //课程标题为空时 if (string.IsNullOrWhiteSpace(Title)) { AddBrokenRule(NewCourseFailureRule.TITLE_CANNOT_NULL_OR_EMPTY); } //课程内容为空时 if (string.IsNullOrWhiteSpace(Content)) { AddBrokenRule(NewCourseFailureRule.CONTENT_CANNOT_NULL_OR_EMPTY); } //学习目标为空时 if (string.IsNullOrWhiteSpace(Objective)) { AddBrokenRule(NewCourseFailureRule.OBJECTIVE_CANNOT_NULL_OR_EMPTY); } //所属科目不存在时 if (!SubjectsAccessor.Exists(SubjectId)) { AddBrokenRule(NewCourseFailureRule.SUBJECT_NOT_EXISTS); } //创建课程的用户不存在时 if (!UsersAccessor.Exists(UserId)) { AddBrokenRule(NewCourseFailureRule.CREATER_NOT_EXISTS); } }
/// <summary> /// 修改信息 /// </summary> /// <param name="state">将要修改后的状态</param> /// <returns></returns> public bool ModifyTo(CourseModifiedState state) { if (state == null) { return(false); } ThrowExceptionIfValidateFailure(() => { //是否允许被编辑 if (CanModify()) { //课程标题为空时 if (string.IsNullOrWhiteSpace(state.Title)) { AddBrokenRule(CourseManageFailureRule.TITLE_CANNOT_NULL_OR_EMPTY); } //课程内容为空时 if (string.IsNullOrWhiteSpace(state.Content)) { AddBrokenRule(CourseManageFailureRule.CONTENT_CANNOT_NULL_OR_EMPTY); } //学习目标为空时 if (string.IsNullOrWhiteSpace(state.Objective)) { AddBrokenRule(CourseManageFailureRule.OBJECTIVE_CANNOT_NULL_OR_EMPTY); } //所属科目不存在时 if (!SubjectsAccessor.Exists(state.SubjectId)) { AddBrokenRule(CourseManageFailureRule.SUBJECT_NOT_EXISTS); } } else { AddBrokenRule(CourseManageFailureRule.CANNOT_MODIFY); } }); //映射数据实体对象后存储 var editCourse = TransferNewFor(state); bool success = CourseAccessor.Update(editCourse); if (success && Course.Status != state.Status) { ComputeStudyProgress(ID); } return(success); }
/// <summary> /// 物理删除当前科目 /// </summary> /// <returns></returns> public bool Delete() { //业务数据检测,存在错误则抛出异常 ThrowExceptionIfValidateFailure(() => { if (!CanDelete()) { AddBrokenRule(SubjectEditFailureRule.HAS_COURSES); } }); return(SubjectsAccessor.Delete(ID)); }
/// <summary> /// 修改科目名称 /// </summary> /// <param name="newName"></param> /// <returns></returns> public bool Rename(string newName) { //业务数据检测,存在错误则抛出异常 ThrowExceptionIfValidateFailure(() => { if (!CanModifyNameTo(newName)) { AddBrokenRule(SubjectEditFailureRule.NAME_EXISTS); } }); return(SubjectsAccessor.ModifyNameTo(ID, newName)); }
/// <summary> /// 设置为”禁用“状态 /// </summary> /// <returns></returns> public bool SetDisable() { //业务数据检测,存在错误则抛出异常 ThrowExceptionIfValidateFailure(() => { if (!CanSetDisable()) { AddBrokenRule(SubjectEditFailureRule.STATUS_HAS_BEEN_DISABLED); } }); return(SubjectsAccessor.SetStatus(ID, (int)SubjectStatus.DISABLED)); }
/// <summary> /// 执行搜索 /// </summary> public PagerModel <Subjects> Search() { this.ThrowExceptionIfValidateFailure(); PagerModel <Subjects> pager = new PagerModel <Subjects>() { Index = PageIndex, Size = PageSize }; SubjectsAccessor.Get(pager, Keyword, Status); return(pager); }
/// <summary> /// 是否允许修改名称为指定的名称 /// </summary> /// <param name="newName"></param> /// <returns></returns> public bool CanModifyNameTo(string newName) { if (string.IsNullOrWhiteSpace(newName)) { return(false); } if (newName.Equals(Subject.Name, StringComparison.OrdinalIgnoreCase)) { return(true); } var ids = SubjectsAccessor.GetIdsFor(newName); return(ids.Length == 0); }
public bool Save() { ThrowExceptionIfValidateFailure(); //数据仓储对象 Subjects subject = new Subjects { Count = Count, CreateTime = DateTime.Now, Name = Name, Status = Status, SubjectId = ID }; //保存新科目到仓储 return(SubjectsAccessor.Insert(subject)); }
/// <summary> /// 名称是否可以使用 /// </summary> /// <returns></returns> public bool CanUseForName() { bool isExists = SubjectsAccessor.NameExists(Name); return(!isExists); }
/// <summary> /// 获取课程所在科目的名称 /// </summary> /// <returns></returns> public string GetSubjectName() { return(SubjectsAccessor.GetName(Course.SubjectId)); }