public IActionResult UpdateVisa(int id) { var getter = new GetterAll(_getterUtils, _context); var data = new EditVisaViewModel() { id = id }; data.paisesNames = getter.GetAll("Pais").Select(x => (x as Pais).Nombre); data.regionesName = getter.GetAll("Region").Select(x => (x as Region).Nombre); var visa = getter.GetAll("Visa") .Select(x => (x as Visa)) .Where(x => x.VisaID == id) .Single(); data.Nombre = visa.Name; data.SelectedPais = visa.Paises != null?visa.Paises.Select(x => x.Pais.Nombre) : new List <string>(); data.SelectedRegion = visa.Regiones != null?visa.Regiones.Select(x => x.Region.Nombre) : new List <string>(); return(View(data)); }
public IActionResult UpdateVisa(EditVisaViewModel vm) { AdminService service = new AdminService(_context, _userManager, _getterUtils); var getter = new GetterAll(_getterUtils, _context); var visas = (IEnumerable <Visa>)getter.GetAll("Visa"); Visa toUpd = visas.Where(v => v.VisaID == vm.id).Single(); Visa entity = new Visa() { Name = vm.Nombre }; if (vm.SelectedRegion != null && vm.SelectedRegion.Count() > 0) { var regiones = (IEnumerable <Region>)getter.GetAll("Region"); var regiones_visas = (IEnumerable <Region_Visa>)getter.GetAll("Region_Visa"); List <Region_Visa> regiones_visa = new List <Region_Visa>(); foreach (var name in vm.SelectedRegion) { foreach (var region in regiones) { if (region.Nombre == name) { var old = regiones_visas.Where(rv => rv.Region.Nombre == name && rv.Visa.Name == toUpd.Name).SingleOrDefault(); if (old != null) { regiones_visa.Add(old); } else { regiones_visa.Add(new Region_Visa() { Region = region, Visa = toUpd }); } break; } } } toUpd.Regiones = regiones_visa; } if (vm.SelectedPais != null && vm.SelectedPais.Count() > 0) { var paises = (IEnumerable <Pais>)getter.GetAll("Pais"); var paises_visas = (IEnumerable <Pais_Visa>)getter.GetAll("Pais_Visa"); List <Pais_Visa> paises_visa = new List <Pais_Visa>(); foreach (var name in vm.SelectedPais) { foreach (var pais in paises) { if (pais.Nombre == name) { var old = paises_visas.Where(pv => pv.Pais.Nombre == name && pv.Visa.Name == toUpd.Name).SingleOrDefault(); if (old != null) { paises_visa.Add(old); } else { paises_visa.Add(new Pais_Visa() { Pais = pais, Visa = toUpd }); } break; } } } toUpd.Paises = paises_visa; } service.UpdateVisa(entity, toUpd); return(RedirectToAction("EditVisa")); }