private static ConversionResult ConvertRowsToContacts(IEnumerable<DataRow> rawRows, IEnumerable<FieldMap> fieldMaps, Category category, Flag flag) { int successCount = 0, failureCount = 0, duplicateCount = 0; var contacts = new List<AllClientsContact>(); foreach (var rawRow in rawRows) { var contact = new AllClientsContact(); contact.FirstName = GetFieldMapValue(rawRow, fieldMaps, "FirstName"); contact.LastName = GetFieldMapValue(rawRow, fieldMaps, "LastName"); contact.City = GetFieldMapValue(rawRow, fieldMaps, "City"); contact.State = GetFieldMapValue(rawRow, fieldMaps, "State"); contact.Zip = GetFieldMapValue(rawRow, fieldMaps, "Zip"); contact.Email = GetFieldMapValue(rawRow, fieldMaps, "Email"); contact.Company = GetFieldMapValue(rawRow, fieldMaps, "Company"); contact.Phone = GetFieldMapValue(rawRow, fieldMaps, "Phone"); contact.Categories.Add(category); contact.Custom = new List<CustomElement>(); var birthDate = new CustomElement { Name = "Birthday", Value = GetFieldMapValue(rawRow, fieldMaps, "Birthday") }; contact.Custom.Add(birthDate); contact.Flags.Add(flag); if (!contact.IsValid()) { failureCount++; continue; } if (contacts.Where(x => x.Email == contact.Email).Count() != 0) { duplicateCount++; continue; } successCount++; contacts.Add(contact); } return new ConversionResult { SuccessCount = successCount, FailureCount = failureCount, DuplicateCount = duplicateCount, Contacts = contacts }; }
public ActionResult SingleContactImport(AllClientsContact contact) { ViewBag.Categories = _xmlRepository.GetAllCategories(); //ViewBag.Flags = _xmlRepository.GetAllFlags(); if (!String.IsNullOrEmpty(Request.Form["Birthday"].ToString())) { var bday = DateTime.Now; if (!DateTime.TryParse(Request.Form["Birthday"].ToString(), out bday)) { ViewData.Add("SingleImportError", "Please ensure Birthday is in the format MM/DD/YYYY"); return View(); } else { contact.Custom = new List<CustomElement> { new CustomElement { Name = "Birthday", Value = bday.ToShortDateString() } }; } } var category = Request.Form["Category"].Split(',')[1]; if (!contact.IsValid() || category == "") { ViewData.Add("SingleImportError", "Please ensure the category, first name, last name, and email are filled out."); } else { ViewData.Add("ImportResult", 1); var webFormType = (Enumerations.WebformType)Enum.Parse(typeof(Enumerations.WebformType),category); var importer = new ImportService(); var result = importer.ImportSingleContact(Account.ClientId, contact, webFormType); if (result) ViewData["ImportResult"] = 0; } return View(); }