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)); }
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); }