From 4e15bcfcc151dba46bceb0aaedc7455f2a662c3f Mon Sep 17 00:00:00 2001 From: Leandro Hernan Rojas Date: Thu, 3 Apr 2025 19:50:15 -0300 Subject: [PATCH] Update API eliminacion de Generic --- .../Interfaces/IPhSAccountTypeRepository.cs | 4 +- Models/Repositories/GenericRepository.cs | 44 ------------------- .../Repositories/PhSAccountTypeRepository.cs | 10 +++-- .../Sales/AccountTypeController.cs | 10 ++++- 4 files changed, 18 insertions(+), 50 deletions(-) delete mode 100644 Models/Repositories/GenericRepository.cs diff --git a/Models/Interfaces/IPhSAccountTypeRepository.cs b/Models/Interfaces/IPhSAccountTypeRepository.cs index a6c5095..b69820b 100644 --- a/Models/Interfaces/IPhSAccountTypeRepository.cs +++ b/Models/Interfaces/IPhSAccountTypeRepository.cs @@ -1,8 +1,10 @@ using Domain.Entities; + namespace Models.Interfaces { - public interface IPhSAccountTypeRepository : IGenericRepository + public interface IPhSAccountTypeRepository { + Task> GetAllAsync(); Task GetByNameAsync(string name); } } diff --git a/Models/Repositories/GenericRepository.cs b/Models/Repositories/GenericRepository.cs deleted file mode 100644 index a2fd7a2..0000000 --- a/Models/Repositories/GenericRepository.cs +++ /dev/null @@ -1,44 +0,0 @@ -using Microsoft.EntityFrameworkCore; -using Models.Interfaces; -using Models.Models; - -namespace Models.Repositories -{ - public class GenericRepository : IGenericRepository where T : class - { - private readonly PhronCareOperationsHubContext _context; - private readonly DbSet _dbSet; - - public GenericRepository(PhronCareOperationsHubContext context) - { - _context = context; - _dbSet = _context.Set(); - } - - public async Task GetByIdAsync(int id) - { - return await _dbSet.FindAsync(id); - } - - public async Task> GetAllAsync() - { - return await _dbSet.ToListAsync(); - } - - public async Task AddAsync(T entity) - { - await _dbSet.AddAsync(entity); - } - - public void Update(T entity) - { - _dbSet.Update(entity); - } - - public void Delete(T entity) - { - _dbSet.Remove(entity); - } - } - -} diff --git a/Models/Repositories/PhSAccountTypeRepository.cs b/Models/Repositories/PhSAccountTypeRepository.cs index 1ec6a4f..bc5ebf5 100644 --- a/Models/Repositories/PhSAccountTypeRepository.cs +++ b/Models/Repositories/PhSAccountTypeRepository.cs @@ -5,12 +5,13 @@ using Models.Models; namespace Models.Repositories { - - public class PhSAccountTypeRepository(PhronCareOperationsHubContext context) : GenericRepository(context), IPhSAccountTypeRepository + public class PhSAccountTypeRepository(PhronCareOperationsHubContext context) : IPhSAccountTypeRepository { + #region Declaraciones y Constructor private readonly PhronCareOperationsHubContext _context = context; - - public new async Task> GetAllAsync() + #endregion + #region Metodos de clase + public async Task> GetAllAsync() { var accountTypes = await _context.PhSAccountTypes.ToListAsync(); return accountTypes.Select(at => MapEntity(at)); @@ -21,6 +22,7 @@ namespace Models.Repositories var accountType = await _context.PhSAccountTypes.FirstOrDefaultAsync(a => a.Name == name); return accountType != null ? MapEntity(accountType) : null; } + #endregion #region Métodos Auxiliares private static TDestination MapEntity(TSource source) where TDestination : new() { diff --git a/phronCare.API/Controllers/Sales/AccountTypeController.cs b/phronCare.API/Controllers/Sales/AccountTypeController.cs index 81435e7..60bca94 100644 --- a/phronCare.API/Controllers/Sales/AccountTypeController.cs +++ b/phronCare.API/Controllers/Sales/AccountTypeController.cs @@ -10,7 +10,6 @@ namespace phronCare.API.Controllers.Sales { private readonly IAccountTypeDom _accountTypeService; - // Constructor que acepta ITicketDom como parámetro public AccountTypeController(IAccountTypeDom accountTypeService) { _accountTypeService = accountTypeService ?? throw new ArgumentNullException(nameof(accountTypeService)); @@ -28,5 +27,14 @@ namespace phronCare.API.Controllers.Sales return BadRequest(ex.Message); } } + [HttpGet("GetByName/{name}")] + public async Task GetByName(string name) + { + var result = await _accountTypeService.GetByNameAsync(name); + if (result == null) + return NotFound($"No se encontró un tipo de cuenta con el nombre '{name}'."); + + return Ok(result); + } } }