using System.Threading;
using System.Threading.Tasks;
using MediatR;
using Purchasing.Products;
using Warehouse.Products;
namespace Purchasing
{
public class PurchaseOnLowInventory : INotificationHandler<InventoryAdjusted>
{
private const int LowInventoryThreshold = 5;
private readonly IMediator _mediator;
public PurchaseOnLowInventory(IMediator mediator)
{
_mediator = mediator;
}
public async Task Handle(InventoryAdjusted notification, CancellationToken cancellationToken)
{
if (notification.QuantityOnHand >= LowInventoryThreshold)
{
return;
}
await _mediator.Send(new PurchaseOrderRequisition(notification.Sku));
}
}
}