Esempio n. 1
0
 public void Consultar()
 {
     using (var bl = new ClienteBL())
     {
         var cliente = bl.Consultar(1);
     }
 }
Esempio n. 2
0
 public void Atualizar()
 {
     using (var bl = new ClienteBL())
     {
         var cliente = bl.Consultar(1);
         cliente.Nome = "Diego de Souza";
         bl.Atualizar(cliente);
     }
 }
Esempio n. 3
0
        private void btnConsultar_Click(object sender, EventArgs e)
        {
            string opcion;

            opcion = comConsultar.Text;

            switch (opcion)
            {
            case "Ciudad":
                try
                {
                    CiudadBL  objCiudadBL = new CiudadBL();
                    DataTable objCiudad   = objCiudadBL.Consultar();
                    if (objCiudad != null)
                    {
                        dvgDatos.DataSource = objCiudad;
                    }
                    else
                    {
                        lblerror.Text = "No hay datos";
                    }
                }
                catch (Exception ex)
                {
                    lblerror.Text = ex.Message;
                }

                break;

            case "Cliente":
                try
                {
                    ClienteBL objClienteBL = new ClienteBL();
                    DataTable objCliente   = objClienteBL.Consultar();
                    if (objCliente != null)
                    {
                        dvgDatos.DataSource = objCliente;
                    }
                    else
                    {
                        lblerror.Text = "No hay datos";
                    }
                }
                catch (Exception ex)
                {
                    lblerror.Text = ex.Message;
                }
                break;
            }
        }
        private Cliente Cliente(HttpActionContext actionContext)
        {
            var claims = ((ClaimsIdentity)actionContext.RequestContext.Principal.Identity).Claims.ToList();

            if (claims.Count == 0)
            {
                return(null);
            }

            var idCliente = Convert.ToInt32(claims.Find(t => t.Type == "idUser").Value);

            using (ClienteBL ClienteBL = new ClienteBL())
                return(ClienteBL.Consultar(idCliente));
        }
        public IActionResult LogIn([FromBody] LoginModel loginModel)
        {
            ResponseModel responseModel = new ResponseModel();

            try
            {
                if (loginModel == null)
                {
                    responseModel.Codigo  = CodeEN.Warning;
                    responseModel.Mensaje = "Datos inválidos";

                    return(BadRequest(responseModel));
                }

                Tuple <Boolean, String> Valid = loginModel.Validate();

                if (!Valid.Item1)
                {
                    responseModel.Codigo  = CodeEN.Warning;
                    responseModel.Mensaje = Valid.Item2;

                    return(BadRequest(responseModel));
                }

                ClienteBL clienteBL = new ClienteBL();

                Cliente cliente = clienteBL.Consultar(loginModel.Cuenta);

                if (cliente == null)
                {
                    responseModel.Codigo  = CodeEN.Warning;
                    responseModel.Mensaje = "Cuenta no encontrada";

                    return(BadRequest(responseModel));
                }

                Int32  MaxIntentosPermitidos = configuration.GetValue <Int32>("Variables:Seguridad:NroIntentosPermitidos");
                Double MaxTiempoEspera       = configuration.GetValue <Double>("Variables:Seguridad:TiempoEsperaIntentos");

                if (cliente.Estado != "3" ||
                    (cliente.Estado == "3" &&
                     (DateTime.UtcNow.AddHours(-5) - cliente.FechaUltimoIntento.GetValueOrDefault()).TotalHours > MaxTiempoEspera))
                {
                    DateTime fechaActual     = DateTime.UtcNow.AddHours(-5);
                    String   codigoResultado = GenerarCodigoHuffman(loginModel.Contrasena);

                    if (codigoResultado == cliente.Contrasena)
                    {
                        cliente.NroIntento         = null;
                        cliente.FechaUltimoIntento = null;
                        cliente.Estado             = "1";

                        clienteBL.ActualizarIntentos(cliente.ClienteId, cliente.Estado, cliente.NroIntento, cliente.FechaUltimoIntento);

                        String Token = GenerarToken(cliente);

                        //var clienteLogueado = new
                        //{
                        //    cliente.ClienteId,
                        //    cliente.Cuenta,
                        //    NombreCompleto = cliente.Nombre + " " + cliente.Apellido,
                        //    Token
                        //};

                        responseModel.Codigo  = CodeEN.Success;
                        responseModel.Mensaje = "El cliente ha accedido a la aplicación de manera satisfactoria";
                        responseModel.Data    = Token;

                        return(Ok(responseModel));
                    }
                    else
                    {
                        if (cliente.Estado == "3")
                        {
                            cliente.NroIntento         = 1;
                            cliente.FechaUltimoIntento = fechaActual;
                            cliente.Estado             = "1";
                        }
                        else if ((DateTime.UtcNow.AddHours(-5) - cliente.FechaUltimoIntento.GetValueOrDefault()).TotalHours > MaxTiempoEspera)
                        {
                            cliente.NroIntento         = 1;
                            cliente.FechaUltimoIntento = fechaActual;
                        }
                        else
                        {
                            cliente.NroIntento         = cliente.NroIntento == null ? 1 : cliente.NroIntento + 1;
                            cliente.FechaUltimoIntento = fechaActual;
                            cliente.Estado             = cliente.NroIntento == 5 ? "3" : cliente.Estado;
                        }

                        clienteBL.ActualizarIntentos(cliente.ClienteId, cliente.Estado, cliente.NroIntento, cliente.FechaUltimoIntento);

                        responseModel.Codigo  = CodeEN.Error;
                        responseModel.Mensaje = "Usuario y/o contraseña inválidos";
                        responseModel.Data    = null;

                        return(StatusCode(StatusCodes.Status500InternalServerError, responseModel));
                    }
                }
                else
                {
                    responseModel.Codigo  = CodeEN.Error;
                    responseModel.Mensaje = "Máximo número de intentos permitidos";
                    responseModel.Data    = null;

                    return(StatusCode(StatusCodes.Status500InternalServerError, responseModel));
                }
            }
            catch (Exception ex)
            {
                responseModel.Codigo  = CodeEN.Exception;
                responseModel.Mensaje = "Ocurrió una excepción";

                return(StatusCode(StatusCodes.Status500InternalServerError, responseModel));
            }
        }
        public IActionResult ConsultarClienteTarjetas()
        {
            ResponseModel responseModel = new ResponseModel();

            try
            {
                String cuenta = this.HttpContext.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.Email)?.Value;

                if (String.IsNullOrEmpty(cuenta))
                {
                    responseModel.Codigo  = CodeEN.Error;
                    responseModel.Mensaje = "Sesión expirada";

                    return(Unauthorized(responseModel));
                }

                ClienteBL clienteBL = new ClienteBL();

                Cliente cliente = clienteBL.Consultar(cuenta);

                if (cliente == null)
                {
                    responseModel.Codigo  = CodeEN.Warning;
                    responseModel.Mensaje = "Cuenta no encontrada";

                    return(BadRequest(responseModel));
                }

                ClienteTarjetaBL      clienteTarjetaBL   = new ClienteTarjetaBL();
                List <ClienteTarjeta> lstclienteTarjetas = clienteTarjetaBL.Listar(cliente.ClienteId);

                if (lstclienteTarjetas != null)
                {
                    List <TarjetaPago> lstTarjetaPagos = new List <TarjetaPago>();

                    if (lstclienteTarjetas.Count > 0)
                    {
                        lstclienteTarjetas.ForEach(clienteTarjeta =>
                        {
                            TarjetaPago tarjetaPago = new TarjetaPago();

                            tarjetaPago.ClienteTarjetaId = clienteTarjeta.ClienteTarjetaId;
                            tarjetaPago.ClienteId        = clienteTarjeta.ClienteId;

                            String tarjetaDesencriptado = dataProtector.Unprotect(clienteTarjeta.Descripcion);

                            Tarjeta tarjeta = JsonSerializer.Deserialize <Tarjeta>(tarjetaDesencriptado);

                            tarjetaPago.NumeroTarjeta   = tarjeta.NumeroTarjeta;
                            tarjetaPago.Propietario     = tarjeta.Propietario;
                            tarjetaPago.CVC             = tarjeta.CVC;
                            tarjetaPago.FechaExpiracion = tarjeta.FechaExpiracion;

                            lstTarjetaPagos.Add(tarjetaPago);
                        });
                    }

                    ClienteTarjetas clienteTarjetas = new ClienteTarjetas
                    {
                        Cuenta       = cliente.Cuenta,
                        Nombre       = cliente.Nombre,
                        Apellido     = cliente.Apellido,
                        ClienteId    = cliente.ClienteId,
                        TarjetaPagos = lstTarjetaPagos
                    };

                    responseModel.Codigo  = CodeEN.Success;
                    responseModel.Mensaje = "Se listó las tarjetas de pago del usuario con éxito";
                    responseModel.Data    = clienteTarjetas;

                    return(Ok(responseModel));
                }
                else
                {
                    responseModel.Codigo  = CodeEN.Error;
                    responseModel.Mensaje = "No se pudo listar las tarjetas de pago del usuario";

                    return(StatusCode(StatusCodes.Status500InternalServerError, responseModel));
                }
            }
            catch (Exception ex)
            {
                responseModel.Codigo  = CodeEN.Exception;
                responseModel.Mensaje = "Ocurrió una excepción";

                return(StatusCode(StatusCodes.Status500InternalServerError, responseModel));
            }
        }
        public IActionResult Registrar([FromBody] RegistroModel registroModel)
        {
            ResponseModel responseModel = new ResponseModel();

            try
            {
                if (registroModel == null)
                {
                    responseModel.Codigo  = CodeEN.Warning;
                    responseModel.Mensaje = "Datos inválidos";

                    return(BadRequest(responseModel));
                }

                Tuple <Boolean, String> Valid = registroModel.Validate();

                if (!Valid.Item1)
                {
                    responseModel.Codigo  = CodeEN.Warning;
                    responseModel.Mensaje = Valid.Item2;

                    return(BadRequest(responseModel));
                }


                String contrasenaCodificada = GenerarCodigoHuffman(registroModel.Contrasena.Trim());

                ClienteBL clienteBL = new ClienteBL();

                Cliente clienteConsultado = clienteBL.Consultar(registroModel.Cuenta.Trim());

                if (clienteConsultado != null)
                {
                    responseModel.Codigo  = CodeEN.Error;
                    responseModel.Mensaje = "Ya existe esta cuenta";

                    return(StatusCode(StatusCodes.Status500InternalServerError, responseModel));
                }

                Cliente cliente = new Cliente
                {
                    Cuenta     = registroModel.Cuenta.Trim(),
                    Nombre     = registroModel.Nombre.Trim(),
                    Apellido   = registroModel.Apellido.Trim(),
                    Contrasena = contrasenaCodificada,
                    Estado     = "1"
                };

                Int32 ClienteId = clienteBL.Registrar(cliente);

                if (ClienteId <= 0)
                {
                    responseModel.Codigo  = CodeEN.Error;
                    responseModel.Mensaje = "No se pudo registrar su cuenta";
                    responseModel.Data    = null;

                    return(StatusCode(StatusCodes.Status500InternalServerError, responseModel));
                }

                CarritoBL carritoBL = new CarritoBL();

                carritoBL.Registrar(ClienteId);

                responseModel.Codigo  = CodeEN.Success;
                responseModel.Mensaje = "Se registró su cuenta de manera satisfactoria";

                return(Ok(responseModel));
            }
            catch (Exception)
            {
                responseModel.Codigo  = CodeEN.Exception;
                responseModel.Mensaje = "Ocurrió una excepción";

                return(StatusCode(StatusCodes.Status500InternalServerError, responseModel));
            }
        }