public IActionResult DeleteExchangeRate(CurrencyExchangeRateManagementModel exchangeRate)
        {
            try
            {
                // TODO: Add delete logic here
                var rate = _currencyManagementService.GetCurrency(exchangeRate.CurrencyId).ExchangeRate.FirstOrDefault(r => r.CurrencyPairId == exchangeRate.CurrencyPairId);
                _currencyManagementService.DeleteExchangeRate(rate);

                return(RedirectToAction(nameof(IndexExchangeRates), new { id = rate.CurrencyId }));
            }
            catch
            {
                return(RedirectToAction(nameof(DeleteCurrency)));
            }
        }
        public IActionResult EditExchangeRate(CurrencyExchangeRateManagementModel rate)
        {
            try
            {
                // TODO: Add update logic here
                if (ModelState.IsValid)
                {
                    _currencyManagementService.UpdateExchangeRate(rate);
                }

                return(RedirectToAction(nameof(IndexExchangeRates), new { id = rate.CurrencyId }));
            }
            catch
            {
                return(RedirectToAction(nameof(EditExchangeRate)));
            }
        }
 public void DeleteExchangeRate(CurrencyExchangeRateManagementModel exchangeRate)
 {
     _currencyRepository.DeleteExchangeRate(exchangeRate.CurrencyId, exchangeRate.CurrencyPairId);
 }
 public void UpdateExchangeRate(CurrencyExchangeRateManagementModel exchangeRate)
 {
     _currencyRepository.UpdateExchangeRate(exchangeRate.CurrencyId, exchangeRate.CurrencyPairId, exchangeRate.Buy, exchangeRate.Sell);
 }
        private TableEditorModel GetExchangeTableModel(IEnumerable <CurrencyExchangeRateManagementModel> currencyExchanges, CurrencyExchangeRateManagementModel currencyExchange, string currentCurrencyName)
        {
            var entityType = typeof(CurrencyExchangeRateManagementModel);

            var tableModel = new TableEditorModel(currentCurrencyName, entityType, "CurrencyPairId", currencyExchanges, currencyExchange);

            var currencies = _currencyManagementService.GetCurrencies().Where(c => c.Name != currentCurrencyName).OrderBy(s => s.Name);

            _tableEditorService.AddColumn(tableModel, "CurrencyId", null);
            _tableEditorService.AddColumn(tableModel, "CurrencyPairId", null, ControlType.Select, new SelectList(currencies, "Id", "Name"));
            _tableEditorService.AddColumn(tableModel, "Buy", null, ControlType.Input, null);
            _tableEditorService.AddColumn(tableModel, "Sell", null, ControlType.Input, null);

            return(tableModel);
        }