Beispiel #1
0
        public void UpdateRead(string circleKey, int memberId, int?id = 0)
        {
            var db      = _uow.DbContext;
            var objRead = db.ActivitysReadMark.FirstOrDefault(x => x.ToRoomId.ToLower() == circleKey.ToLower() && x.memberId == memberId);

            if (objRead != null)
            {
                if (id.HasValue)
                {
                    // 更新最後的一筆已讀
                    objRead.LastReadActivityIdEnd = id.Value;
                }
                objRead.Time = DateTime.UtcNow;
                _uow.SaveChanges();
            }
            else //無已讀資料,就幫使用者建立一筆新的
            {
                var now = DateTime.UtcNow;
                var beginActivityInfo = db.Activitys.Where(t => t.ToRoomId.ToLower() == circleKey).OrderBy(t => t.Id).FirstOrDefault();
                var endActivityInfo   = db.Activitys.Where(t => t.ToRoomId.ToLower() == circleKey).OrderByDescending(t => t.Id).FirstOrDefault();
                var actReadMarkEntity = new Infrastructure.Entity.ActivitysReadMark()
                {
                    Enabled = true,
                    LastReadActivityIdBegin = beginActivityInfo.Id,
                    LastReadActivityIdEnd   = endActivityInfo.Id,
                    memberId = memberId,
                    ToRoomId = circleKey,
                    Time     = now
                };
                db.ActivitysReadMark.Add(actReadMarkEntity);
                db.SaveChanges();
            }
        }
Beispiel #2
0
        public void ClearNoticeCount(int memberId)
        {
            //_uow.ActivitysReadMarksRepo.SaveActivitysReadMarks(memberId);
            var db = _uow.DbContext;

            var noticeInfo = db.ActivitysNotice.Where(t => t.MemberId == memberId).OrderByDescending(t => t.Id).FirstOrDefault();

            if (noticeInfo != null)
            {
                var readMarkInfo = db.ActivitysReadMark.FirstOrDefault(t => t.memberId == memberId && t.ToRoomId == "myNotice");
                if (readMarkInfo == null)
                {
                    var entity = new Infrastructure.Entity.ActivitysReadMark()
                    {
                        Enabled  = true,
                        memberId = memberId,
                        LastReadActivityIdBegin = 1,
                        LastReadActivityIdEnd   = noticeInfo.Id,
                        Time     = DateTime.UtcNow,
                        ToRoomId = "myNotice"
                    };
                    db.ActivitysReadMark.Add(entity);
                }
                else
                {
                    readMarkInfo.LastReadActivityIdEnd = noticeInfo.Id;
                    readMarkInfo.Time = DateTime.UtcNow;
                }
                db.SaveChanges();
            }
        }