public async Task <IActionResult> AddMessageToSession(AuthorizedMessageViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var fromEmail =
                    await Services.AuthorizationServices.VerifyToken(clientFactory, viewModel.JwtFrom);

                if (fromEmail != null)
                {
                    try
                    {
                        var session = await sessionRepository.AddMessageToSessionAsync(
                            viewModel.SessionId, fromEmail,
                            new Message()
                        {
                            MessageSessionId = viewModel.SessionId,
                            Email            = fromEmail,
                            Type             = viewModel.Type,
                            Content          = viewModel.Content,
                        }
                            );

                        return(Ok(JsonConvert.SerializeObject(session)));
                    }
                    catch (EmailNotAssociatedWithMessageSessionException)
                    {
                        return(BadRequest("User cannot add message to session they're not associated with"));
                    }
                }
            }
            return(BadRequest(ModelState));
        }
Beispiel #2
0
        public static async Task <ResponseResult> AddMessageToSession(string jwt, int sessionId, string content)
        {
            using (var request = new HttpRequestMessage(HttpMethod.Post, $"{URI}/AddMessage"))
            {
                var viewModel = new AuthorizedMessageViewModel
                {
                    JwtFrom   = jwt,
                    Content   = content,
                    SessionId = sessionId,
                    Type      = MessageType.Text
                };

                request.Content = new StringContent(JsonConvert.SerializeObject(viewModel), Encoding.UTF8, "application/json");

                var response = await _client.SendAsync(request);

                if (response.IsSuccessStatusCode)
                {
                    return(new ResponseResult(true));
                }

                return(new ResponseResult(false));
            }
        }