public async Task CanUpdateBalance(
            string pandaAccountId,
            double balancesForUpdate,
            Enums.PandaStatementStatus status,
            bool result)
        {
            var canUpdateResult = await accountLogic.CanUpdateBalance(pandaAccountId, balancesForUpdate, status);

            Assert.Equal(canUpdateResult, result);
        }
        public async Task <Results <bool> > UpdateStatement(long identityUser, PandaStatementCreateContract statement, Enums.PandaStatementStatus status)
        {
            statement.Status = status;
            bool canActive = await _accountLogic.CanActiveAccount(identityUser, statement.PandaAccountId);

            if (!canActive)
            {
                return(PandaResponse.CreateErrorResponse <bool>("Account suspended"));
            }

            bool canUpdateBalance = await _accountLogic.CanUpdateBalance(statement.PandaAccountId, statement.Balances, status);

            if (canUpdateBalance == false)
            {
                return(PandaResponse.CreateErrorResponse <bool>("Can not update balance"));
            }
            var runStatementResult = await _accountLogic.RunStatement(statement);

            return(runStatementResult);
        }
示例#3
0
        public async Task <bool> CanUpdateBalance(string pandaAccountId, double balancesForUpdate, Enums.PandaStatementStatus status)
        {
            var notAllowBalanceUpdateEqual0 = balancesForUpdate == 0;

            if (notAllowBalanceUpdateEqual0)
            {
                return(false);
            }

            var depositMustMoreThan0 =
                status == Enums.PandaStatementStatus.Deposit && balancesForUpdate > 0;

            if (depositMustMoreThan0)
            {
                return(true);
            }

            var depositCantLessThan0
                = status == Enums.PandaStatementStatus.Deposit && balancesForUpdate < 0;

            if (depositCantLessThan0)
            {
                return(false);
            }

            var WitdrawMustMoreThan0 =
                status == Enums.PandaStatementStatus.Witdraw && balancesForUpdate > 0;

            if (WitdrawMustMoreThan0)
            {
                return(false);
            }

            double accountBalance = await _accountRepository.GetAccountBalance(pandaAccountId);

            return((balancesForUpdate + accountBalance) >= 0);
        }