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