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)); }
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)); }