Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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"));
        }