示例#1
0
        public ViewResult List()
        {
            ViewBag.Title = "Ram";
            RamListViewModel obj = new RamListViewModel();

            obj.allRams         = _allRam.rams;
            obj.currentCategory = "Ram: ";

            return(View(obj));
        }
示例#2
0
        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));
        }