public async Task SendMessege(MessegeWriteResource model) { var chatRepository = await unitOfWork.GetRepository <ChatRepository, Chat, Guid>(); var messegeRepository = await unitOfWork.GetRepository <MessegeRepository, Messege, Guid>(); var userRepository = await unitOfWork.GetRepository <UserRepository, User, Guid>(); Chat chat = await chatRepository.GetChatFor(model.SenderId, model.ReciverId); if (chat == null) { chat = await chatRepository.CreateChatFor(model.SenderId, model.ReciverId); } var messege = mapper.Map <Messege>(model); messege.Id = Guid.NewGuid(); messege.ReciverId = model.ReciverId; messege.SenderId = model.SenderId; messege.ChatId = chat.Id; messege.CreationDateTime = DateTime.Now; await messegeRepository.SendMessege(messege); await unitOfWork.Commit(); }
public async Task <IActionResult> SendMessege([FromBody] MessegeWriteResource model) { if (!ModelState.IsValid) { return(BadRequest()); } await _chatService.SendMessege(model); await chatHub.Clients.Client((await _userService.ReadUser(model.ReciverId)).PhoneNumber)?.SendAsync("MessageRecive", model.Context); return(Ok()); }