コード例 #1
0
        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());
        }
コード例 #2
0
        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}"));
            }
        }
コード例 #3
0
ファイル: BillingService.cs プロジェクト: nayutalienx/cloudj
        /// <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));
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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);
        }