Esempio n. 1
0
        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"));
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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>());
                }
            }
        }
Esempio n. 4
0
        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)));
        }
Esempio n. 5
0
        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)));
        }
Esempio n. 6
0
 public static ContentModel ToContentModel(this ServiceContent content, UserShortModel user, BookShortModel book)
 {
     return(new ContentModel
     {
         Book = book,
         ID = content.ID,
         Text = content.Text,
         User = user
     });
 }
Esempio n. 7
0
 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
     });
 }
Esempio n. 8
0
        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>());
                }
            }
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
 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,
     });
 }
Esempio n. 11
0
        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);
        }
Esempio n. 12
0
        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));
        }
Esempio n. 13
0
        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));
        }
Esempio n. 14
0
 /// <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);
 }
Esempio n. 15
0
 /// <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);
 }
Esempio n. 16
0
 /// <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);
 }
Esempio n. 17
0
 /// <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);
 }
Esempio n. 18
0
 /// <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);
 }
Esempio n. 19
0
 /// <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);
 }