private static void FillFromDataTable(DataTable table, EmailAddresses emailAddresses) { foreach (DataRow row in table.Rows) { EmailAddress emailAddress = new EmailAddress(row); emailAddresses.Add(emailAddress); } }
/// <summary> /// Imports email addresses into a Recipient List /// </summary> /// <param name="emailArray">The email addresses to import.</param> /// <param name="invalidEmailAddresses">A list of all available email addresses that could not be parsed as a valid address</param> /// <returns>The number of email addresses imported as new work items. Duplicates are not part of this number.</returns> public int ImportEmailAddresses(string[] emailArray, out List <string> invalidEmailAddresses, out List <string> duplicateAddresses) { EmailAddresses importedItems = new EmailAddresses(); invalidEmailAddresses = new List <string>(); duplicateAddresses = new List <string>(); int numberOfNewItems = 0; foreach (string emailAddress in emailArray) { // TODO: This can be optimized by checking the // existance of these email addresses in batches // Clean address (this is done on save, so we need to make sure it's correct) string emailAddressCleaned = NewsLetterUtil.CleanEmailAddress(emailAddress); // Validate email address if (EmailSyntaxValidator.Validate(emailAddressCleaned) == false) { // Invalid email address, skip it. invalidEmailAddresses.Add(emailAddressCleaned); } else { // Check if already imported. This is the quickest duplicate check EmailAddress emailItem = importedItems.Find(emailAddressCleaned); if (emailItem == null) { // Handle duplicates - try to load it first emailItem = EmailAddress.Load(Id, emailAddressCleaned); if (emailItem == null) { // Create it, and save it. It is automatically // added to the WorkItems collection emailItem = this.CreateEmailAddress(emailAddressCleaned); // Save emailItem.Save(); numberOfNewItems++; } else { // Duplicate duplicateAddresses.Add(emailAddressCleaned); } // Add to imported collection, for quick // in memory duplicate check importedItems.Add(emailItem); } } } ClearEmailAddressCount(); return(numberOfNewItems); }
internal static void FillFromDataTable(DataTable table, EmailAddresses items) { foreach (DataRow row in table.Rows) { //RecipientList recipientList = new RecipientList(row); //recList.CreateEmailAddress(row["EmailAddress"].ToString()); EmailAddress email = new EmailAddress(row); items.Add(email); } }
/// <summary> /// Imports email addresses into a Recipient List /// </summary> /// <param name="emailArray">The email addresses to import.</param> /// <param name="invalidEmailAddresses">A list of all available email addresses that could not be parsed as a valid address</param> /// <returns>The number of email addresses imported as new work items. Duplicates are not part of this number.</returns> public int ImportEmailAddresses(string[] emailArray, out List<string> invalidEmailAddresses, out List<string> duplicateAddresses) { EmailAddresses importedItems = new EmailAddresses(); invalidEmailAddresses = new List<string>(); duplicateAddresses = new List<string>(); int numberOfNewItems = 0; foreach (string emailAddress in emailArray) { // TODO: This can be optimized by checking the // existance of these email addresses in batches // Clean address (this is done on save, so we need to make sure it's correct) string emailAddressCleaned = NewsLetterUtil.CleanEmailAddress(emailAddress); // Validate email address if (EmailSyntaxValidator.Validate(emailAddressCleaned) == false) { // Invalid email address, skip it. invalidEmailAddresses.Add(emailAddressCleaned); } else { // Check if already imported. This is the quickest duplicate check EmailAddress emailItem = importedItems.Find(emailAddressCleaned); if (emailItem == null) { // Handle duplicates - try to load it first emailItem = EmailAddress.Load(Id, emailAddressCleaned); if (emailItem == null) { // Create it, and save it. It is automatically // added to the WorkItems collection emailItem = this.CreateEmailAddress(emailAddressCleaned); // Save emailItem.Save(); numberOfNewItems++; } else { // Duplicate duplicateAddresses.Add(emailAddressCleaned); } // Add to imported collection, for quick // in memory duplicate check importedItems.Add(emailItem); } } } ClearEmailAddressCount(); return numberOfNewItems; }