Пример #1
0
        /// <summary>
        /// 统计我的消息
        /// </summary>
        /// <returns></returns>
        public MessageStatistics StatisticsForMessage()
        {
            int count = MessagesAccessor.GetCountFor(ID, false);

            var result = new MessageStatistics();

            result.TotalNoRead = count;

            return(result);
        }
Пример #2
0
        public PagerModel <Data.Entity.Messages> Search()
        {
            ThrowExceptionIfValidateFailure();

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

            MessagesAccessor.GerMessagesFor(pager, ReceiverId, IsReaded);

            return(pager);
        }
Пример #3
0
        /// <summary>
        /// 读取消息,如果该消息为未读状态,执行此操作后消息会变为已读状态
        /// </summary>
        /// <param name="userId">提取该消息的用户</param>
        /// <returns></returns>
        public Data.Entity.Messages Read(long userId)
        {
            ThrowExceptionIfValidateFailure(() =>
            {
                if (Message.Receiver != userId)
                {
                    AddBrokenRule(MessageManageFailureRule.NO_ACCESS);
                }
            });

            if (!Message.Readed)
            {
                Message.Readed   = true;
                Message.ReadTime = DateTime.Now;
                MessagesAccessor.Update(Message);
            }

            return(Message);
        }
Пример #4
0
        public override void Execute()
        {
            Validate();

            var state = State as MarkingCompleteNoticeEventState;

            if (state == null)
            {
                return;
            }

            if (state.UserExam == null)
            {
                return;
            }

            //考试的类型描述
            var examType = state.Exam.ExamType == (int)ExamType.TEST_EXAM ? "练习" : "考试";
            //得分情况文字标注颜色
            var color   = "green";
            var passTip = "及格";

            if (state.UserExam.Total < state.Exam.Pass)
            {
                color   = "red";
                passTip = "未及格";
            }

            var message = new Data.Entity.Messages
            {
                MessageId  = IDProvider.NewId,
                Title      = "你的练习(考)卷已阅卷完成,点击查看详情。",
                Content    = $@"你在{state.UserExam.CreateTime}参加的《{state.Exam.Title}》{examType}已完成阅卷,最后得分{state.UserExam.Total}分<span style='color:{color}'>({passTip})</span>,<a href=""/exams/testdetails/{state.UserExam.Id}"">点击查看详细结果</a>。",
                CreateTime = DateTime.Now,
                Readed     = false,
                ReadTime   = null,
                Receiver   = state.UserExam.UserId,
                Sender     = state.ReviewUser
            };

            MessagesAccessor.Add(message);
        }
Пример #5
0
        public override void Execute()
        {
            Validate();

            var state = State as NewStudyPlanNoticeEventState;

            if (state == null)
            {
                return;
            }

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

            //遍历处理计划内的学员消息
            var list = new List <Data.Entity.Messages>();

            foreach (var userId in state.StudentIds)
            {
                list.Add(new Data.Entity.Messages
                {
                    MessageId  = IDProvider.NewId,
                    Title      = "你有新的学习计划,点击查看详情。",
                    Content    = $@"你已经被邀请加入学习计划《{state.Plan.Title}》,完成计划内的所有课程,还有更多练习(考)卷自测哦,<a href=""/UserStudyPlan/details/{state.Plan.PlanId}"">点击查看详细计划</a>。",
                    CreateTime = DateTime.Now,
                    Readed     = false,
                    ReadTime   = null,
                    Receiver   = userId,
                    Sender     = state.Plan.UserId
                });
            }

            MessagesAccessor.AddRange(list);
        }