Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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);
        }