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)); }
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)); }
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)); }
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); }