Newer
Older
Warehouse / src / Application / Products / ProductStockMass / ProductStockMassQuery.cs
@Derek Comartin Derek Comartin on 22 Aug 2023 871 bytes Init
using MyWarehouse.Application.Dependencies.Services;
using MyWarehouse.Domain.Common.ValueObjects.Mass;

namespace MyWarehouse.Application.Products.ProductStockMass;

public record ProductStockMassQuery : IRequest<StockMassDto>
{
}

public class ProductStockMassQueryHandler : IRequestHandler<ProductStockMassQuery, StockMassDto>
{
    private readonly IStockStatisticsService _statisticsService;

    public ProductStockMassQueryHandler(IStockStatisticsService statisticsService)
        => _statisticsService = statisticsService;

    public async Task<StockMassDto> Handle(ProductStockMassQuery request, CancellationToken cancellationToken)
    {
        var mass = await _statisticsService.GetProductStockTotalMass(MassUnit.Tonne);

        return new StockMassDto()
        {
            Value = mass.Value,
            Unit = mass.Unit.Symbol
        };
    }
}