Exemplo n.º 1
0
 /// <summary>
 /// 添加留言通知
 /// </summary>
 /// <param name="RecipientID">接收人ID</param>
 /// <param name="SponsorID">发起人ID</param>
 /// <param name="NoticeObject">主题(类别)</param>
 /// <param name="NoticeContent">内容</param>
 /// <param name="TreasureUID">物品UID(可选)</param>
 /// <returns></returns>
 public void AddNotice(string RecipientID, string SponsorID, string NoticeObject, string NoticeContent, string TreasureUID = null, string RelpyNoticeUID = null)
 {
     using (var db = new NoticeDataContext())
     {
         db.Notice.InsertOnSubmit(new Domain.Db.Notice
         {
             IsRead         = false,
             NoticeContent  = NoticeContent,
             NoticeObject   = NoticeObject,
             NoticeTime     = DateTime.Now,
             NoticeUID      = Guid.NewGuid(),
             RecipientID    = RecipientID,
             SponsorID      = SponsorID,
             TreasureUID    = TreasureUID,
             RelpyNoticeUID = RelpyNoticeUID
         });
         db.SubmitChanges();
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// 我的通知
        /// </summary>
        /// <returns></returns>
        public ActionResult Message(string NoticeUID = "")
        {
            if (!string.IsNullOrEmpty(NoticeUID))
            {
                //获取通知对象
                using (var db = new NoticeDataContext())
                {
                    var notice = db.Notice.Where(n => n.NoticeUID == Guid.Parse(NoticeUID)).FirstOrDefault();

                    //将当前通知设为已读
                    notice.IsRead = true;
                    db.SubmitChanges();

                    if (notice != null)
                    {
                        //新建视图模型
                        MessageViewModel model = new MessageViewModel
                        {
                            BasicUserInfoMy = new BasicUserInfo
                            {
                                UserID   = CurrentUser.Id,
                                UserName = CurrentUser.UserName
                            },
                            BasicUserInfoTa = new BasicUserInfo
                            {
                                UserID   = UserManager.FindById(notice.SponsorID).Id,
                                UserName = UserManager.FindById(notice.SponsorID).UserName
                            },
                            CurrMessUID = notice.NoticeUID.ToString(),
                        };

                        //新建历史消息集合
                        List <Message> messageLog = new List <Message>();
                        bool           isR        = true;
                        //不为空,
                        if (notice.RelpyNoticeUID != null)
                        {
                            do
                            {
                                //获取发起人
                                var Spon = UserManager.FindById(notice.SponsorID);
                                if (Spon != null)
                                {
                                    messageLog.Add(new Message
                                    {
                                        BasicUserInfo = new BasicUserInfo
                                        {
                                            UserID   = Spon.Id,
                                            HeadImg  = Spon.HeadPortrait,
                                            Email    = Spon.Email,
                                            UserName = Spon.UserName
                                        },
                                        Notice = notice
                                    });
                                }
                                if (notice.RelpyNoticeUID == null)
                                {
                                    break;
                                }
                                else
                                {
                                    notice = db.Notice.Where(n => n.NoticeUID == Guid.Parse(notice.RelpyNoticeUID)).FirstOrDefault();
                                }
                            } while (true);
                        }
                        else
                        {
                            do
                            {
                                //获取发起人
                                var Spon = UserManager.FindById(notice.SponsorID);
                                if (Spon != null)
                                {
                                    messageLog.Add(new Message
                                    {
                                        BasicUserInfo = new BasicUserInfo
                                        {
                                            UserID   = Spon.Id,
                                            HeadImg  = Spon.HeadPortrait,
                                            Email    = Spon.Email,
                                            UserName = Spon.UserName
                                        },
                                        Notice = notice
                                    });
                                }
                                //检查当前有无回复目标
                                notice = db.Notice.Where(t => t.RelpyNoticeUID == notice.NoticeUID.ToString()).FirstOrDefault();
                                if (notice == null)
                                {
                                    break;
                                }
                            } while (true);
                            isR = false;
                        }
                        if (isR)
                        {
                            var notice2 = db.Notice.Where(n => n.NoticeUID == Guid.Parse(NoticeUID)).FirstOrDefault();
                            int cnt     = 0;
                            do
                            {
                                //获取发起人
                                var Spon = UserManager.FindById(notice2.SponsorID);
                                if (Spon != null)
                                {
                                    if (cnt != 0)
                                    {
                                        messageLog.Add(new Message
                                        {
                                            BasicUserInfo = new BasicUserInfo
                                            {
                                                UserID   = Spon.Id,
                                                HeadImg  = Spon.HeadPortrait,
                                                Email    = Spon.Email,
                                                UserName = Spon.UserName
                                            },
                                            Notice = notice2
                                        });
                                    }
                                }
                                //检查当前有无回复目标
                                notice2 = db.Notice.Where(t => t.RelpyNoticeUID == notice2.NoticeUID.ToString()).FirstOrDefault();
                                if (notice2 == null)
                                {
                                    break;
                                }
                                cnt = 1;
                            } while (true);
                        }

                        //添加数据
                        model.Messages = messageLog.OrderBy(m => m.Notice.NoticeTime).Distinct().AsEnumerable();
                        return(View(model));
                    }
                }
            }

            return(View("Error"));
        }