public void ThreadViewed(int threadID, int userID) { ThreadView view = _threadViewRepository.First(item => item.UserID == userID && item.ThreadID == threadID); if (view == null) { _threadViewRepository.Add(new ThreadView() { ThreadID = threadID, UserID = userID, }); } ThreadViewStamp viewStamp = _threadViewStampRepository.First(item => item.UserID == userID && item.ThreadID == threadID); if (viewStamp == null) { _threadViewStampRepository.Add(new ThreadViewStamp() { Date = DateTime.UtcNow, UserID = userID, ThreadID = threadID }); } _unitOfWork.Commit(); }
public bool HasNewPost(int threadID, int userID) { Thread thread = GetThread(threadID); Post lastPost = thread.LastPost; User user = _userRepository.Get(userID); if (lastPost.UserID == userID) { return(false); } ThreadViewStamp FoundView = _threadViewStampRepository.First(item => item.UserID == userID && item.ThreadID == threadID); if (FoundView != null) { return(DateTime.Compare(lastPost.Date, FoundView.Date) > 0); } else { return(DateTime.Compare(lastPost.Date, user.LastLogoutDate) > 0); } }