public ActionResult <IResponse <object> > GetChat(Guid id) { var gameInstanceMessages = GameInstanceUserMessageLogic.GetViewResults(id); if (gameInstanceMessages == null) { return(NotFound(gameInstanceMessages)); } var response = new Response <ICollection <GameInstanceUserMessageDto> >(); response.Data = GameInstanceMapper.Map(gameInstanceMessages); return(Ok(response)); }
public async Task SendMessage(ChatMessageDto dto) { var validationResults = GameInstanceValidator.Validate(dto); if (!validationResults.IsValid) { throw new Exception(string.Join(',', validationResults.Errors)); } var messageToSave = new GameInstanceUserMessage(); messageToSave.Text = dto.Text; messageToSave.UserId = RequestContext.UserId; messageToSave.GameInstanceId = dto.Id; var entity = GameInstanceUserMessageLogic.Save(messageToSave); var responseDto = GameInstanceMapper.Map(entity); responseDto.UserEmail = RequestContext.Email; await Clients.Group(dto.Id.ToString()).SendAsync("ReceiveMessage", responseDto); }