public async Task <IActionResult> DirectMessage(string roomId, string friendId) { var userID = HttpContext.GetUserID(); DirectMessageRoom room; if (roomId == null) { room = await _directMessageRoomService.GetDirectMessageRoomWithFriend(userID, friendId); if (room == null) { room = new DirectMessageRoom(userID, friendId); await _directMessageRoomService.CreateDirectMessageRoom(room); } } else { room = await _directMessageRoomService.GetDirectMessageRoom(roomId); if (!_directMessageRoomService.HasUserAccess(room.ID, userID)) { return(RedirectToAction("Index")); } } var roomVM = _mapper.Map <DirectMessageRoom, DirectMessageRoomViewModel>(room, opt => opt.AfterMap((src, dest) => dest.Recipent = _mapper.Map <UserViewModel>(_usersService.GetUser(src.Users.FirstOrDefault(u => u != userID)).Result))); return(View(roomVM)); }
public async Task CreateDirectMessageRoom(DirectMessageRoom directMessageRoom) { await _mongoDbContext.DirectMessagesRooms.InsertOneAsync(directMessageRoom); }