public ViewResult List() { ViewBag.Title = "Ram"; RamListViewModel obj = new RamListViewModel(); obj.allRams = _allRam.rams; obj.currentCategory = "Ram: "; return(View(obj)); }
public ActionResult ramList(List <string> manufacturers, List <string> types, int?page, int ramMin = 0, int ramMax = 0, string manufacturersString = "", string typesString = "") { var ram = context.Ram.ToList(); List <Ram> ramOut = new List <Ram>(); List <Ram> ramFound = new List <Ram>(); int filtred = 0; // MANUFACTURERS if (manufacturers != null) { foreach (var manu in manufacturers) { ramOut = ram.Where(a => a.Manufacturer.Name == manu).ToList(); foreach (var ramout in ramOut) { ramFound.Add(ramout); } } filtred = 1; } else if (manufacturersString != "") { string[] manusT = manufacturersString.Split('_'); List <string> tempManus = new List <string>(); foreach (var manu in manusT) { ramOut = ram.Where(a => a.Manufacturer.Name == manu).ToList(); if (manu != "") { tempManus.Add(manu); } foreach (var ramout in ramOut) { ramFound.Add(ramout); } } manufacturers = tempManus; filtred = 1; } if (filtred == 1) { ram.Clear(); foreach (var add in ramFound) { ram.Add(add); } ramFound.Clear(); filtred = 0; } // RAM TYPE if (ram.Count() > 0) { if (types != null) { foreach (var type in types) { ramOut = ram.Where(a => a.RamType.Name == type).ToList(); foreach (var ramout in ramOut) { ramFound.Add(ramout); } } filtred = 1; } else if (typesString != "") { string[] typesT = typesString.Split('_'); List <string> tempTypes = new List <string>(); foreach (var type in typesT) { ramOut = ram.Where(a => a.RamType.Name == type).ToList(); if (type != "") { tempTypes.Add(type); } foreach (var ramout in ramOut) { ramFound.Add(ramout); } } types = tempTypes; filtred = 1; } } if (filtred == 1) { ram.Clear(); foreach (var add in ramFound) { ram.Add(add); } ramFound.Clear(); filtred = 0; } if (ramMax > 0 || ramMin > 0) { if (ram.Count() > 0) { if (ramMax < 1) { ramMax = 100; } if (ramMin < 1) { ramMin = 0; } ramOut = ram.Where(a => a.Size >= ramMin && a.Size <= ramMax).ToList(); foreach (var ramout in ramOut) { ramFound.Add(ramout); } filtred = 1; } } if (filtred == 1) { ram.Clear(); foreach (var add in ramFound) { ram.Add(add); } ramFound.Clear(); filtred = 0; } if (ram.Count() > 0) { var names = ram.Select(a => a.Name).Distinct().ToList(); foreach (var name in names) { var add = ram.Where(a => a.Name == name).Take(1).ToList(); ramFound.Add(add[0]); } ram = ramFound; } List <string> emptyList = new List <string> { "" }; if (manufacturers == null) { manufacturers = emptyList; } if (types == null) { types = emptyList; } int pageSize = 5; int pageNumber = (page ?? 1); if (ram.Count() > pageSize) { page = 1; } RamListViewModel ramListViewModel = new RamListViewModel() { PagedList = ram.ToPagedList(pageNumber, pageSize), RamFormCheckedViewModel = new RamFormCheckedViewModel() { ManufacturersChecked = manufacturers, TypeChecked = types, AmountMaxChecked = ramMax, AmountMinChecked = ramMin } }; return(View(ramListViewModel)); }