private UserViewModel BuildUserModel(string userName) { var user = _membershipService.GetUserByUserName(userName); if (user == null) { throw new NotFoundException(); } var model = new UserViewModel(); model.User = user; var moderatedSubs = _moderationDao.GetSubsModeratoredByUser(user.Id); if (moderatedSubs.Count > 0) { model.IsModerator = true; model.ModeratingSubs = _subDao.GetSubsByIds(moderatedSubs).Select(x => x.Name).ToList(); } var kudos = _karmaDao.GetKarma(user.Id); model.CommentKudos = kudos.Keys.Where(x => x.Type == KarmaType.Comment).Sum(x => kudos[x]); model.PostKudos = kudos.Keys.Where(x => x.Type == KarmaType.Post).Sum(x => kudos[x]); return(model); }
public ActionResult Moderating() { ViewBag.NavigationKey = "moderating"; return(View("List", new PagedList <SubWrapped>(_subWrapper.Wrap(_moderationDao.GetSubsModeratoredByUser(_userContext.CurrentUser.Id), _userContext.CurrentUser), 1, int.MaxValue, false))); }
public ActionResult Inbox(InboxType type, int?pageNumber, int?pageSize) { ViewBag.ManageNavigationKey = "inbox"; if (pageNumber == null || pageNumber < 1) { pageNumber = 1; } if (pageSize == null) { pageSize = 25; } if (pageSize > 100) { pageSize = 100; } if (pageSize < 1) { pageSize = 1; } var skip = (pageNumber - 1) * pageSize; var take = pageSize; SeekedList <Guid> messages; switch (type) { case InboxType.All: messages = _messageDao.GetAllMessagesForUser(_userContext.CurrentUser.Id, skip, take); break; case InboxType.Unread: messages = _messageDao.GetUnreadMessagesForUser(_userContext.CurrentUser.Id, skip, take); break; case InboxType.Messages: messages = _messageDao.GetPrivateMessagesForUser(_userContext.CurrentUser.Id, skip, take); break; case InboxType.CommentReplies: messages = _messageDao.GetCommentRepliesForUser(_userContext.CurrentUser.Id, skip, take); break; case InboxType.PostReplies: messages = _messageDao.GetPostRepliesForUser(_userContext.CurrentUser.Id, skip, take); break; case InboxType.Mentions: messages = _messageDao.GetMentionsForUser(_userContext.CurrentUser.Id, skip, take); break; default: throw new Exception("Unknown inbox type"); } var model = new InboxViewModel(); model.InboxType = type; model.IsModerator = _moderationDao.GetSubsModeratoredByUser(_userContext.CurrentUser.Id).Count > 0; model.Messages = new PagedList <MessageWrapped>(_messageWrapper.Wrap(messages, _userContext.CurrentUser), pageNumber.Value, pageSize.Value, messages.HasMore); return(View(model)); }