Example #1
0
        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 };
        }
Example #2
0
        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();
        }