コード例 #1
0
        /// <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);
        }
コード例 #2
0
        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());
        }