Example #1
0
        // 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));
                            }
                        }
                    }
                }
            }
        }
Example #2
0
        public ParticipantMessageDTO ParseToParticipant(string body)
        {
            ParticipantMessageDTO participant = new ParticipantMessageDTO();

            participant.CreateDate = DateTime.Now;
            participant.FirstName  = "Максим";

            return(participant);
        }