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); }
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)); }