Пример #1
0
        /// <summary>
        /// Obtiene los municipios del estado seleccionado.
        /// </summary>
        /// <returns>Un resultado Json con el listado de  municipios correspondientes al estado.</returns>
        public JsonResult OnGetMunicipios()
        {
            List <Municipio> municipios;

            municipios = ObtenerDatosCliente.MunicipiosEnEstado(IdEstadoSeleccionado).Result;
            return(new JsonResult(municipios));
        }
Пример #2
0
        /// <summary>
        /// Carga los datos de dirección del usuario y la lista de estados.
        /// </summary>
        /// <param name="user">Usuario que desea acceder a su dirección</param>
        /// <returns>Indicación de que terminó la taarea.</returns>
        private async Task LoadAsync(IdentityUser user)
        {
            try
            {
                var datos = ObtenerDatosCliente.Direccion(await _userManager.GetUserIdAsync(user)).Result;
                var edo   = ObtenerDatosCliente.Estado(datos.idmunicipio).Result;
                var mun   = ObtenerDatosCliente.Municipio(datos.idmunicipio).Result;

                Input = new InputModel
                {
                    IdDir        = datos.iddireccion,
                    Calle        = datos.calle,
                    CodigoPostal = datos.codigoPostal,
                    NoExt        = datos.noExterior,
                    NoInt        = datos.noInterior
                };
                IdEstadoSeleccionado    = edo.Idestado;
                IdMunicipioSeleccionado = datos.idmunicipio;
                Estados    = new SelectList(ObtenerDatosCliente.Estados().Result, nameof(Estado.Idestado), nameof(Estado.Nombre));
                Municipios = new SelectList(ObtenerDatosCliente.MunicipiosEnEstado(edo.Idestado).Result, nameof(Municipio.Idmunicipio), nameof(Municipio.Nombre));
            }
            catch (Exception e)
            {
                Input   = new InputModel();
                Estados = new SelectList(ObtenerDatosCliente.Estados().Result, nameof(Estado.Idestado), nameof(Estado.Nombre), null);
                SelectListItem vacio = new SelectListItem()
                {
                    Value = "", Text = ""
                };
                List <SelectListItem> vacios = new List <SelectListItem>();
                vacios.Add(vacio);
                Municipios = new SelectList(vacios, nameof(vacio.Value), nameof(vacio.Text), null);
            }
        }
Пример #3
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl = returnUrl ?? Url.Content("~/Error/Error");
            try
            {
                var user = await _userManager.GetUserAsync(User);

                if (user == null)
                {
                    return(NotFound($"No se puede dar con el usuario con el ID '{_userManager.GetUserId(User)}'."));
                }

                if (!ModelState.IsValid)
                {
                    await LoadAsync(user);

                    return(Page());
                }
                try
                {
                    var datos = ObtenerDatosCliente.Usuario(await _userManager.GetUserIdAsync(user)).Result;
                } catch (Exception e)
                {
                    return(NotFound($"No se puede dar con el usuario con el ID '{_userManager.GetUserId(User)}'."));
                }
                if (!await datosIgualAsync(user))
                {
                    var datos     = ObtenerDatosCliente.Usuario(await _userManager.GetUserIdAsync(user)).Result;
                    var respuesta = await EnviarDatosCliente.ActualizarUsuario(
                        new Usuario()
                    {
                        Idusuario  = Input.IdUsuario,
                        IDidentity = await _userManager.GetUserIdAsync(user),
                        Nombre     = Input.Nombre,
                        Apellido   = Input.Apellido
                    });

                    if (respuesta.IsSuccessStatusCode)
                    {
                        StatusMessage = "Tus datos personales han cambiado.";
                        return(RedirectToPage());
                    }
                }


                StatusMessage = "Tus datos personales no han cambiado.";
                return(RedirectToPage());
            }
            catch (Exception e)
            {
                return(LocalRedirect(returnUrl));
            }
        }
Пример #4
0
 public IActionResult Index()
 {
     try
     {
         ViewBag.Carrusel = ObtenerDatosCliente.Inicio().Result;
     }
     catch (Exception e)
     {
         return(Redirect("~/Error/Error"));
     }
     return(View());
 }
Пример #5
0
        private async Task <bool> datosIgualAsync(IdentityUser user)
        {
            var datos = ObtenerDatosCliente.Usuario(await _userManager.GetUserIdAsync(user)).Result;

            if (datos.IDidentity == await _userManager.GetUserIdAsync(user) &&
                datos.Nombre.Equals(Input.Nombre) &&
                datos.Apellido.Equals(Input.Apellido) &&
                datos.Idusuario == Input.IdUsuario)
            {
                return(true);
            }
            return(false);
        }
        /// <summary>
        /// Obtiene las categorías que puede visualizar el cliente para ponerlos en una
        /// lista desplegable.
        /// </summary>
        /// <returns>La vista con las categorias como un listado en una ViewBag</returns>
        public IViewComponentResult Invoke()
        {
            try
            {
                ViewBag.Categorias = ObtenerDatosCliente.ListaCategorias().Result;
            }
            catch (Exception e)
            {
                ViewBag.Categorias = new List <Categoria>();
            }

            return(View());
        }
Пример #7
0
        public IActionResult GridLibros(int id)
        {
            try
            {
                ViewBag.Libros    = ObtenerDatosCliente.ListaLibros(id).Result;
                ViewBag.Categoria = ObtenerDatosCliente.Categoria(id).Result;
            }
            catch (Exception e)
            {
                return(Redirect("~/Error/Error"));
            }

            return(View());
        }
Пример #8
0
        /// <summary>
        /// Verifica si datos introducidos por el usuario son los mismos a los anteriores.
        /// </summary>
        /// <param name="user">Usuario del que debe comparar los datos.</param>
        /// <returns>TRUE si son iguales, FALSE si no son iguales.</returns>
        private async Task <bool> dirIgualAsync(IdentityUser user)
        {
            var datos = ObtenerDatosCliente.Direccion(await _userManager.GetUserIdAsync(user)).Result;

            if (datos.codigoPostal == Input.CodigoPostal &&
                datos.calle.Equals(Input.Calle) &&
                datos.noExterior == Input.NoExt &&
                ((datos.noInterior == null && Input.NoInt == null) ||
                 ((datos.noInterior != null) && datos.noInterior.Equals(Input.NoInt)) ||
                 ((Input.NoInt != null) && Input.NoInt.Equals(datos.noInterior))) &&
                datos.idmunicipio == IdMunicipioSeleccionado)
            {
                return(true);
            }
            return(false);
        }
Пример #9
0
        private async Task LoadAsync(IdentityUser user)
        {
            try
            {
                var datos = ObtenerDatosCliente.Usuario(await _userManager.GetUserIdAsync(user)).Result;

                Input = new InputModel
                {
                    Nombre    = datos.Nombre,
                    Apellido  = datos.Apellido,
                    IdUsuario = datos.Idusuario
                };
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Пример #10
0
        /// <summary>
        /// Verifica que los datos introducidos sean correctos y estén completos, si es así actualiza la base de datos,
        /// crea la dirección si el usuario no tiene una.
        /// </summary>
        /// <returns>El formulario con una confirmación de los cambios o la señalización de los errores.</returns>
        public async Task <IActionResult> OnPostAsync()
        {
            string returnUrl = Url.Content("~/Error/Error");

            try
            {
                var user = await _userManager.GetUserAsync(User);

                if (user == null)
                {
                    return(NotFound($"No se puede dar con el usuario con el ID '{_userManager.GetUserId(User)}'."));
                }

                if (!ModelState.IsValid)
                {
                    await LoadAsync(user);

                    return(Page());
                }


                if (!ObtenerDatosCliente.DireccionExiste(user.Id).Result)
                {
                    var respuesta = await EnviarDatosCliente.CrearDireccion(new Direccion()
                    {
                        calle        = Input.Calle,
                        codigoPostal = Input.CodigoPostal,
                        idusuario    = ObtenerDatosCliente.Usuario(user.Id).Result.Idusuario,
                        idmunicipio  = IdMunicipioSeleccionado,
                        noExterior   = Input.NoExt,
                        noInterior   = Input.NoInt
                    });

                    if (respuesta.IsSuccessStatusCode)
                    {
                        StatusMessage = "Tu direccion ha cambiado.";
                        return(RedirectToPage());
                    }
                }
                else
                {
                    if (!await dirIgualAsync(user))
                    {
                        var datos     = ObtenerDatosCliente.Direccion(await _userManager.GetUserIdAsync(user)).Result;
                        var respuesta = await EnviarDatosCliente.ActualizarDireccion(
                            new Direccion()
                        {
                            calle        = Input.Calle,
                            codigoPostal = Input.CodigoPostal,
                            idusuario    = ObtenerDatosCliente.Usuario(user.Id).Result.Idusuario,
                            idmunicipio  = IdMunicipioSeleccionado,
                            noExterior   = Input.NoExt,
                            noInterior   = Input.NoInt,
                            iddireccion  = Input.IdDir
                        });

                        if (respuesta.IsSuccessStatusCode)
                        {
                            StatusMessage = "Tu direccion ha cambiado.";
                            return(RedirectToPage());
                        }
                    }
                }


                StatusMessage = "Tu direccion no ha cambiado.";
                return(RedirectToPage());
            }
            catch (Exception e)
            {
                return(LocalRedirect(returnUrl));
            }
        }