phronCare/Core/Services/DeliveryNoteService.cs
leandro 33fe012b09
All checks were successful
CI/CD Pipeline / Build and Deploy with Docker Compose (pull_request) Successful in 18m57s
feat(sales): incorporar DTO de lectura para Delivery Note #23
- Se agregan DeliveryNoteDto y DeliveryNoteItemDto
- Se implementa proyección a DTO en PhSDeliveryNoteRepository
- Se extiende IPhSDeliveryNoteRepository con métodos DTO
- Se ajusta DeliveryNoteService para trabajar con DTO
- Se actualiza DeliveryNoteController para devolver DTO
- Se elimina exposición directa de EDeliveryNote en la API

Closes #23
2026-03-19 17:41:49 -03:00

36 lines
1.3 KiB
C#

using Core.Interfaces;
using Domain.Dtos.Sales;
using Models.Interfaces;
namespace Core.Services
{
public class DeliveryNoteService(IPhSDeliveryNoteRepository deliveryNoteRepository) : IDeliveryNoteDom
{
private readonly IPhSDeliveryNoteRepository _deliveryNoteRepository = deliveryNoteRepository;
public Task<DeliveryNoteDto?> GetDtoByIdAsync(int id)
{
if (id <= 0)
throw new ArgumentOutOfRangeException(nameof(id), "El identificador del remito es inválido.");
return _deliveryNoteRepository.GetDtoByIdAsync(id);
}
public Task<DeliveryNoteDto?> GetDtoByDeliveryNoteNumberAsync(string deliveryNoteNumber)
{
if (string.IsNullOrWhiteSpace(deliveryNoteNumber))
throw new ArgumentException("El número de remito es obligatorio.", nameof(deliveryNoteNumber));
return _deliveryNoteRepository.GetDtoByDeliveryNoteNumberAsync(deliveryNoteNumber.Trim());
}
public Task<IEnumerable<DeliveryNoteDto>> GetDtosByQuoteIdAsync(int quoteId)
{
if (quoteId <= 0)
throw new ArgumentOutOfRangeException(nameof(quoteId), "El identificador del presupuesto es inválido.");
return _deliveryNoteRepository.GetDtosByQuoteIdAsync(quoteId);
}
}
}