Пример #1
0
        public async Task AddEmailsFromEmailAccountToEmailMessagesAsync(string email, string password, string imapHost, int imapPort, DateTime serchAfterDeliveredDate)
        {
            var emailAccount = await _emailAccountRepository.GetByEmailAsync(email);

            var deliveredEmails = await _emailClientFactory.GetInboxEmailsAsync(imapHost, imapPort, email, password, serchAfterDeliveredDate);

            var afterGivenDateEmails = deliveredEmails.Where(x => x.Date.LocalDateTime > serchAfterDeliveredDate);

            if (afterGivenDateEmails.Count() > 0)
            {
                ICollection <EmailMessage> deliveredMessages = new List <EmailMessage> ();
                foreach (var item in afterGivenDateEmails)
                {
                    EmailMessage emailMessage;
                    if (item.Attachments != null && item.Attachments.Count() > 0)
                    {
                        emailMessage = new EmailMessage(item.From.ToString(), item.To.ToString(),
                                                        item.Date, item.Subject, item.HtmlBody, true);
                        ICollection <Atachment> atachments = GetAttachmentsFromMmimeMessage(item);
                        emailMessage.AddAtachments(atachments);
                    }
                    else
                    {
                        emailMessage = new EmailMessage(item.From.ToString(), item.To.ToString(),
                                                        item.Date, item.Subject, item.HtmlBody, false);
                    }
                    emailMessage.AddEmailAccount(emailAccount);
                    deliveredMessages.Add(emailMessage);
                }
                await _emailMessageRepository.AddRangeAsync(deliveredMessages);
            }
        }
Пример #2
0
 public async Task <bool> EmailAccountExistByEmailAsync(string email) =>
 await _emailAccountRepository.GetByEmailAsync(email, true) != null;
Пример #3
0
        public async Task <EmailAccountDTO> GetAsyncByEmail(string email)
        {
            var emailAccount = await _emailAccountRepository.GetByEmailAsync(email);

            return(_mapper.Map <EmailAccountDTO> (emailAccount));
        }