public async Task <IActionResult> AddToObservations([Required] string address) { if (string.IsNullOrEmpty(address)) { return(BadRequest(ErrorResponse.Create($"{nameof(address)} is null or empty"))); } var validAddress = _dashService.GetBitcoinAddress(address) != null; if (!validAddress) { return(BadRequest(ErrorResponse.Create($"{nameof(address)} is not valid"))); } var balance = await _balanceRepository.GetAsync(address); if (balance != null) { return(new StatusCodeResult(StatusCodes.Status409Conflict)); } await _log.WriteInfoAsync(nameof(BalancesController), nameof(AddToObservations), new { address = address }.ToJson(), "Add address to observations"); await _balanceRepository.AddAsync(address); return(Ok()); }
public async Task <BalanceResponse> SaveAsync(Balance balance) { var existingWallet = await _playerRepository.FindByIdAsync(balance.PlayerId); if (existingWallet == null) { await _playerRepository.AddAsync(new Player() { Id = balance.PlayerId }); await _unitOfWork.CompleteAsync(); } var existingBalance = await _balanceRepository.FindAsync(balance); if (existingBalance != null) { return(new BalanceResponse("Asset already exist.")); } try { await _balanceRepository.AddAsync(balance); await _unitOfWork.CompleteAsync(); return(new BalanceResponse(balance)); } catch (Exception ex) { // Do some logging stuff return(new BalanceResponse($"An error occurred when saving the asset: {ex.Message}")); } }
/// <summary> /// Добавить новый баланс /// </summary> /// <param name="dto"></param> /// <returns></returns> public async Task <BalanceDto> AddBalanceAsync(NewBalanceDto dto) { var result = await _balanceRepository.AddAsync(_mapper.Map <Balance>(dto)); await _balanceRepository.SaveChangesAsync(); return(_mapper.Map <BalanceDto>(result)); }
public async Task <ActionResult <Balance> > PostBalance(Balance balance) { if (balance == null) { return(BadRequest(new ApiResponse(400))); } var result = await _balanceRepository.AddAsync(balance); if (result == null) { return(BadRequest(new ApiResponse(400))); } return(CreatedAtAction("GetBalance", new { id = result.Id }, result)); }
private async Task <Balance> GetBalanceByAssetAsync(Player player, EAsset asset) { var balance = player.Balances.FirstOrDefault(p => p.Asset == asset); if (balance == null) { balance = new Balance() { PlayerId = player.Id, Asset = asset }; await _balanceRepository.AddAsync(balance); } return(balance); }