Example #1
0
        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);
        }
Example #3
0
        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);
        }