public ActionResult Currency(string tab, ExchangeRateViewModel exchangeRateViewModel)
        {
            var currencies = this.repository.GetCurrencies();

            this.ViewData["MainMenuViewModel"] = MenuViewModelFactory.CreateAdminMenu(repository, ControlPanelPage.Currency);
            this.ViewData["SettingsViewModel"] = this.settingsViewModel;
            this.ViewData["Currencies"]        = currencies;
            this.ViewData["Tab"] = tab;
            this.ViewData["CurrenciesSelectList"] =
                currencies.Select(c => new SelectListItem {
                Text  = c.Text,
                Value = c.Id.ToString()
            }).ToList();

            if (exchangeRateViewModel == null)
            {
                exchangeRateViewModel = new ExchangeRateViewModel(this.repository);
            }
            else
            {
                exchangeRateViewModel.Initialize(this.repository);
            }

            return(this.View("Currency", exchangeRateViewModel));
        }
        public ActionResult ExchangeRate()
        {
            string message = string.Empty;
            ExchangeRateViewModel model = new ExchangeRateViewModel();

            model.GetExchangeRate();
            return(View(model));
        }
        public ActionResult Create()
        {
            List <Currency> nativeList = currencyService.GetCurrencies().Where(u => u.IsNativeCurrency).ToList();
            Currency        native     = nativeList.FirstOrDefault();

            ExchangeRateViewModel model = new ExchangeRateViewModel()
            {
                CurrencyId   = -1,
                CurrencyList = currencyService.GetCurrencies().Where(u => u.Name != native.Name).ToList(),
            };

            return(View(model));
        }
Ejemplo n.º 4
0
        public async Task <ExchangeRateViewModel> GetExhangeRates([FromBody] ExhangeRateRequestViewModel request)
        {
            try
            {
                ExchangeRateViewModel result = await _currencyBll.GetExchangeRate(request.Currency, request.DateOn);

                return(result);
            }
            catch (Exception ex)
            {
                throw new Exception("Ошибка при регистрации нового аккаунта" + ex.Message + ex.InnerException);
            }
        }
Ejemplo n.º 5
0
        public ModelStateDictionary ValidateRateCreatingAndEditing(ExchangeRateViewModel model, ModelStateDictionary ModelState)
        {
            decimal rate = 0;

            if (!exchangeRateService.RateTryParse(model.RateForPurchaise, out rate))
            {
                ModelState.AddModelError("Rate", localizer["RateFormatValidation"]);
            }
            else if (!exchangeRateService.RateTryParse(model.RateForSale, out rate))
            {
                ModelState.AddModelError("Rate", localizer["RateFormatValidation"]);
            }
            else if (rate <= 0)
            {
                ModelState.AddModelError("Rate", localizer["RateNotNull"]);
            }
            return(ModelState);
        }
        public ActionResult Create(ExchangeRateViewModel model)
        {
            validationService.ValidateRateCreatingAndEditing(model, ModelState);


            decimal rateForSale      = 0;
            decimal rateForPurchaise = 0;

            if (!RateTryParse(model.RateForSale, out rateForSale) ||
                !RateTryParse(model.RateForPurchaise, out rateForPurchaise))
            {
                ModelState.AddModelError("RateForSale", localizer["RateFormatValidation"]);
                ModelState.AddModelError("RateForPurchaise", localizer["RateFormatValidation"]);
            }
            else if (rateForSale <= 0 || rateForPurchaise <= 0)
            {
                ModelState.AddModelError("RateForSale", localizer["RateNotNull"]);
                ModelState.AddModelError("RateForPurchaise", localizer["RateNotNull"]);
            }

            if (ModelState.IsValid)
            {
                ExchangeRate exchangeRate = new ExchangeRate()
                {
                    RateForPurchaise = rateForPurchaise,
                    RateForSale      = rateForSale,
                    RateDate         = DateTime.Now,
                    CurrencyId       = model.CurrencyId,
                    ExchangeRateType = context.ExchangeRateTypes.FirstOrDefault(e => e.IsEqual(ExchangeRateTypesEnum.Market))
                };

                exchangeRateService.AddExchangeRate(exchangeRate);
                context.SaveChanges();

                return(RedirectToAction("Index", "ExchangeRate"));
            }

            model.CurrencyList = currencyService.GetCurrencies().ToList();

            return(View(model));
        }
        public ActionResult ExchangeRateUpdate(string action, string rate, string rate_r, Guid?id, ExchangeRateViewModel newRate)
        {
            // ajax update
            if (string.Equals(action, "update", StringComparison.OrdinalIgnoreCase) && id != null)
            {
                this.repository.UpdateExchangeRate(new ExchangeRate
                {
                    Id                    = id.Value,
                    ConversionRate        = this.TryConvertDouble(rate),
                    ReverseConversionRate = this.TryConvertDouble(rate_r)
                });

                return(new HttpStatusCodeResult(System.Net.HttpStatusCode.OK));
            }

            // new exchange rate post
            if (newRate != null && this.ModelState.IsValid)
            {
                try
                {
                    this.repository.AddExchangeRate(new ExchangeRate
                    {
                        FromCurrencyId        = newRate.FromId,
                        ToCurrencyId          = newRate.ToId,
                        ConversionRate        = newRate.Rate,
                        ReverseConversionRate = newRate.ReverseRate
                    });
                }
                catch (ModelValidationException e)
                {
                    this.ModelState.AddModelError(string.Empty, ErrorCodeMap.GetStringForError(e.Message));
                }
            }

            return(this.Currency(null, newRate));
        }