public async Task PostEmptyMessageException() { // We create the conversation or the dispose will throw not found var rand = Guid.NewGuid().ToString(); string[] usernames = _conversationId.Split('_'); var addConversationRequestBody = new AddConversationRequestBody { Participants = new List <string> { usernames[0], usernames[1] }, FirstMessage = new Dictionary <string, string> { { "Id", rand }, { "Text", "ae" }, { "SenderUsername", usernames[0] } } }; await _chatServiceClient.AddConversation(addConversationRequestBody); _messagesToCleanup.Add(rand); var id = Guid.NewGuid().ToString(); var addMessageRequestBody = new AddMessageRequestBody { Id = id, SenderUsername = "******", Text = "", }; var exception = await Assert.ThrowsAsync <ChatServiceException>( () => _chatServiceClient.AddMessage(_conversationId, addMessageRequestBody)); Assert.Equal(HttpStatusCode.BadRequest, exception.StatusCode); }
public async Task <Message> AddMessage(string conversationId, AddMessageRequestBody addMessageRequestBody) { using (_logger.BeginScope("{ConversationId}", conversationId)) { var message = new Message { Id = addMessageRequestBody.Id, SenderUsername = addMessageRequestBody.SenderUsername, Text = addMessageRequestBody.Text, UnixTime = DateTimeOffset.Now.ToUnixTimeMilliseconds() }; ThrowBadRequestIfMessageInvalid(message); try { var stopWatch = Stopwatch.StartNew(); await _messageStore.AddMessage(conversationId, message); _telemetryClient.TrackMetric("MessageStore.AddMessage.Time", stopWatch.ElapsedMilliseconds); _telemetryClient.TrackEvent("MessageCreated"); } catch (MessageAlreadyExistsException e) { message = await _messageStore.GetMessage(conversationId, message.Id); return(message); } await _conversationStore.UpdateConversation(message.UnixTime, conversationId); return(message); } }
public async Task AddMessage(string conversationId, AddMessageRequestBody addMessageRequestBody) { string json = JsonConvert.SerializeObject(addMessageRequestBody); HttpResponseMessage response = await _httpClient.PostAsync($"api/conversations/{conversationId}/messages", new StringContent(json, Encoding.UTF8, "application/json")); await EnsureSuccessOrThrow(response); }
private static Message AddMessageBodyToMessage(AddMessageRequestBody addMessageRequestBody) { var message = new Message { Id = addMessageRequestBody.Id, SenderUsername = addMessageRequestBody.SenderUsername, Text = addMessageRequestBody.Text, UnixTime = DateTimeOffset.Now.ToUnixTimeMilliseconds() }; return(message); }
private static AddMessageRequestBody CreateRandomAddMessageBody() { var rand = Guid.NewGuid().ToString(); var addMessageRequestBody = new AddMessageRequestBody { Id = rand, SenderUsername = "******", Text = "Hola" }; return(addMessageRequestBody); }
public async Task <IActionResult> AddMessage(string conversationId, [FromBody] AddMessageRequestBody addMessageRequestBody) { var message = await _messageService.AddMessage(conversationId, addMessageRequestBody); return(StatusCode(201, message)); }