public ActionResult Index() { var disks = _db.HardDisks.ToList(); var filter = new HardDiskFilter(); return(View(new List <object> { disks, filter })); }
public IQueryable <HardDisk> GetHardDisks(HardDiskFilter selector) { var hd = _db.HardDisks.Where(h => (!selector.AccessTimeMin.HasValue || selector.AccessTimeMin.Value <= h.AccessTime) && (!selector.AccessTimeMax.HasValue || selector.AccessTimeMax.Value <= h.AccessTime) && (!selector.Autonomous.HasValue || selector.Autonomous.Value == h.Autonomous) && (!selector.AutonomousTimeMax.HasValue || selector.AutonomousTimeMax.Value >= h.AutonomousTime) && (!selector.AutonomousTimeMin.HasValue || selector.AutonomousTimeMin.Value <= h.AutonomousTime) && (!selector.BufferSizeMax.HasValue || selector.BufferSizeMax.Value >= h.BufferSize) && (!selector.BufferSizeMin.HasValue || selector.BufferSizeMin.Value <= h.BufferSize) && (!selector.CostMax.HasValue || selector.CostMax.Value >= h.Cost) && (!selector.CostMax.HasValue || selector.CostMax.Value >= h.Cost) && (!selector.FlashSizeMax.HasValue || selector.FlashSizeMax.Value >= h.FlashSize.Value) && (!selector.FlashSizeMin.HasValue || selector.FlashSizeMin.Value <= h.FlashSize.Value) && (!selector.HasSCSI.HasValue || selector.HasSCSI.Value == h.HasSCSI.Value) && (!selector.IsM2.HasValue || selector.IsM2.Value == h.IsM2) && (!selector.ReadSpeedMax.HasValue || selector.ReadSpeedMax.Value >= h.ReadSpeed.Value) && (!selector.ReadSpeedMin.HasValue || selector.ReadSpeedMin.Value <= h.ReadSpeed.Value) && (!selector.RotationSpeedMin.HasValue || selector.RotationSpeedMin.Value <= h.RotationSpeed.Value) && (!selector.RotationSpeedMax.HasValue || selector.RotationSpeedMax.Value >= h.RotationSpeed.Value) && (!selector.SizeMax.HasValue || selector.SizeMax.Value >= h.Size) && (!selector.SizeMin.HasValue || selector.SizeMin.Value <= h.Size) && (!selector.WorkTimeMax.HasValue || selector.WorkTimeMax.Value >= h.WorkTime.Value) && (!selector.WorkTimeMin.HasValue || selector.WorkTimeMin.Value <= h.WorkTime.Value) && (!selector.WriteSpeedMax.HasValue || selector.WriteSpeedMax.Value >= h.WriteSpeed.Value) && (!selector.WriteSpeedMin.HasValue || selector.WriteSpeedMin.Value <= h.WriteSpeed.Value) && (selector.Colors == null || selector.Colors.Count == 0 || selector.Colors.Contains(h.Color)) && (selector.FormFactors == null || selector.FormFactors.Count == 0 || selector.FormFactors.Contains(h.FormFactor)) && (selector.Manufacturers == null || selector.Manufacturers.Count == 0 || selector.Manufacturers.Contains(h.Manufacturer)) && (selector.Purposes == null || selector.Purposes.Count == 0 || selector.Purposes.Contains(h.Purpose.Value)) && (selector.Satas == null || selector.Satas.Count == 0 || selector.Satas.Contains(h.Sata.Value)) && (selector.Types == null || selector.Types.Count == 0 || selector.Types.Contains(h.Type)) && (selector.UsbTypes == null || selector.UsbTypes.Count == 0 || selector.UsbTypes.Contains(h.Usb.Value)) ); if (selector.PageSize.HasValue) { if (selector.Page.HasValue) { hd = hd.Skip(selector.Page.Value * selector.PageSize.Value); } hd = hd.Take(selector.PageSize.Value); } return(hd); }
public ActionResult Index([Bind(Include = "CostMin,CostMax,AccessTimeMin,AccessTimeMax,Autonomous,AutonomousTimeMin,AutonomousTimeMax,BufferSizeMin,BufferSizeMax,FlashSizeMin,FlashSizeMax,HasSCSI,IsM2,ReadSpeedMin,ReadSpeedMax,RotationSpeedMin,RotationSpeedMax,SizeMin,SizeMax,WorkTimeMin,WorkTimeMax,WriteSpeedMin,WriteSpeedMax,Page,PageSize")] HardDiskFilter hardDiskFilter) { var disks = _db.HardDisks.Where(h => ( !hardDiskFilter.AccessTimeMin.HasValue || h.AccessTime.HasValue == false || hardDiskFilter.AccessTimeMin.Value <= h.AccessTime.Value ) && ( !hardDiskFilter.AccessTimeMax.HasValue || h.AccessTime.HasValue == false || hardDiskFilter.AccessTimeMax.Value <= h.AccessTime.Value ) && ( !hardDiskFilter.Autonomous.HasValue || h.Autonomous.HasValue == false || hardDiskFilter.Autonomous.Value == h.Autonomous.Value ) && ( !hardDiskFilter.AutonomousTimeMax.HasValue || h.Autonomous.HasValue == false || hardDiskFilter.AutonomousTimeMax.Value >= h.AutonomousTime.Value ) && ( !hardDiskFilter.AutonomousTimeMin.HasValue || h.AutonomousTime.HasValue == false || hardDiskFilter.AutonomousTimeMin.Value <= h.AutonomousTime.Value ) && ( !hardDiskFilter.BufferSizeMax.HasValue || h.BufferSize.HasValue == false || hardDiskFilter.BufferSizeMax.Value >= h.BufferSize.Value ) && ( !hardDiskFilter.BufferSizeMin.HasValue || h.BufferSize.HasValue == false || hardDiskFilter.BufferSizeMin.Value <= h.BufferSize.Value ) && ( !hardDiskFilter.CostMax.HasValue || h.Cost.HasValue == false || hardDiskFilter.CostMax.Value >= h.Cost.Value ) && ( !hardDiskFilter.CostMin.HasValue || h.Cost.HasValue == false || hardDiskFilter.CostMin.Value <= h.Cost.Value ) && ( !hardDiskFilter.FlashSizeMax.HasValue || h.FlashSize.HasValue == false || hardDiskFilter.FlashSizeMax.Value >= h.FlashSize.Value ) && ( !hardDiskFilter.FlashSizeMin.HasValue || h.FlashSize.HasValue == false || hardDiskFilter.FlashSizeMin.Value <= h.FlashSize.Value ) && ( !hardDiskFilter.HasSCSI.HasValue || h.HasSCSI.HasValue == false || hardDiskFilter.HasSCSI.Value == h.HasSCSI.Value ) && ( !hardDiskFilter.IsM2.HasValue || h.IsM2.HasValue == false || hardDiskFilter.IsM2.Value == h.IsM2.Value ) && ( !hardDiskFilter.ReadSpeedMax.HasValue || h.ReadSpeed.HasValue == false || hardDiskFilter.ReadSpeedMax.Value >= h.ReadSpeed.Value ) && ( !hardDiskFilter.ReadSpeedMin.HasValue || h.ReadSpeed.HasValue == false || hardDiskFilter.ReadSpeedMin.Value <= h.ReadSpeed.Value ) && ( !hardDiskFilter.RotationSpeedMin.HasValue || h.RotationSpeed.HasValue == false || hardDiskFilter.RotationSpeedMin.Value <= h.RotationSpeed.Value ) && ( !hardDiskFilter.RotationSpeedMax.HasValue || h.RotationSpeed.HasValue == false || hardDiskFilter.RotationSpeedMax.Value >= h.RotationSpeed.Value ) && ( !hardDiskFilter.SizeMax.HasValue || h.Size.HasValue == false || hardDiskFilter.SizeMax.Value >= h.Size.Value ) && ( !hardDiskFilter.SizeMin.HasValue || h.Size.HasValue == false || hardDiskFilter.SizeMin.Value <= h.Size.Value ) && ( !hardDiskFilter.WorkTimeMax.HasValue || h.WorkTime.HasValue == false || hardDiskFilter.WorkTimeMax.Value >= h.WorkTime.Value ) && ( !hardDiskFilter.WorkTimeMin.HasValue || h.WorkTime.HasValue == false || hardDiskFilter.WorkTimeMin.Value <= h.WorkTime.Value ) && ( !hardDiskFilter.WriteSpeedMax.HasValue || h.WriteSpeed.HasValue == false || hardDiskFilter.WriteSpeedMax.Value >= h.WriteSpeed.Value ) && ( !hardDiskFilter.WriteSpeedMin.HasValue || h.WriteSpeed.HasValue == false || hardDiskFilter.WriteSpeedMin.Value <= h.WriteSpeed.Value ) ); var dt = new List <HardDisk>(); foreach (var h in disks) { if ( ( hardDiskFilter.Colors == null || hardDiskFilter.Colors.Count == 0 || hardDiskFilter.Colors.Contains(h.Color) ) && ( hardDiskFilter.FormFactors == null || hardDiskFilter.FormFactors.Count == 0 || h.FormFactor.HasValue == false || hardDiskFilter.FormFactors.Contains(h.FormFactor.Value) ) && ( hardDiskFilter.Manufacturers == null || hardDiskFilter.Manufacturers.Count == 0 || hardDiskFilter.Manufacturers.Contains(h.Manufacturer) ) && ( hardDiskFilter.Purposes == null || hardDiskFilter.Purposes.Count == 0 || h.Purpose.HasValue == false || hardDiskFilter.Purposes.Contains(h.Purpose.Value) ) && ( hardDiskFilter.Satas == null || hardDiskFilter.Satas.Count == 0 || h.Sata.HasValue == false || hardDiskFilter.Satas.Contains(h.Sata.Value) ) && ( hardDiskFilter.Types == null || hardDiskFilter.Types.Count == 0 || h.Type.HasValue == false || hardDiskFilter.Types.Contains(h.Type.Value) ) && ( hardDiskFilter.UsbTypes == null || hardDiskFilter.UsbTypes.Count == 0 || h.Usb.HasValue == false || hardDiskFilter.UsbTypes.Contains(h.Usb.Value) ) ) { dt.Add(h); } } var dk = dt.Where(h => h != null); if (hardDiskFilter.PageSize.HasValue) { if (hardDiskFilter.Page.HasValue) { dk = dk.Skip(hardDiskFilter.Page.Value * hardDiskFilter.PageSize.Value); } dk = dk.Take(hardDiskFilter.PageSize.Value); } var d = dk.ToList(); return(View(new List <object> { d, hardDiskFilter })); }