54 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using Dapper;
 | 
						|
using GestionIntegral.Api.Models.Suscripciones;
 | 
						|
 | 
						|
namespace GestionIntegral.Api.Data.Repositories.Suscripciones
 | 
						|
{
 | 
						|
    public class FormaPagoRepository : IFormaPagoRepository
 | 
						|
    {
 | 
						|
        private readonly DbConnectionFactory _connectionFactory;
 | 
						|
        private readonly ILogger<FormaPagoRepository> _logger;
 | 
						|
 | 
						|
        public FormaPagoRepository(DbConnectionFactory connectionFactory, ILogger<FormaPagoRepository> logger)
 | 
						|
        {
 | 
						|
            _connectionFactory = connectionFactory;
 | 
						|
            _logger = logger;
 | 
						|
        }
 | 
						|
 | 
						|
        public async Task<IEnumerable<FormaPago>> GetAllAsync()
 | 
						|
        {
 | 
						|
            const string sql = @"
 | 
						|
                SELECT IdFormaPago, Nombre, RequiereCBU, Activo 
 | 
						|
                FROM dbo.susc_FormasDePago 
 | 
						|
                WHERE Activo = 1 
 | 
						|
                ORDER BY Nombre;";
 | 
						|
            try
 | 
						|
            {
 | 
						|
                using var connection = _connectionFactory.CreateConnection();
 | 
						|
                return await connection.QueryAsync<FormaPago>(sql);
 | 
						|
            }
 | 
						|
            catch (Exception ex)
 | 
						|
            {
 | 
						|
                _logger.LogError(ex, "Error al obtener todas las Formas de Pago activas.");
 | 
						|
                return Enumerable.Empty<FormaPago>();
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        public async Task<FormaPago?> GetByIdAsync(int id)
 | 
						|
        {
 | 
						|
            const string sql = @"
 | 
						|
                SELECT IdFormaPago, Nombre, RequiereCBU, Activo 
 | 
						|
                FROM dbo.susc_FormasDePago 
 | 
						|
                WHERE IdFormaPago = @Id;";
 | 
						|
            try
 | 
						|
            {
 | 
						|
                using var connection = _connectionFactory.CreateConnection();
 | 
						|
                return await connection.QuerySingleOrDefaultAsync<FormaPago>(sql, new { Id = id });
 | 
						|
            }
 | 
						|
            catch (Exception ex)
 | 
						|
            {
 | 
						|
                _logger.LogError(ex, "Error al obtener Forma de Pago por ID: {IdFormaPago}", id);
 | 
						|
                return null;
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |