Пример #1
0
        public void InsertSingleNewTransaction_WithCombinationsOfStartAndTransactValues_ReturnsExpectedBalance(double startingValue, double transactionValue, double expectedValue)
        {
            // Arrange
            IBankAccountDailyBalances dailyBalances = new BankAccountDailyBalances(startingValue);
            FinancialTransactionDto   transaction   = new FinancialTransactionDto(DateTime.Parse("01/01/2020 00:00:00"), "Ledger", transactionValue, "Company");

            // Act
            dailyBalances.InsertSingleNewTransaction(transaction);

            // Assert
            dailyBalances.LastDailyEndingBalance.ShouldEqual(expectedValue);
        }
Пример #2
0
        // GET: FinancialTransaction/Create
        public ActionResult Create(Guid?accountId)
        {
            if (accountId == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var transaction = new FinancialTransactionDto()
            {
                Date      = DateTime.Now.Date,
                Money     = new ValueObjects.Finance.Money(0, "CAN"),
                AccountId = accountId.Value
            };

            return(View(transaction));
        }
Пример #3
0
        public ActionResult Edit(FinancialTransactionDto transaction)
        {
            RequestResultArgs requestResult = null;

            _callback.Completed += (args) => requestResult = args;
            var cmd = new UpdateFinancialTransactionCommand(transaction);

            _commandProcessor.Execute(cmd);

            if (!requestResult.Succeeded)
            {
                this.SetErrorMessageContents(requestResult.MessageContents);
                return(View(transaction));
            }
            return(RedirectToAction("Index", new { accountId = transaction.AccountId }));
        }
Пример #4
0
        public void ForEach_SingleDailyBalance_EachDailyBalanceIsSeen()
        {
            // Arrange
            IBankAccountDailyBalances dailyBalances = new BankAccountDailyBalances(0.0);
            FinancialTransactionDto   transaction   = new FinancialTransactionDto(DateTime.Parse("01/01/2020 00:00:00"), "Ledger", 20.0, "Company");

            dailyBalances.InsertSingleNewTransaction(transaction);
            var             expectedBalances = dailyBalances.GetAllDailyBalances();
            List <DateTime> expectedDays     = new List <DateTime>();
            List <DateTime> visitedDays      = new List <DateTime>();

            dailyBalances.ForEach(dailyBalance => expectedDays.Add(dailyBalance.Date));

            // Act
            dailyBalances.ForEach(dailyBalance => visitedDays.Add(dailyBalance.Date));

            // Assert
            visitedDays.Count.ShouldEqual(expectedBalances.Count);
            expectedDays.ShouldEqual(visitedDays);
        }
Пример #5
0
        public ActionResult DeleteConfirmed(FinancialTransactionDto transaction)
        {
            if (transaction == null || transaction.Id == null || transaction.AccountId == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            RequestResultArgs requestResult = null;

            _callback.Completed += (args) => requestResult = args;
            var cmd = new RemoveFinancialTransactionCommand(transaction.Id, transaction.AccountId);

            _commandProcessor.Execute(cmd);

            if (!requestResult.Succeeded)
            {
                this.SetErrorMessageContents(requestResult.MessageContents);
                return(View(transaction));
            }

            return(RedirectToAction("Index", new { accountId = transaction.AccountId }));
        }