Ejemplo n.º 1
0
        public async Task <Results <bool> > RunStatement(PandaStatementCreateContract statement)
        {
            if (string.IsNullOrEmpty(statement.PandaAccountId))
            {
                return(PandaResponse.CreateErrorResponse <bool>("Account id not found"));
            }
            statement.CreatedAt = statement.CreatedAt == null ? DateTime.Now : statement.CreatedAt;
            var newStatement = new PandaStatement();

            _mapper.Map(statement, newStatement);
            Results <bool> runStateMentResult = await _accountRepository.CreateStatement(newStatement);

            if (runStateMentResult.IsError())
            {
                return(runStateMentResult);
            }
            if (string.IsNullOrEmpty(newStatement.PandaAccountId))
            {
                return(PandaResponse.CreateErrorResponse <bool>("Panda account Id Invalid"));
            }
            Results <bool> balanceIsUpdated = await _accountRepository.UpdateAccountBalance(newStatement.PandaAccountId, newStatement.Balances);

            if (balanceIsUpdated.IsError())
            {
                return(balanceIsUpdated);
            }
            return(PandaResponse.CreateSuccessResponse(true));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Deposit([FromBody] PandaStatementCreateContract Statement)
        {
            if (!ModelState.IsValid)
            {
                return(StatusCode(500,
                                  new
                {
                    Error = ModelState.Values.SelectMany(s => s.Errors.Select(ss => ss.ErrorMessage)).ToList(),
                    Structure = new PandaStatementCreateContract {
                    }
                }
                                  ));
            }
            var result = await _gatewayFacade.GateWayInvoke(
                method : BaseMethod,
                token : Token,
                path : BasePath,
                Statement,
                query : BaseQueryString
                );

            if (result.IsError())
            {
                return(StatusCode(500, result));
            }

            return(Ok(result));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Witdraw([FromBody] PandaStatementCreateContract Statement)
        {
            Results <bool> result = await _accountFacade.UpdateStatement(IdentityUser, Statement, Enums.PandaStatementStatus.Witdraw);

            if (result.IsError())
            {
                return(StatusCode(500, result));
            }

            return(Ok(result));
        }
Ejemplo n.º 4
0
        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);
        }