// Constructors public VolatileList(RetrieveList listRetrieval, InstantiateItem itemInstantiation) : base() { this.retrieveList = listRetrieval; this.instantiateItem = itemInstantiation; this.isValid = false; }
public ActionResult GenerateList(string listName, int?employeesMin, int?employeesMax, int?revenueMin, int?revenueMax, int[] countries, int[] industries, int[] jobLevels, int[] jobAreas) { if (employeesMin == null) { employeesMin = 0; } if (employeesMax == null) { employeesMax = 0; } if (revenueMin == null) { revenueMin = 0; } if (revenueMax == null) { revenueMax = 0; } var ifListNameExist = dbNew.RetrieveLists.FirstOrDefault(l => l.Name == listName); if (ifListNameExist != null) { listName = "Copy of " + listName; } var list = new RetrieveList(); list.Name = listName; List <Contact> contacts; if (countries != null) { contacts = dbNew.Contacts.Include(c => c.Company).Include(c => c.Country).Include(c => c.Company.Industries).Include(c => c.Title.JobLevel) .Where(c => countries.Contains(c.Country.Id)).ToList(); } else { contacts = dbNew.Contacts.Include(c => c.Company).Include(c => c.Country).Include(c => c.Company.Industries).Include(c => c.Title.JobLevel).ToList(); } List <Contact> filterContacts = new List <Contact>(); string contactsIds = ""; foreach (var cont in contacts) { if (cont.Company.IfMinMaxFitsCriteria(employeesMin, employeesMax) && cont.Company.IfMinMaxFitsCriteria(revenueMin, revenueMax) && (jobLevels == null || (cont.Title.JobLevel != null && jobLevels.Contains(cont.Title.JobLevel.Id))) && (jobAreas == null || (cont.Title.JobAreas.Any(ja => jobAreas.Contains(ja.Id)))) && (industries == null || (cont.Company.Industries.Any(ind => industries.Contains(ind.Id))))) { filterContacts.Add(cont); contactsIds += (cont.Id.ToString() + ","); } } if (contactsIds.Length > 0) { contactsIds = contactsIds.Remove(contactsIds.Length - 1); } list.ContactsIds = contactsIds; dbNew.RetrieveLists.Add(list); dbNew.SaveChanges(); ViewBag.listId = list.Id; return(View("RetrieveList", filterContacts)); }