public ActionResult Conversation(string username) { UserModel sender = Session["CurrentUser"] as UserModel; UserModel receiver = _unitOfWork.Users.GetByUsername(username); List <MessageModel> messages = _unitOfWork.Messages.GetUserMessages(sender.Id); List <UserShortModel> messangers = _unitOfWork.Messages.GetUserMessangers(sender.Id); messangers.RemoveAll(u => u.Id == sender.Id); if (messangers.All(u => u.Username != username)) { messangers.Add(UserShortModel.From(receiver)); } ViewBag.Messangers = messangers; ViewBag.SecondUser = username; List <MessageModel> toViewBag = messangers.Select(u => messages.OrderBy(m => m.CreationDate).LastOrDefault()).ToList(); ViewBag.FirstMessages = toViewBag; ViewBag.CurrentUser = sender; ViewBag.UserProfile = receiver; ViewBag.Messages = _unitOfWork.Messages.GetMessages(sender.Id, receiver.Id); return(View("Conversation")); }
public List <UserShortModel> GetUserMessangers(int userId) { List <Message> messages = ctx.Messages.Where(m => m.SenderId == userId || m.ReceiverId == userId).ToList(); List <UserShortModel> messangers = new List <UserShortModel>(); foreach (Message message in messages) { if (messangers.Count(m => m.Id == message.SenderId) == 0) { if (message.Sender == null) { message.Sender = ctx.Users.First(u => message.SenderId == u.Id); } messangers.Add(UserShortModel.From(message.Sender.Id, message.Sender.Username, message.Sender.Avatar)); } if (messangers.Count(m => m.Id == message.ReceiverId) == 0) { if (message.Receiver == null) { message.Receiver = ctx.Users.First(u => message.ReceiverId == u.Id); } messangers.Add(UserShortModel.From(message.Receiver.Id, message.Receiver.Username, message.Receiver.Avatar)); } } return(messangers); }
public List <WallPostCommentModel> GetNewWallPostComments(int postId, int?postCommentId) { WallPost post = ctx.UserPosts.First(p => p.Id == postId); if (postCommentId == null) { try { if (post.Comments.Any()) { List <WallPostCommentModel> comments = post.Comments.Select(c => new WallPostCommentModel() { Id = c.Id, CreationTime = c.CreationTime, Content = c.Content, WallPostId = c.WallPostId, Creator = new UserShortModel() { Id = c.Creator.Id, Username = c.Creator.Username, Avatar = c.Creator.Avatar } }).ToList(); return(comments); } else { return(new List <WallPostCommentModel>()); } } catch (Exception e) { return(new List <WallPostCommentModel>()); } } else { WallPostComment comment = post.Comments.First(c => c.Id == postCommentId); List <WallPostComment> comments = post.Comments.Where(p => comment.CreationTime.Ticks < p.CreationTime.Ticks && comment.Id != p.Id).ToList(); if (comments.Any()) { return(comments.Select(c => new WallPostCommentModel() { Id = c.Id, CreationTime = c.CreationTime, Content = c.Content, WallPostId = c.WallPostId, Creator = UserShortModel.From(c.Creator.Id, c.Creator.Username, c.Creator.Avatar) }).ToList()); } else { return(new List <WallPostCommentModel>()); } } }
public static CommentModel GetCommentModel(ServiceComment comment) { UserShortModel user = manager.userService.GetUserProfile(comment.UserID)?.ToUserShortModel() ?? new ServiceUserProfile() { ID = comment.UserID }.ToUserShortModel(); return(comment.ToCommentModel(user, Book.GetBookShortModel(comment.BookID, comment.UserID))); }
public static ReviewModel GetReviewModel(ServiceReview review) { UserShortModel user = manager.userService.GetUserProfile(review.UserID)?.ToUserShortModel() ?? new ServiceUserProfile() { ID = review.UserID }.ToUserShortModel(); return(review.ToReviewModel(user, Book.GetBookShortModel(review.BookID, review.UserID))); }
public static ContentModel ToContentModel(this ServiceContent content, UserShortModel user, BookShortModel book) { return(new ContentModel { Book = book, ID = content.ID, Text = content.Text, User = user }); }
public static CommentModel ToCommentModel(this ServiceComment comment, UserShortModel user, BookShortModel book) { return(new CommentModel { PublishTime = comment.PublishTime, Book = book, ID = comment.ID, Text = comment.Text, User = user }); }
public List <TaskCommentModel> GetNewTaskComments(int taskId, int?taskCommentId) { Task task = ctx.Tasks.First(p => p.Id == taskId); if (taskCommentId == null) { if (task.TaskComments.Any()) { return(task.TaskComments.Select(c => new TaskCommentModel() { Id = c.Id, CreationTime = c.CreationTime, Content = c.Content, TaskId = c.TaskId, Creator = new UserShortModel() { Id = c.Creator.Id, Username = c.Creator.Username, Avatar = c.Creator.Avatar } }).ToList()); } else { return(new List <TaskCommentModel>()); } } else { TaskComment comment = task.TaskComments.First(c => c.Id == taskCommentId); List <TaskComment> comments = task.TaskComments.Where(p => comment.Id < p.Id).ToList(); if (comments.Any()) { return(comments.Select(c => new TaskCommentModel() { Id = c.Id, CreationTime = c.CreationTime, Content = c.Content, TaskId = c.TaskId, Creator = UserShortModel.From(c.Creator.Id, c.Creator.Username, c.Creator.Avatar) }).ToList()); } else { return(new List <TaskCommentModel>()); } } }
public async Task <UserShortModel> GetEmailConfirmTokenAsync(string email) { var userModel = new UserShortModel(); var user = await _userRepository.GetUserByEmailAsync(email); if (user == null) { userModel.Errors.Add(Constants.Errors.UserNotFound); return(userModel); } userModel.UserId = user.Id; userModel.ConfirmToken = await _userRepository.GetEmailConfirmTokenAsync(user); return(userModel); }
public static ReviewModel ToReviewModel(this ServiceReview review, UserShortModel user, BookShortModel book) { return(new ReviewModel() { ID = review.ID, Book = book, Header = review.Header, PublishTime = review.PublishTime, Text = review.Text, Type = (review.Type < 0) ? ReviewType.Negative : review.Type == 0 ? ReviewType.Neutral : ReviewType.Positive, User = user, }); }
public List <UserShortModel> GetAllUsers() { var users = _dbContext.Users; var resultUsers = new List <UserShortModel>(); foreach (var dbUser in users) { var user = new UserShortModel() { Name = dbUser.Name, LastName = dbUser.LastName, Id = dbUser.Id }; resultUsers.Add(user); } return(resultUsers); }
public ActionResult BrCriteria([FromJson] BrCriteriaVM brCriteriaVM) { IssueBrCriteria ibc = new IssueBrCriteria(); ibc.UpdateCriteria(brCriteriaVM.IssueCriteria, brCriteriaVM.DeletedCriteria, GetUserIdFromClaim()); brCriteriaVM.IssueCriteria = ibc.GetIssueCriteria(brCriteriaVM.Issue.Id, GetUserIdFromClaim()); UserShortModel user = new UserShortModel(brCriteriaVM.UserId, GetUserNameFromClaim()); var context = GlobalHost.ConnectionManager.GetHubContext <CriterionHub>(); context.Clients.All.updateCriteria(brCriteriaVM.IssueCriteria, user, brCriteriaVM.Issue.Id); if (brCriteriaVM.DeletedCriteria != null && brCriteriaVM.DeletedCriteria.Count > 0) { context.Clients.All.deleteCriteria(brCriteriaVM.DeletedCriteria, user); } var ctx2 = GlobalHost.ConnectionManager.GetHubContext <NotificationHub>(); ctx2.Clients.All.updateActivity(brCriteriaVM.Issue.Id, brCriteriaVM.UserId); brCriteriaVM.DeletedCriteria = new List <int>(); return(View(brCriteriaVM)); }
public ActionResult BrAlternatives([FromJson] BrAlternativesVM brAlternativesVM) { IssueBrAlternative iba = new IssueBrAlternative(); int userId = GetUserIdFromClaim(); iba.UpdateAlternatives(brAlternativesVM.Alternatives, brAlternativesVM.DeletedAlternatives, userId); brAlternativesVM.Alternatives = iba.GetIssueAlternatives(brAlternativesVM.Issue.Id, userId); UserShortModel user = new UserShortModel(brAlternativesVM.UserId, GetUserNameFromClaim()); var context = GlobalHost.ConnectionManager.GetHubContext <AlternativeHub>(); context.Clients.All.updateAlternatives(brAlternativesVM.Alternatives, user, brAlternativesVM.Issue.Id); if (brAlternativesVM.DeletedAlternatives != null && brAlternativesVM.DeletedAlternatives.Count > 0) { context.Clients.All.deleteAlternatives(brAlternativesVM.DeletedAlternatives, user); } brAlternativesVM.DeletedAlternatives = new List <int>(); var ctx2 = GlobalHost.ConnectionManager.GetHubContext <NotificationHub>(); ctx2.Clients.All.updateActivity(brAlternativesVM.Issue.Id, brAlternativesVM.UserId); return(View(brAlternativesVM)); }
/// <summary> /// notification when user updates/makes alternative evaluation /// </summary> /// <param name="userRatings">list of user ratings</param> /// <param name="user">user who is performing this operation</param> public void UpdateEvaluation(List <RatingModel> userRatings, UserShortModel user) { Clients.All.updateRatings(userRatings, user); }
/// <summary> /// notifie clients to update alnternatives /// </summary> /// <param name="alternatives">list of alternatives</param> /// <param name="user">user (as UserShortModel) who is performing this operation</param> public void UpdateAlternatives(AlternativeModel alternatives, UserShortModel user, int issueId) { Clients.All.updateAlternatives(alternatives, user, issueId); }
/// <summary> /// notifies clients to delete some alternatives /// </summary> /// <param name="alternatives">list of alternative ids</param> /// <param name="user">user (as UserShortModel) who is performing this operation</param> public void DeleteAlternatives(List <int> alternatives, UserShortModel user) { Clients.All.deleteAlternatives(alternatives, user); }
/// <summary> /// notifies clients to delete some criteria /// </summary> /// <param name="criteria">list of criteria ids</param> /// <param name="user">user who is performing this operation</param> public void DeleteCriteria(List <int> criteria, UserShortModel user) { Clients.All.deleteCriteria(criteria, user); }
/// <summary> /// notifie clients to update criteria /// </summary> /// <param name="criteria">list of criteria </param> /// <param name="user">user who is perform</param> public void UpdateCriteria(CriterionModel criteria, UserShortModel user, int issueId) { Clients.All.updateCriteria(criteria, user, issueId); }
/// <summary> /// notification when some criteria weights are updated /// </summary> /// <param name="weights">list of updated criteria weights</param> /// <param name="user">user who is performing this operation</param> public void UpdateCriteriaWeights(List <CriterionWeightModel> weights, UserShortModel user) { Clients.All.updateCriteriaWeights(weights, user); }