Example #1
0
        public async void OpenTransaction_AtInitializedDbTable_DataAtDbEqualExpected()
        {
            // arrange
            var transaction     = GetTransaction();
            var operations      = GetOperations();
            var productsCatalog = GetProductCatalog();
            var products        = GetProductsForOpen();
            var storages        = GetStorages();

            transaction.IsOpen = false;

            fixture.db.Add(transaction);
            fixture.db.AddRange(productsCatalog);
            fixture.db.AddRange(products);
            fixture.db.AddRange(storages);
            fixture.db.AddRange(operations);
            await fixture.db.SaveChangesAsync();

            var expectedA = new Product
            {
                Id           = 0,
                Uid          = 44440,
                StorageId    = 44441,
                Price        = 0,
                Quantity     = 22,
                QuantityUnit = "mg."
            };

            var expectedB = new Product
            {
                Id           = 0,
                Uid          = 44440,
                StorageId    = 44442,
                Price        = 0,
                Quantity     = 9,
                QuantityUnit = "mg."
            };

            // act
            await logic.OpenTransactionAsync(transaction.Id);

            // assert
            var actualA = await fixture.db.Product.FirstOrDefaultAsync(i => i.Uid == expectedA.Uid && i.StorageId == expectedA.StorageId);

            var actualB = await fixture.db.Product.FirstOrDefaultAsync(i => i.Uid == expectedB.Uid && i.StorageId == expectedB.StorageId);

            Assert.NotNull(actualA);
            Assert.NotNull(actualB);
            Assert.Equal(expectedA.Quantity, actualA.Quantity);
            Assert.Equal(expectedB.Quantity, actualB.Quantity);
        }
Example #2
0
        public async Task <IActionResult> OpenTransaction(string key)
        {
            int id            = Int32.Parse(key);
            var statusMessage = await logicValidation.CheckOpenTransactionAsync(id);

            if (statusMessage.IsCompleted)
            {
                await logic.OpenTransactionAsync(id);

                await logProvider.AddToLogAsync($"Opened transaction (Id: {key}).");

                return(RedirectToRoute(TransactionsRouting.SingleItem, new { key }));
            }
            else
            {
                return(View("CustomError", statusMessage));
            }
        }