public async Task Should_add_a_message() { var seededConference = await TestDataManager.SeedConference(); _newConferenceId = seededConference.Id; var participants = seededConference.Participants; var from = participants.First(x => x.UserRole == UserRole.Judge).DisplayName; var messageText = Internet.DomainWord(); var to = "VH Officer"; var command = new AddInstantMessageCommand(_newConferenceId, from, messageText, to); await _handler.Handle(command); List <InstantMessage> instantMessages; using (var db = new VideoApiDbContext(VideoBookingsDbContextOptions)) { instantMessages = await db.InstantMessages .Where(x => x.ConferenceId == command.ConferenceId).ToListAsync(); } var message = instantMessages.First(); message.Should().NotBeNull(); message.From.Should().Be(from); message.MessageText.Should().Be(messageText); message.TimeStamp.Should().BeBefore(DateTime.UtcNow); message.ConferenceId.Should().Be(command.ConferenceId); message.To.Should().Be(to); }
public async Task <IActionResult> AddInstantMessageToConferenceAsync(Guid conferenceId, AddInstantMessageRequest request) { _logger.LogDebug("Saving instant message"); try { var command = new AddInstantMessageCommand(conferenceId, request.From, request.MessageText, request.To); await _commandHandler.Handle(command); return(Ok("InstantMessage saved")); } catch (Exception e) { _logger.LogError(e, "Unable to add instant messages"); return(BadRequest()); } }