public IActionResult Chat(int?id) { var user = _context.ApplicationUsers .Include(x => x.Chats) .ThenInclude(x => x.Chat) .FirstOrDefault(x => x.UserName == User.Identity.Name); int chatId = 0; if (_context.ChatUsers.FirstOrDefault(x => x.ApplicationUserId == user.Id) == null) { var admin = _context.ApplicationUsers.FirstOrDefault(x => x.UserName.Contains("dana_moisi")).Id; chatId = _chatManager.CreatePrivateRoom(user.Id, admin).Result; } else { chatId = _context.ChatUsers.FirstOrDefault(x => x.ApplicationUserId == user.Id).ChatId; } var chat = new Chat(); if (id == null) { chat = _context.Chats .Include(x => x.Mesaje) .Include(x => x.Users) .ThenInclude(x => x.ApplicationUser) .FirstOrDefault(x => x.ChatId == chatId); } else { chat = _context.Chats .Include(x => x.Mesaje) .Include(x => x.Users) .ThenInclude(x => x.ApplicationUser) .FirstOrDefault(x => x.ChatId == id); } var grupuri = _context.Chats .Include(x => x.Users) .ThenInclude(x => x.ApplicationUser) .Where(x => x.Users.Any(y => y.ApplicationUserId == user.Id) && x.Tip.Equals(TipChat.Grup)) .ToList(); var privat = _context.Chats .Include(x => x.Users) .ThenInclude(x => x.ApplicationUser) .Where(x => x.Users.Any(y => y.ApplicationUserId == user.Id) && x.Tip.Equals(TipChat.Privat)) .ToList(); ChatVM chatVM = new ChatVM { Chat = chat, Private = privat, Grupuri = grupuri }; return(View(chatVM)); }
public async Task <IActionResult> CreatePrivateRoom(string userId) { ApplicationUser user = _userManager.GetUserAsync(User).Result; int chatId = await _chatManager.CreatePrivateRoom(userId, user.Id); if (chatId != 0) { return(RedirectToAction("Chat", new { id = chatId })); } else { return(NotFound()); } }