private async Task <List <ChatResponse> > MapMessages(IList <InstantMessageResponse> messages, Guid conferenceId) { var response = new List <ChatResponse>(); if (!messages.Any()) { return(response); } var conference = await _conferenceCache.GetOrAddConferenceAsync ( conferenceId, () => _videoApiClient.GetConferenceDetailsByIdAsync(conferenceId) ); var username = User.Identity.Name; foreach (var message in messages) { var isUser = _messageDecoder.IsMessageFromUser(message, username); string fromDisplayName; if (isUser) { fromDisplayName = "You"; } else { fromDisplayName = await _messageDecoder.GetMessageOriginatorAsync(conference, message); } var mapped = ChatResponseMapper.MapToResponseModel(message, fromDisplayName, isUser); response.Add(mapped); } return(response); }
public void Should_map_all_properties() { const string senderUsername = "******"; const string recipientUsername = "******"; const string fromDisplayName = "Johnny"; var message = new InstantMessageResponse { From = senderUsername, To = recipientUsername, Message_text = "test message from john", Time_stamp = DateTime.Now.AsUtc() }; var response = ChatResponseMapper.MapToResponseModel(message, fromDisplayName, true); response.From.Should().Be(senderUsername); response.FromDisplayName.Should().Be(fromDisplayName); response.To.Should().Be(message.To); response.Message.Should().Be(message.Message_text); response.Timestamp.Should().Be(message.Time_stamp); response.IsUser.Should().BeTrue(); response.Id.Should().NotBeEmpty(); }