public void ProcessUserRequest(User user, HttpContextBase context) { if (context.Response.IsRequestBeingRedirected) return; int? userID = null; if (user != null) userID = user.UserID; if (context.Request.Cookies[_sessionIDCookieName] == null) { StartNewSession(context, userID); if (user != null) _userRepository.UpdateLastActivityDate(user, DateTime.UtcNow); } else { var sessionID = Convert.ToInt32(context.Request.Cookies[_sessionIDCookieName].Value); if (user != null) _userRepository.UpdateLastActivityDate(user, DateTime.UtcNow); var updateSuccess = _userSessionRepository.UpdateSession(sessionID, DateTime.UtcNow); if (!updateSuccess) StartNewSession(context, userID); else { var isAnon = _userSessionRepository.IsSessionAnonymous(sessionID); if (userID.HasValue && isAnon || !userID.HasValue && !isAnon) { EndAndDeleteSession(new ExpiredUserSession { UserID = null, SessionID = sessionID, LastTime = DateTime.UtcNow }); StartNewSession(context, userID); } } } }
public PrivateMessage Create(string subject, string fullText, User user, List<User> toUsers) { if (String.IsNullOrWhiteSpace(subject)) throw new ArgumentNullException("subject"); if (String.IsNullOrWhiteSpace(fullText)) throw new ArgumentNullException("fullText"); if (user == null) throw new ArgumentNullException("user"); if (toUsers == null || toUsers.Count == 0) throw new ArgumentException("toUsers must include at least one user.", "toUsers"); var names = user.Name; foreach (var toUser in toUsers) names += ", " + toUser.Name; var now = DateTime.UtcNow; var pm = new PrivateMessage { Subject = TextParsingService.EscapeHtmlAndCensor(subject), UserNames = names, LastPostTime = now }; pm.PMID = PrivateMessageRepository.CreatePrivateMessage(pm); PrivateMessageRepository.AddUsers(pm.PMID, new List<int> {user.UserID}, now, true); PrivateMessageRepository.AddUsers(pm.PMID, toUsers.Select(u => u.UserID).ToList(), now.AddSeconds(-1), false); var post = new PrivateMessagePost { FullText = TextParsingService.ForumCodeToHtml(fullText), Name = user.Name, PMID = pm.PMID, PostTime = now, UserID = user.UserID }; PrivateMessageRepository.AddPost(post); return pm; }
public void MarkAllForumReadSetsReadTimes() { var service = GetService(); var user = new User(456, DateTime.MinValue); service.MarkAllForumsRead(user); _lastReadRepo.Verify(l => l.SetAllForumsRead(user.UserID, It.IsAny<DateTime>()), Times.Exactly(1)); }
public void SetPassword(User targetUser, string password, string ip, User user) { var salt = Guid.NewGuid(); var hashedPassword = password.GetMD5Hash(salt); _userRepository.SetHashedPassword(targetUser, hashedPassword, salt); _securityLogService.CreateLogEntry(user, targetUser, ip, String.Empty, SecurityLogType.PasswordChange); }
public void TryRemoveSubTopicNullTopic() { var service = GetService(); var user = new User(123, DateTime.MaxValue); service.TryRemoveSubscribedTopic(user, null); _mockSubRepo.Verify(s => s.RemoveSubscribedTopic(It.IsAny<int>(), It.IsAny<int>()), Times.Never()); }
public UserEdit(User user, Profile profile) { UserID = user.UserID; Name = user.Name; Email = user.Email; IsApproved = user.IsApproved; IsSubscribed = profile.IsSubscribed; Signature = profile.Signature; ShowDetails = profile.ShowDetails; Location = profile.Location; IsPlainText = profile.IsPlainText; Dob = profile.Dob; Web = profile.Web; Aim = profile.Aim; Icq = profile.Icq; YahooMessenger = profile.YahooMessenger; Facebook = profile.Facebook; Twitter = profile.Twitter; TimeZone = profile.TimeZone; IsDaylightSaving = profile.IsDaylightSaving; HideVanity = profile.HideVanity; Roles = user.Roles.ToArray(); AvatarID = profile.AvatarID; ImageID = profile.ImageID; }
public void UserWithAnonCookieStartsLoggedInSession() { var user = new User(123, DateTime.MinValue); var service = GetService(); const int sessionID = 5467; var requestCookies = new HttpCookieCollection { new HttpCookie("pf_sessionID", sessionID.ToString()) }; _contextHelper.MockRequest.Setup(r => r.Cookies).Returns(requestCookies); _mockUserSessionRepo.Setup(u => u.UpdateSession(sessionID, It.IsAny<DateTime>())).Returns(true); _mockUserSessionRepo.Setup(u => u.IsSessionAnonymous(sessionID)).Returns(true); var responseCookies = new HttpCookieCollection(); _contextHelper.MockResponse.Setup(r => r.Cookies).Returns(responseCookies); service.ProcessUserRequest(user, _contextHelper.MockContext.Object); _mockUserSessionRepo.Verify(u => u.UpdateSession(sessionID, It.IsAny<DateTime>()), Times.Once()); _mockUserRepo.Verify(u => u.UpdateLastActivityDate(user, It.IsAny<DateTime>()), Times.Once()); _mockUserSessionRepo.Verify(u => u.DeleteSessions(null, sessionID), Times.Once()); _mockSecurityLogService.Verify(s => s.CreateLogEntry(null, null, String.Empty, sessionID.ToString(), SecurityLogType.UserSessionEnd, It.IsAny<DateTime>()), Times.Once()); Assert.AreEqual(1, responseCookies.Count); var cookie = responseCookies[0]; int newSessionID; Assert.True(int.TryParse(cookie.Value, out newSessionID)); Assert.AreEqual("pf_sessionID", cookie.Name); _mockUserSessionRepo.Verify(u => u.CreateSession(It.IsAny<int>(), user.UserID, It.IsAny<DateTime>()), Times.Once()); _mockSecurityLogService.Verify(s => s.CreateLogEntry(null, user.UserID, It.IsAny<string>(), It.IsAny<string>(), SecurityLogType.UserSessionStart), Times.Once()); }
public void MarkAllForumsRead(User user) { if (user == null) throw new ArgumentNullException("user"); _lastReadRepository.SetAllForumsRead(user.UserID, DateTime.UtcNow); _lastReadRepository.DeleteAllTopicReads(user.UserID); }
public void Reply(PrivateMessage pm, string fullText, User user) { if (pm == null || pm.PMID == 0) throw new ArgumentException("Can't reply to a PM that hasn't been persisted.", "pm"); if (String.IsNullOrWhiteSpace(fullText)) throw new ArgumentNullException("fullText"); if (user == null) throw new ArgumentNullException("user"); if (!IsUserInPM(user, pm)) throw new Exception("Can't add a PM reply for a user not part of the PM."); var post = new PrivateMessagePost { FullText = TextParsingService.ForumCodeToHtml(fullText), Name = user.Name, PMID = pm.PMID, PostTime = DateTime.UtcNow, UserID = user.UserID }; PrivateMessageRepository.AddPost(post); var users = PrivateMessageRepository.GetUsers(pm.PMID); foreach (var u in users) PrivateMessageRepository.SetArchive(pm.PMID, u.UserID, false); var now = DateTime.UtcNow; PrivateMessageRepository.UpdateLastPostTime(pm.PMID, now); PrivateMessageRepository.SetLastViewTime(pm.PMID, user.UserID, now); }
public void EnqueueDoesWhatItSaysItShould() { var calc = GetCalc(); var user = new User(1, DateTime.MinValue); var eventDef = new EventDefinition {EventDefinitionID = "blah"}; calc.QueueCalculation(user, eventDef); _awardCalcRepo.Verify(x => x.Enqueue(eventDef.EventDefinitionID, user.UserID), Times.Once()); }
public void TryRemoveSubTopic() { var service = GetService(); var user = new User(123, DateTime.MaxValue); var topic = new Topic(456); service.TryRemoveSubscribedTopic(user, topic); _mockSubRepo.Verify(s => s.RemoveSubscribedTopic(user.UserID, topic.TopicID), Times.Once()); }
public DateTime? GetForumReadStatus(User user, Forum forum) { if (user != null) { return _lastReadRepository.GetLastReadTimesForForum(user.UserID, forum.ForumID); } return null; }
public DateTime? GetTopicReadStatus(User user, Topic topic) { if (user != null) { return _lastReadRepository.GetLastReadTimeForTopic(user.UserID, topic.TopicID); } return null; }
public void MarkTopicRead(User user, Topic topic) { if (user == null) throw new ArgumentNullException("user"); if (topic == null) throw new ArgumentNullException("topic"); _lastReadRepository.SetTopicRead(user.UserID, topic.TopicID, DateTime.UtcNow); }
public void IssueMapsFieldsToRepoCall() { var user = new User(123, DateTime.MinValue); var awardDef = new AwardDefinition {AwardDefinitionID = "blah", Description = "desc", Title = "title", IsSingleTimeAward = true}; var service = GetService(); service.IssueAward(user, awardDef); _userAwardRepo.Verify(x => x.IssueAward(user.UserID, awardDef.AwardDefinitionID, awardDef.Title, awardDef.Description, It.IsAny<DateTime>()), Times.Once()); }
public void SetAndGetUserValue() { var user = new User(123, DateTime.MinValue) {Name = "Name", Email = "Email", IsApproved = true, LastActivityDate = DateTime.MaxValue, LastLoginDate = DateTime.MaxValue, AuthorizationKey = Guid.NewGuid()}; var viewData = new ViewDataDictionary(); viewData.SetUserInViewData(user); var retrievedUser = viewData[ViewDataDictionaries.ViewDataUserKey]; Assert.AreSame(user, retrievedUser); }
public void PublishToFeed(User user, string message, int points, DateTime timeStamp) { if (user == null) return; _feedRepository.PublishEvent(user.UserID, message, points, timeStamp); var cutOff = _feedRepository.GetOldestTime(user.UserID, MaxFeedCount); _feedRepository.DeleteOlderThan(user.UserID, cutOff); }
public void MarkForumReadDeletesOldTopicReadTimes() { var service = GetService(); var forum = new Forum(123); var user = new User(456, DateTime.MinValue); service.MarkForumRead(user, forum); _lastReadRepo.Verify(l => l.DeleteTopicReadsInForum(user.UserID, forum.ForumID), Times.Exactly(1)); }
public void RemoveFaveTopic() { var service = GetService(); var user = new User(123, DateTime.MaxValue); var topic = new Topic(456); service.RemoveFavoriteTopic(user, topic); _mockFaveRepo.Verify(s => s.RemoveFavoriteTopic(user.UserID, topic.TopicID), Times.Once()); }
public void MarkForumReadSetsReadTime() { var service = GetService(); var forum = new Forum(123); var user = new User(456, DateTime.MinValue); service.MarkForumRead(user, forum); _lastReadRepo.Verify(l => l.SetForumRead(user.UserID, forum.ForumID, It.IsAny<DateTime>()), Times.Exactly(1)); }
public void ProcessManualEvent(string feedMessage, User user, int pointValue) { var timeStamp = DateTime.UtcNow; var eventDefinition = new EventDefinition { EventDefinitionID = "Manual", PointValue = pointValue }; var ledgerEntry = new PointLedgerEntry { UserID = user.UserID, EventDefinitionID = eventDefinition.EventDefinitionID, Points = eventDefinition.PointValue, TimeStamp = timeStamp }; _pointLedgerRepository.RecordEntry(ledgerEntry); _profileService.UpdatePointTotal(user); _feedService.PublishToFeed(user, feedMessage, eventDefinition.PointValue, timeStamp); }
public void MarkForumRead(User user, Forum forum) { if (user == null) throw new ArgumentNullException("user"); if (forum == null) throw new ArgumentNullException("forum"); _lastReadRepository.SetForumRead(user.UserID, forum.ForumID, DateTime.UtcNow); _lastReadRepository.DeleteTopicReadsInForum(user.UserID, forum.ForumID); }
public void SetHashedPassword(User user, string hashedPassword, Guid salt) { _sqlObjectFactory.GetConnection().Using(connection => connection.Command("UPDATE pf_PopForumsUser SET Password = @Password, Salt = @Salt WHERE UserID = @UserID") .AddParameter("@Password", hashedPassword) .AddParameter("@Salt", salt) .AddParameter("@UserID", user.UserID) .ExecuteNonQuery()); }
public List<PrivateMessage> GetPrivateMessages(User user, PrivateMessageBoxType boxType, int pageIndex, out PagerContext pagerContext) { var total = PrivateMessageRepository.GetBoxCount(user.UserID, boxType); var pageSize = SettingsManager.Current.TopicsPerPage; var startRow = ((pageIndex - 1) * pageSize) + 1; var totalPages = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(total) / Convert.ToDouble(pageSize))); pagerContext = new PagerContext { PageCount = totalPages, PageIndex = pageIndex, PageSize = pageSize }; return PrivateMessageRepository.GetPrivateMessages(user.UserID, boxType, startRow, pageSize); }
public void SetAuthCookie(HttpContextBase context, User user, bool createPersistentCookie) { var ticket = new FormsAuthenticationTicket(9, user.Name, DateTime.Now, DateTime.Now.AddDays(30), createPersistentCookie, ""); var encryptedTicket = FormsAuthentication.Encrypt(ticket); var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); if (createPersistentCookie) cookie.Expires = DateTime.Now.AddDays(30); context.Response.Cookies.Add(cookie); }
public void GetAwardsMapsUserIDAndReturnsList() { var user = new User(123, DateTime.MinValue); var list = new List<UserAward>(); var service = GetService(); _userAwardRepo.Setup(x => x.GetAwards(user.UserID)).Returns(list); var result = service.GetAwards(user); Assert.AreSame(list, result); }
public void IsAwardedMapsAndReturnsRightValue() { var user = new User(123, DateTime.MinValue); var awardDef = new AwardDefinition { AwardDefinitionID = "blah" }; var service = GetService(); _userAwardRepo.Setup(x => x.IsAwarded(user.UserID, awardDef.AwardDefinitionID)).Returns(true); var result = service.IsAwarded(user, awardDef); Assert.IsTrue(result); }
public void GetFeedGets50ItemsMaxFromRepo() { var service = GetService(); var user = new User(123, DateTime.MinValue); var list = new List<FeedEvent>(); _feedRepo.Setup(x => x.GetFeed(user.UserID, 50)).Returns(list); var result = service.GetFeed(user); Assert.AreSame(result, list); }
public void AddUnapprovedFriendWontCallRepoIfSelfAddingFriend() { var service = GetService(); var fromUser = new User(123, DateTime.MinValue); service.AddUnapprovedFriend(fromUser, fromUser); _friendRepo.Verify(x => x.AddUnapprovedFriend(fromUser.UserID, fromUser.UserID), Times.Never()); }
public void PublishSavesToRepo() { var service = GetService(); var user = new User(123, DateTime.MinValue); const string msg = "oiehgfoih"; const int points = 5352; var timeStamp = new DateTime(2000, 1, 1); service.PublishToFeed(user, msg, points, timeStamp); _feedRepo.Verify(x => x.PublishEvent(user.UserID, msg, points, timeStamp), Times.Once()); }