Beispiel #1
0
        public bool SetDisable()
        {
            ThrowExceptionIfValidateFailure(() =>
            {
                if (!CanSetDisable())
                {
                    AddBrokenRule(StudyPlanEditFailureRule.STATUS_CANNOT_SET_TO_DISABLE);
                }
            });

            return(StudyPlanAccessor.SetStatus(ID, (int)StudyPlanStatus.DISABLED));
        }
        /// <summary>
        /// 转换数据
        /// </summary>
        /// <param name="userPlans">用户学习计划情况集合</param>
        /// <returns></returns>
        private List <UserStudyPlanSearchResultItem> TransferData(IEnumerable <Data.Entity.UserStudyPlan> userPlans)
        {
            if (userPlans == null || userPlans.Count() < 1)
            {
                return(new List <UserStudyPlanSearchResultItem>());
            }

            //用户学习计划ID集合
            var planIds = userPlans.Select(p => p.PlanId).ToArray();

            //获取所有的学习计划
            var plans = StudyPlanAccessor.GetList(planIds);

            if (plans == null || plans.Count() < 1)
            {
                return(null);
            }

            //计划制定者ID集合
            var creatorIds = plans.Select(p => p.UserId);
            //获取制定者名称集合
            var creatorNames = UsersAccessor.GetUsernames(creatorIds);

            var list = new List <UserStudyPlanSearchResultItem>();

            foreach (var plan in plans)
            {
                //用户学习计划执行情况
                var userPlan = userPlans.FirstOrDefault(p => p.PlanId == plan.PlanId);
                //制定者名称
                var creatorName = creatorNames[plan.UserId];

                list.Add(new UserStudyPlanSearchResultItem
                {
                    UserId        = userPlan.UserId,
                    PlanId        = plan.PlanId,
                    Title         = plan.Title,
                    Content       = plan.Content,
                    CreatorId     = plan.UserId,
                    Creator       = creatorName,
                    StudentCount  = plan.Student,
                    PlanStatus    = plan.Status,
                    CreateTime    = plan.CreateTime,
                    StudyStatus   = userPlan.Status,
                    Progress      = userPlan.Progress,
                    LastStudyTime = userPlan.UpdateTime
                });
            }

            return(list);
        }
Beispiel #3
0
        /// <summary>
        /// 执行搜索
        /// </summary>
        public PagerModel <Data.Entity.StudyPlan> Search()
        {
            this.ThrowExceptionIfValidateFailure();

            PagerModel <Data.Entity.StudyPlan> pager = new PagerModel <Data.Entity.StudyPlan>()
            {
                Index = PageIndex,
                Size  = PageSize
            };

            StudyPlanAccessor.Get(pager, Keyword, status: Status);

            return(pager);
        }
Beispiel #4
0
        protected override void Validate()
        {
            //计划制定者不存在
            if (!UsersAccessor.Exists(StudyPlan.UserId))
            {
                AddBrokenRule(NewStudyPlanFailureRule.CREATOR_NOT_EXISTS);
            }

            //标题为空
            if (string.IsNullOrWhiteSpace(StudyPlan.Title))
            {
                AddBrokenRule(NewStudyPlanFailureRule.TITLE_CANNOT_EMPTY);
            }

            //标题已存在
            if (StudyPlanAccessor.Exists(StudyPlan.Title))
            {
                AddBrokenRule(NewStudyPlanFailureRule.TITLE_CANNOT_REPEAT);
            }

            //计划内容说明为空
            if (string.IsNullOrWhiteSpace(StudyPlan.Content))
            {
                AddBrokenRule(NewStudyPlanFailureRule.CONTENT_CANNOT_EMPTY);
            }

            //未指定学员
            if (_studentIds == null || _studentIds.Count() < 1)
            {
                AddBrokenRule(NewStudyPlanFailureRule.STUDENTS_CANNOT_EMPTY);
            }

            //未指定关联课程
            if (_courseIds == null || _courseIds.Count() < 1)
            {
                AddBrokenRule(NewStudyPlanFailureRule.COURSE_CANNOT_EMPTY);
            }

            //并非所有课程都存在
            if (!CourseAccessor.AllExists(_courseIds))
            {
                AddBrokenRule(NewStudyPlanFailureRule.PARTOF_COURSE_NOT_EXSITS);
            }
        }
Beispiel #5
0
        /// <summary>
        /// 保存
        /// </summary>
        /// <returns></returns>
        public bool Save()
        {
            //验证
            ThrowExceptionIfValidateFailure();

            //入库
            bool success = StudyPlanAccessor.Insert(StudyPlan, Courses, StudentsPlan);

            #region 事件处理

            if (success)
            {
                ExecuteEventsAfterAdded();
            }

            #endregion

            return(success);
        }
Beispiel #6
0
 public StudyPlanManage(long planId)
 {
     ID        = planId;
     StudyPlan = StudyPlanAccessor.Get(planId);
 }