/// <summary> /// Saves email addresses of recipients to the database. /// And returns his ids that stored in DB. /// </summary> /// <param name="recipientMails">Email addresses of recipients</param> /// <returns>List recipients with id and mail</returns> private async Task <IEnumerable <Recipient> > SaveRecipients(IEnumerable <string> recipientMails) { var recipients = new List <Recipient>(); bool isNewAdded = false; foreach (string recipientMail in recipientMails) { Recipient recipient = await _recipientRepository.GetByEmail(recipientMail); if (recipient == null) { recipient = _recipientRepository.Add(new Recipient { Email = recipientMail }); isNewAdded = true; } recipients.Add(recipient); } if (isNewAdded) { await _recipientRepository.UnitOfWork.SaveChangesAsync(); } return(recipients); }