Beispiel #1
0
        public Task <IInventoryServiceCompletedMessage> ReserveAsync(ActorSelection inventoryActorSelection, int reserveQuantity, string productId = "product1")
        {
            var request = new ReserveMessage(productId, reserveQuantity);

            if (DontUseActorSystem)
            {
                return(PerformOperation(request, Options.InitialInventory.ReserveAsync(TestInventoryStorage, request.ProductId, request.Update),
                                        TestInventoryStorage
                                        .ReadInventoryAsync(request.ProductId)
                                        .Result.Result));
            }
            return(inventoryActor.Ask <IInventoryServiceCompletedMessage>(request, GENERAL_WAIT_TIME));
        }
Beispiel #2
0
        public Task <IInventoryServiceCompletedMessage> PurchaseFromHoldsAsync(RealTimeInventory product, int purchaseQuantity)
        {
            var request = new PurchaseFromHoldsMessage(product.ProductId, purchaseQuantity);

            if (DontUseActorSystem)
            {
                return(PerformOperation(request, product.PurchaseFromHoldsAsync(TestInventoryStorage, request.ProductId, request.Update),
                                        TestInventoryStorage
                                        .ReadInventoryAsync(request.ProductId)
                                        .Result.Result));
            }
            return(inventoryActor.Ask <IInventoryServiceCompletedMessage>(request, GENERAL_WAIT_TIME));
        }
Beispiel #3
0
        public Task <IInventoryServiceCompletedMessage> GetInventoryAsync(string inventoryName)
        {
            var request = new GetInventoryMessage(inventoryName);

            if (DontUseActorSystem)
            {
                return(PerformOperation(request, Options.InitialInventory.ReadInventoryFromStorageAsync(TestInventoryStorage, request.ProductId),
                                        TestInventoryStorage
                                        .ReadInventoryAsync(request.ProductId)
                                        .Result.Result));
            }
            return(inventoryActor.Ask <IInventoryServiceCompletedMessage>(request, GENERAL_WAIT_TIME));
        }
Beispiel #4
0
        public Task <IInventoryServiceCompletedMessage> ResetInventoryQuantityReserveAndHoldAsync(
            RealTimeInventory product,
            int quantity,
            int reserveQuantity,
            int holdsQuantity)
        {
            var request = new ResetInventoryQuantityReserveAndHoldMessage(product.ProductId, quantity, reserveQuantity, holdsQuantity);

            if (DontUseActorSystem)
            {
                return(PerformOperation(request, product.ResetInventoryQuantityReserveAndHoldAsync(TestInventoryStorage, request.ProductId, request.Update, request.Reservations, request.Holds),
                                        TestInventoryStorage
                                        .ReadInventoryAsync(request.ProductId)
                                        .Result.Result));
            }
            return(inventoryActor.Ask <IInventoryServiceCompletedMessage>(request, GENERAL_WAIT_TIME));
        }