public ActionResult <List <AccountStatus> > TransferMoney([FromBody] TransferBid bid)
 {
     try
     {
         var status = _accountService.TransferMoneyAsync(bid);
         return(Ok(status));
     }
     catch (Exception e)
     {
         return(BadRequest(e.Message));
     }
 }
        public void Transfer_money_from_one_currency_to_another()
        {
            var bid = new TransferBid
            {
                UserId             = "хом¤чок",
                CurrencyCode       = "USD",
                Amount             = 2,
                TargetCurrencyCode = "CHF"
            };

            var accountStatus = _controller.TransferMoney(bid);
        }
Ejemplo n.º 3
0
        public async Task <IEnumerable <AccountStatus> > TransferMoneyAsync(TransferBid bid)
        {
            var bidDto = _mapper.Map <dto.TransferBid>(bid);
            var rates  = await _client.ExchangeRatesAsync();

            var currentRate  = rates.FirstOrDefault(x => x.currency.ToLower() == bidDto.CurrencyCode.ToLower());
            var targetRate   = rates.FirstOrDefault(x => x.currency.ToLower() == bidDto.TargetCurrencyCode.ToLower());
            var creditAmount = bidDto.Amount / currentRate.rate * targetRate.rate;
            var daoDto       = _mapper.Map <dao.TransferBid>(bid);

            _accountRepo.WithdrawMoney(daoDto);
            var actualStatus = _accountRepo.AddMoney(new dao.Bid
            {
                Amount       = creditAmount,
                CurrencyCode = targetRate.currency,
                UserId       = daoDto.UserId
            });

            return(actualStatus.Select(_mapper.Map <AccountStatus>));
        }