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