public async Task <List <ChatViewModel> > GetMessages(ChatGetMessageRequest request) { var checkSender = await _context.Users.FirstAsync(x => x.Id == request.senderId); var checkRoleSender = await _userManager.GetRolesAsync(checkSender); var chat = new Chat(); var data = _context.chats.AsQueryable(); if (checkRoleSender[0] == "User") { data = data.Where(x => (x.senderId == request.senderId && x.receiverId == adminId) || (x.senderId == adminId && x.receiverId == request.senderId)); } if (checkRoleSender[0] == "Admin") { if (request.receiverId.HasValue) { data = data.Where(x => (x.senderId == request.senderId && x.receiverId == request.receiverId.Value) || (x.senderId == request.receiverId.Value && x.receiverId == request.senderId)); } else { return(new List <ChatViewModel>()); } } return(await data.Select(y => new ChatViewModel { id = y.id, content = y.content, createDate = y.createDate, senderId = y.senderId, sender = y.sender, receiverId = y.receiverId, receiver = y.receiver, }).ToListAsync()); }
public async Task <IActionResult> GetMessages(ChatGetMessageRequest request) { var data = await _chatService.GetMessages(request); return(Ok(data)); }