示例#1
0
        public ActionResult Add(MonitorVm bind)
        {
            if (ModelState.IsValid)
            {
                var monitorId = service.AddMonitorToDb(bind);

                BackgroundJob.Enqueue(() => index.AddItem(monitorId));

                return(RedirectToAction("Index"));
            }

            bind.ViewData = service.GetMonitorViewData();

            return(View(bind));
        }
示例#2
0
        public ActionResult Edit(MonitorVm bind)
        {
            if (ModelState.IsValid)
            {
                var monitorId = service.EditMonitor(bind);

                BackgroundJob.Enqueue(() => index.EditItem(monitorId));

                return(RedirectToAction("Index"));
            }
            var picturesVm = service.GetMonitorPicturesAndThumbnail(bind.Id);

            bind.Thumbnail       = picturesVm.Thumbnail;
            bind.MonitorPictures = picturesVm.MonitorPictures;
            bind.ViewData        = service.GetMonitorViewData();

            return(View(bind));
        }
        public int AddMonitorToDb(MonitorVm bind)
        {
            var speakers         = Mapper.Map <SpeakersVm, Speakers>(bind.Speakers);
            var camera           = Mapper.Map <CameraVm, Camera>(bind.Camera);
            var monitor          = Mapper.Map <MonitorVm, Monitor>(bind);
            var placeholderImage = @"/placeholder.jpg";

            foreach (var port in bind.VideoPorts)
            {
                var type = VideoPortEnum.VGA;
                Enum.TryParse(port.Type, out type);
                var videoPort = new VideoPort()
                {
                    Type = type,
                    Num  = port.Num,
                };
                monitor.VideoPorts.Add(videoPort);
            }

            foreach (var usbPort in bind.USBPorts)
            {
                var type = USBPortEnum.usb_2_0;
                Enum.TryParse(usbPort.Type, out type);
                var USBPort = new USBPort()
                {
                    Type = type,
                    Num  = usbPort.Num,
                };
                monitor.USBPorts.Add(USBPort);
            }

            foreach (var entry in bind.PanelColors)
            {
                monitor.PanelColors.Add(new PanelColor()
                {
                    Value = entry
                });
            }

            foreach (var entry in bind.CertificatesStandartsLicenses)
            {
                monitor.CertificatesStandartsLicenses.Add(new CertificateStandartLicense()
                {
                    Value = entry
                });
            }

            foreach (var entry in bind.Features)
            {
                monitor.Features.Add(new Feature()
                {
                    Value = entry
                });
            }

            foreach (var entry in bind.UnhandledDisplaySpecificationProperties)
            {
                monitor.UnhandledDisplaySpecificationProperties.Add(new UnhandledDIsplaySpecificationProperty()
                {
                    Value = entry
                });
            }

            monitor.Speakers  = speakers;
            monitor.Camera    = camera;
            monitor.Brand     = context.Brands.FirstOrDefault(x => x.Id == bind.BrandId);
            monitor.Thumbnail = placeholderImage;
            context.Monitors.Add(monitor);
            context.SaveChanges();

            return(monitor.Id);
        }
        public int EditMonitor(MonitorVm bind)
        {
            var monitor = context.Monitors.Find(bind.Id);

            if (monitor.Brand.Id != bind.BrandId)
            {
                monitor.Brand = context.Brands.FirstOrDefault(x => x.Id == bind.BrandId);
            }

            monitor = Mapper.Map <MonitorVm, Monitor>(bind, monitor);

            var obsoleteVideoPorts  = context.VideoPorts.Where(x => x.MonitorId == bind.Id).ToList();
            var obsoleteUSBPorts    = context.USBPorts.Where(x => x.MonitorId == bind.Id).ToList();
            var obsoletePanelColors = context.PanelColors.Where(x => x.MonitorId == bind.Id).ToList();
            var obsoleteFeatures    = context.Features.Where(x => x.MonitorId == bind.Id).ToList();
            var obsoleteCsls        = context.CertificatesStandartsLicenses.Where(x => x.MonitorId == bind.Id).ToList();
            var obsoleteUnhandled   = context.UnhandledDisplaySpecificationProperties.Where(x => x.MonitorId == bind.Id).ToList();

            foreach (var port in obsoleteVideoPorts)
            {
                context.VideoPorts.Remove(port);
            }
            foreach (var usbPort in obsoleteUSBPorts)
            {
                context.USBPorts.Remove(usbPort);
            }
            foreach (var panelColor in obsoletePanelColors)
            {
                context.PanelColors.Remove(panelColor);
            }
            foreach (var feature in obsoleteFeatures)
            {
                context.Features.Remove(feature);
            }
            foreach (var csl in obsoleteCsls)
            {
                context.CertificatesStandartsLicenses.Remove(csl);
            }
            foreach (var unhandled in obsoleteUnhandled)
            {
                context.UnhandledDisplaySpecificationProperties.Remove(unhandled);
            }


            foreach (var port in bind.VideoPorts)
            {
                var type = VideoPortEnum.VGA;
                Enum.TryParse(port.Type, out type);
                var videoPort = new VideoPort()
                {
                    Type = type,
                    Num  = port.Num,
                };
                monitor.VideoPorts.Add(videoPort);
            }

            foreach (var USBport in bind.USBPorts)
            {
                var type = USBPortEnum.usb_2_0;
                Enum.TryParse(USBport.Type, out type);
                var USBPort = new USBPort()
                {
                    Type = type,
                    Num  = USBport.Num,
                };
                monitor.USBPorts.Add(USBPort);
            }

            foreach (var entry in bind.PanelColors)
            {
                monitor.PanelColors.Add(new PanelColor()
                {
                    Value = entry
                });
            }

            foreach (var entry in bind.CertificatesStandartsLicenses)
            {
                monitor.CertificatesStandartsLicenses.Add(new CertificateStandartLicense()
                {
                    Value = entry
                });
            }

            foreach (var entry in bind.Features)
            {
                monitor.Features.Add(new Feature()
                {
                    Value = entry
                });
            }

            foreach (var entry in bind.UnhandledDisplaySpecificationProperties)
            {
                monitor.UnhandledDisplaySpecificationProperties.Add(new UnhandledDIsplaySpecificationProperty()
                {
                    Value = entry
                });
            }

            context.Entry(monitor).State = EntityState.Modified;
            context.SaveChanges();

            return(monitor.Id);
        }