Beispiel #1
0
 public static Job CreateJob(SendNoticeArgs sendNoticeArgs)
 => new Job
 {
     JobType = JobType.SendNotice, SendNoticeArgs = sendNoticeArgs
 };
Beispiel #2
0
        private async Task SendNoticeMessage(SendNoticeArgs args)
        {
            switch (args.Type)
            {
            case NoticeType.NewPost:
            case NoticeType.NewReply:
                string notice;
                if (args.Type == NoticeType.NewPost)
                {
                    notice = string.Format("<a href='/User/{0}'>{0}</a> 回复了您的投稿:<a href='{2}'>{1}</a>", args.Actor, args.Content, args.Url);
                }
                else
                {
                    notice = string.Format("<a href='/User/{0}'>{0}</a> 在<a href='{2}'>{1}</a>中回复了您的评论", args.Actor, args.Content, args.Url);
                }
                int num = 0;
                var db  = _usersContext;
                var msg = db.Messages
                          .Where(m => m.MsgTitle.StartsWith("新回复通知") && m.Recipient == args.NoticeUser && m.Sender == "admin")
                          .OrderByDescending(m => m.MsgDate)
                          .FirstOrDefault();
                if (msg != null && msg.IsRead == false)
                {
                    var value = Regex.Match(msg.MsgTitle, @"\d+").Value;
                    if (string.IsNullOrEmpty(value) || !int.TryParse(value, out num))
                    {
                        num = 1;
                    }
                    msg.MsgTitle   = string.Format("新回复通知 ({0})", num + 1);
                    msg.MsgDate    = DateTime.Now;
                    msg.MsgContent = notice + '\n' + msg.MsgContent;
                    await db.SaveChangesAsync();
                }
                else
                {
                    await AddMessage(new Message
                    {
                        Sender         = "admin",
                        Recipient      = args.NoticeUser,
                        MsgTitle       = "新回复通知",
                        MsgContent     = notice,
                        IsSenderDelete = true
                    });
                }
                return;

            case NoticeType.DeletePost:
                await AddMessage(new Message
                {
                    Sender     = args.Actor,
                    Recipient  = args.NoticeUser,
                    MsgTitle   = "删除通知",
                    MsgContent = string.Format("您在投稿<a href='{1}'>{0}</a>中的评论已被管理员删除", args.Content, args.Url)
                });

                return;

            case NoticeType.DeleteReply:
                await AddMessage(new Message
                {
                    Sender     = args.Actor,
                    Recipient  = args.NoticeUser,
                    MsgTitle   = "删除通知",
                    MsgContent = string.Format("您在投稿<a href='{1}'>{0}</a>中的回复已被管理员删除", args.Content, args.Url)
                });

                return;

            case NoticeType.DeleteBlog:
                await AddMessage(new Message
                {
                    Sender     = args.Actor,
                    Recipient  = args.NoticeUser,
                    MsgTitle   = "删除通知",
                    MsgContent = string.Format("您的投稿 {1} 已被管理员删除<br>原因:<br>{0}", args.Content, args.Url)
                });

                return;

            case NoticeType.Unapprove:
                await AddMessage(new Message
                {
                    Sender     = args.Actor,
                    Recipient  = args.NoticeUser,
                    MsgTitle   = "审核通知",
                    MsgContent = string.Format("您的投稿<a href='{1}'>{1}</a>已被管理员标为审核不通过<br>原因:<br>{0}", args.Content, args.Url)
                });

                return;

            case NoticeType.ExpChange:
                await AddMessage(new Message
                {
                    Sender     = args.Actor,
                    Recipient  = args.NoticeUser,
                    MsgTitle   = "绅士度/棒棒糖调整通知",
                    MsgContent = string.Format("您的绅士度/棒棒糖获得了如下更改:{0}<br>如有疑问,请联系管理员。", args.Content)
                });

                return;

            case NoticeType.Mention:
                await AddMessage(new Message
                {
                    Sender         = "admin",
                    Recipient      = args.NoticeUser,
                    MsgTitle       = "提及通知",
                    MsgContent     = string.Format("<a href='/User/{0}'>{0}</a> 在 <a href='{2}'>{1}</a>中提到了您。", args.Actor, args.Content, args.Url),
                    IsSenderDelete = true
                });

                return;

            case NoticeType.RankReward:
                await AddMessage(new Message
                {
                    Sender         = "admin",
                    Recipient      = args.NoticeUser,
                    MsgTitle       = "奖励通知",
                    MsgContent     = args.Content,
                    IsSenderDelete = true
                });

                return;

            default:
                return;
            }
        }