public async Task <Unit> Handle(StartCreatingProductsCommand request, CancellationToken cancellationToken) { var productionQueue = await productionQueueRepo.GetById(request.ProductionQueueId); CheckIfProductionConfirmed(productionQueue); await ChangeProductionStatusToBeingCreated(productionQueue); return(Unit.Value); }
public async Task <Unit> Handle(ConfirmProductionCommand request, CancellationToken cancellationToken) { var productionQueue = await productionQueueRepo.GetById(request.ProductionQueueId); if (ProductionWaitingOrDontHaveParts(productionQueue)) { var response = await RequestForConfirmProduction(productionQueue); await ChangeProductionStatusDependingOnResponse(productionQueue, response); } return(Unit.Value); }
public async Task <Unit> Handle(FinishProductionCommand request, CancellationToken cancellationToken) { var productionQueue = await productionQueueRepo.GetById(request.ProductionQueueId); CheckIfProductionBeingCreated(productionQueue); await ChangeProductionStatusToFinished(productionQueue, request.Token); await PublishEventIfOrderedProductsFinished(productionQueue.OrderId); return(Unit.Value); }