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