public ActionResult Index()
        {
            var disks  = _db.HardDisks.ToList();
            var filter = new HardDiskFilter();

            return(View(new List <object>
            {
                disks,
                filter
            }));
        }
Пример #2
0
        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
            }));
        }