예제 #1
0
        public async Task <IActionResult> Login(Cliente cliente)
        {
            if (ModelState.GetValidationState("Email") == ModelValidationState.Valid &&
                ModelState.GetValidationState("Password") == ModelValidationState.Valid)
            {
                string email = cliente.Email;
                cliente = await _dbAccess.login(cliente);

                if (cliente == null)
                {
                    if (await _dbAccess.CheckEmail(email))
                    {
                        // El Correo está registrado, pero el password es incorrecto
                        ViewBag.EmailError = false;
                        return(View());
                    }
                    else
                    {
                        // El Correo no está registrado
                        ViewBag.EmailError = true;
                        return(View());
                    }
                }
                else if (await _dbAccess.CheckConfirmEmail(email))
                {
                    ViewBag.CuentaNoActiva = true;
                    return(View());
                }
                else
                {
                    cliente = await _dbAccess.CargarDirecciones(cliente);

                    cliente = await _dbAccess.CargarPedidos(cliente);

                    HttpContext.Session.SetString("User", JsonConvert.SerializeObject(cliente));
                    HttpContext.Session.SetString("name", cliente.DatosPersonales.Nombre);
                    return(RedirectToAction("UserPanel", "Cliente"));
                }
            }
            return(View());
        }