Esempio n. 1
0
        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();
        }