Example #1
0
        public async Task <IActionResult> DialogList()
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                throw new ApplicationException($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
            }
            var model = new List <MessagesListVievModel>();

            var chatUsers = _messageManager.GetMessageOwnersList();

            foreach (var chatOwner in chatUsers)
            {
                var messages = _messageManager.GetMessagesByUserId(chatOwner);

                var chatUser = await _userManager.FindByIdAsync(chatOwner);

                var message = new MessagesListVievModel
                {
                    Messages    = messages,
                    CurrentUser = user,
                    ChatOwner   = chatUser
                };

                model.Add(message);
            }

            model = model.OrderByDescending(c => c.Messages.Last().Date).ToList();

            return(View(model));
        }
Example #2
0
        public async Task <IActionResult> Index(string id)
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                throw new ApplicationException($"Unable to load user with ID '{_userManager.GetUserId(User)}'.");
            }

            var messages = _messageManager.GetMessagesByUserId(id);

            ApplicationUser chatOwner;

            if (await _userManager.IsInRoleAsync(user, "Administrator"))
            {
                chatOwner = await _userManager.FindByIdAsync(id);
            }
            else
            {
                chatOwner = user;
            }

            var model = new MessagesListVievModel
            {
                Messages    = messages,
                CurrentUser = user,
                ChatOwner   = chatOwner
            };

            return(View(model));
        }