示例#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));
        }
示例#2
0
        public Task <IInventoryServiceCompletedMessage> ReserveAsync(RealTimeInventory product, int reserveQuantity)
        {
            var request = new ReserveMessage(product.ProductId, reserveQuantity);

            if (DontUseActorSystem)
            {
                return(PerformOperation(request, product.ReserveAsync(TestInventoryStorage, request.ProductId, request.Update),
                                        TestInventoryStorage
                                        .ReadInventoryAsync(request.ProductId)
                                        .Result.Result));
            }

            return(inventoryActor.Ask <IInventoryServiceCompletedMessage>(request, GENERAL_WAIT_TIME));
        }