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(); } }
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(); } }