示例#1
0
        public async void CloseTransaction_AtInitializedDbTable_DataAtDbEqualExpected()
        {
            // arrange
            var transaction     = GetTransaction();
            var operations      = GetOperations();
            var productsCatalog = GetProductCatalog();
            var products        = GetProductsForClose();
            var storages        = GetStorages();

            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 expected = new Product
            {
                Id           = 0,
                Uid          = 44440,
                StorageId    = 44440,
                Price        = 0,
                Quantity     = 30,
                QuantityUnit = "mg."
            };

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

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

            Assert.NotNull(actual);
            Assert.Equal(expected.Quantity, actual.Quantity);
        }
示例#2
0
        public async Task <IActionResult> CloseTransaction(string key)
        {
            int id            = Int32.Parse(key);
            var statusMessage = await logicValidation.CheckCloseTransactionAsync(id);

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

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

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