Example #1
0
        public static ChatWithMessagesDTO MapToChatWithMessagesDTO(this Chat chat)
        {
            var chatWithMessagesDTO = new ChatWithMessagesDTO()
            {
                Id                         = chat.Id,
                UserScreenName             = chat.UserScreenName,
                CreatedDateTime            = chat.CreatedDateTime,
                LastMessageCreatedDateTime = chat.LastMessageCreatedDateTime ?? DateTime.MinValue,
            };

            foreach (var message in chat.Messages)
            {
                chatWithMessagesDTO.Messages.Add(message.MapToChatMessageDTO());
            }

            return(chatWithMessagesDTO);
        }
Example #2
0
        public IHttpActionResult GetChatWithMessages(Guid id, DateTime?from = null)
        {
            var chatWithMessagesDTO = new ChatWithMessagesDTO();

            try
            {
                var chat = ChatService.GetChat(id, from);

                // Map Chat to DTO.
                chatWithMessagesDTO = chat.MapToChatWithMessagesDTO();
            }
            catch (ChatNotFoundException e)
            {
                return(Content(HttpStatusCode.NotFound, $"{e.Message}"));
            }
            catch (Exception e)
            {
                Logger.Error(e, $"{nameof(GetChatWithMessages)} threw an exception: {e.Message}");

                return(InternalServerError());
            }

            return(Ok(chatWithMessagesDTO));
        }