// TODO: Return result public async Task InitializeAsync() { /// Получение списка ВХОДЯЩИХ сообщений из Gmail API List <GmailData.Message> inboxMessages = await _apiService.GetMessagesAsync(new string[] { "INBOX" }); if (inboxMessages?.Count > 0) { foreach (GmailData.Message message in inboxMessages) { /// Если сообщения нет в базе if (!(await _database.Messages.AnyAsync(m => m.MessageID == message.Id))) { /// Конвертируем сообщение из АПИ в подходящий тип MessageDTO messageDTO = _messageHelper.ConvertToCorrectType(await _apiService.GetMessageByIDAsync(message.Id)); if (messageDTO != null) { /// Сохраняем в базу await _database.Messages.CreateAsync(GetMessageDTOToMessageMapper().Map <MessageDTO, DALEntities.Message>(messageDTO)); /// Парсим тело сообщения в подходящий тип ParticipantMessageDTO participantMessageDTO = _messageParser.ParseToParticipant(messageDTO.Body); if (participantMessageDTO != null) { /// Получаем идентификатор сохраненного ранее сообщения participantMessageDTO.MessageID = (await _database.Messages.FindAsync(m => m.MessageID == messageDTO.MessageID)).ID; /// Сохраняем распарсенное тело в базу await _database.ParticipantMessages.CreateAsync(GetParticipantMessageDTOToParticipantMessageMapper().Map <ParticipantMessageDTO, DALEntities.ParticipantMessage>(participantMessageDTO)); } } } } } }
public ParticipantMessageDTO ParseToParticipant(string body) { ParticipantMessageDTO participant = new ParticipantMessageDTO(); participant.CreateDate = DateTime.Now; participant.FirstName = "Максим"; return(participant); }