/// <summary> /// Создаёт запрос для медиатора /// </summary> /// <param name="accountId"></param> /// <param name="currencyId"></param> /// <returns></returns> public async Task <GetCurrencyConvertQuery> GetConvertQuery(int accountId, int currencyId) { //Акк для которого меняем валюту BankAccount account = await _bankAccountRepository.GetById(id : accountId); //Валюта на которую меняем Currency toCurrency = await _currencyRepository.GetById(id : currencyId); List <Currency> currencies = await _currencyRepository.GetAll(); //Аббревиатура для API string fromCurrencyName = account.IdCurrencyNavigation.ShortName; string toCurrencyName = toCurrency.ShortName; decimal balance = account.Amount; var convertQuery = new GetCurrencyConvertQuery(from: fromCurrencyName, to: toCurrencyName, amount: balance); return(convertQuery); }
public async Task <IActionResult> Edit(int id, [FromForm] CurrencyConvertModel convertModel) { GetCurrencyConvertQuery query = await _currencyViewModelSerivce.GetConvertQuery(accountId : id, currencyId : convertModel.ToId); decimal balance = await Mediator.Send(request : query); if (ModelState.IsValid) { try { await _currencyViewModelSerivce.ChangeAccountCurrency(accountId : id, currencyId : convertModel.ToId, balance : balance); } catch (Exception e) { Console.WriteLine(value: e); throw; } return(RedirectToAction(actionName: nameof(Index))); } return(View()); }