Ejemplo n.º 1
0
        public async Task <IActionResult> Conversation(string recipientId)
        {
            var CurrentUser = _userManager.GetUserId(User);

            if (recipientId == CurrentUser)
            {
                return(RedirectToAction(nameof(Index)));
            }
            var recipient = await _userManager.FindByIdAsync(recipientId);

            var messages = _dbContext.Texts.Where(x => (x.RecipientId == recipientId && x.SenderId == CurrentUser) || (x.RecipientId == CurrentUser && x.SenderId == recipientId)).OrderBy(x => x.MessageSent);
            var model    = new UserMessagesViewModel
            {
                User  = recipient,
                Texts = messages.ToList()
            };

            return(View(model));
        }
Ejemplo n.º 2
0
        public ActionResult Messages()
        {
            var received = CurrentUser.UserMessages.Where(x => x.ReceiverId == CurrentUser.Id && !x.IsDeleted);
            var deleted  = CurrentUser.UserMessages.Where(x => x.IsDeleted);
            var sent     = CurrentUser.UserMessages.Where(x => x.SenderId == CurrentUser.Id && !x.IsDeleted);

            ViewBag.Users = _hermesDataContext.Users.Select(x => new SelectListItem
            {
                Text  = x.FirstName + " " + x.LastName,
                Value = x.Id.ToString()
            }).ToList();

            var viewModel = new UserMessagesViewModel()
            {
                Deleted  = deleted,
                Sent     = sent,
                Received = received
            };

            return(View(viewModel));
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Constructor for <see cref="UserMessagesView"/>.
 /// </summary>
 public UserMessagesView(UserMessagesViewModel datacontext)
 {
     InitializeComponent();
     DataContext = datacontext;
 }
Ejemplo n.º 4
0
        public ActionResult Index()
        {
            var userId = GetUserId();

            if (!userId.HasValue)
            {
                return(RedirectToAction("Index", "Home"));
            }

            var userMessages = _messageRepository.GetUserMessages(userId.Value);
            var model        = new UserMessagesViewModel
            {
                WasAssigned  = _userRepository.WasAssigned(),
                WithAssigned = new List <MessageViewModel>(),
                WithGiftor   = new List <MessageViewModel>(),
                WithAdmin    = new List <MessageViewModel>()
            };

            foreach (var message in userMessages.OrderBy(m => m.Timestamp))
            {
                if (message.SenderId == userId)
                {
                    // From user, see in what role:
                    switch (message.SenderRole)
                    {
                    // for user messages, he can be User (with admin), Sender (with assigned) or Recipient (with his santa)
                    case MessageRole.User:
                        model.WithAdmin.Add(GetMessageViewModel(message, userId));
                        break;

                    case MessageRole.GiftSender:
                        model.WithAssigned.Add(GetMessageViewModel(message, userId));
                        break;

                    case MessageRole.GiftRecipient:
                        model.WithGiftor.Add(GetMessageViewModel(message, userId));
                        break;
                    }
                }
                else
                {
                    // from someone else, see in what role:
                    switch (message.SenderRole)
                    {
                    // for incoming messages, he can be Admin (with admin), Sender (with Santa) or Recipient (with assigned)
                    case MessageRole.Administrator:
                        model.WithAdmin.Add(GetMessageViewModel(message, userId));
                        break;

                    case MessageRole.GiftSender:
                        model.WithGiftor.Add(GetMessageViewModel(message, userId));
                        break;

                    case MessageRole.GiftRecipient:
                        model.WithAssigned.Add(GetMessageViewModel(message, userId));
                        break;
                    }
                }
            }

            return(View(model));
        }