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));
            }
        }
Ejemplo n.º 2
0
        public IActionResult ListarPorCliente(Int32?ClienteId)
        {
            ResponseModel responseModel = new ResponseModel();

            try
            {
                if (ClienteId == null || ClienteId <= 0)
                {
                    responseModel.Codigo  = CodeEN.Warning;
                    responseModel.Mensaje = "Datos inválidos";

                    return(BadRequest(responseModel));
                }

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

                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);
                        });
                    }

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

                    return(Ok(responseModel));
                }
                else
                {
                    responseModel.Codigo  = CodeEN.Error;
                    responseModel.Mensaje = "No se pudo listar sus tarjetas";

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

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