public InventoryAuditBuilder(int userId, Guid transactionTypeId, LumberProduct[] lumberProducts,
                                     MiscellaneousProduct[] miscProducts)
        {
            var transaction = new InventoryTransaction {
                UserId = userId, TransactionTypeId = transactionTypeId
            };
            var createInventoryTransactionCommand = new CreateInventoryTransaction(transaction);

            Commands.Add(createInventoryTransactionCommand);

            var createLumberTransactionDetailCommands =
                lumberProducts.Select(p => new CreateLumberTransactionDetails(transaction, p.Id, p.Quantity));

            Commands.AddRange(createLumberTransactionDetailCommands);

            var createMiscTransactionDetailCommands =
                miscProducts.Select(p => new CreateMiscellaneousTransactionDetails(transaction, p.Id, p.Quantity));

            Commands.AddRange(createMiscTransactionDetailCommands);

            var lumberUpdateCommands = lumberProducts.Select(lp => new UpdateLumberProductInventory(lp)).ToList();

            Commands.AddRange(lumberUpdateCommands);

            var miscUpdateCommands = miscProducts.Select(mp => new UpdateMiscellaneousProductInventory(mp)).ToList();

            Commands.AddRange(miscUpdateCommands);
        }
        public void ReceiveAndReleaseQuantity_HappyPath_ReceivesAndReleases()
        {
            var productId  = Product.Light.Id;
            var locationId = Location.TestRack.Id;
            var rng        = new Random();
            var quant      = rng.Next(10) + 1;
            var client     = new JsonServiceClient(TestAppHost.BaseUri);
            var xact       = new CreateInventoryTransaction
            {
                ProductId  = productId,
                LocationId = locationId,
                Quantity   = quant
            };
            var count = new GetProductQuantityOnHand {
                Id = xact.ProductId
            };

            var login = client.Post(new Authenticate
            {
                provider = AuthenticateService.CredentialsProvider,
                UserName = "******",
                Password = "******"
            });

            client.SessionId = login.SessionId;

            client.Post(xact);
            var qoh = client.Get(count);

            Assert.GreaterOrEqual(quant, 1);
            Assert.NotNull(qoh);
            Assert.AreEqual(quant, qoh.Quantity);

            xact.Quantity = -xact.Quantity + 1;

            client.Post(xact);
            qoh = client.Get(count);

            Assert.NotNull(qoh);
            Assert.AreEqual(1, qoh.Quantity);
        }
Example #3
0
        protected void AddCreateInventoryTransactionCommand(InventoryTransaction transaction)
        {
            var createInventoryTransactionCommand = new CreateInventoryTransaction(transaction);

            Commands.Add(createInventoryTransactionCommand);
        }