public CurrenciesComparatorModel CompareCurrencies(CurrenciesComparatorModel model)
        {
            Currency firstCurrency  = _loader.LoadCurrencyFromFile(model.FirstCurrencyCode + FileExtension);
            Currency secondCurrency = _loader.LoadCurrencyFromFile(model.SecondCurrencyCode + FileExtension);

            CurrencyRecord firstCurrencyRecord =
                firstCurrency.ListOfRecords.Single(currency => currency.Date == model.Date);
            CurrencyRecord secondCurrencyRecord =
                secondCurrency.ListOfRecords.Single(currency => currency.Date == model.Date);

            float firstCloseValue  = firstCurrencyRecord.Close;
            float secondCloseValue = secondCurrencyRecord.Close;

            float comparision = firstCloseValue / secondCloseValue;

            model.ComparatorResult = $"In day {model.Date.ToShortDateString()} {firstCurrency.Name} is worth {comparision} {secondCurrency.Name}";
            return(model);
        }
        public async Task <CurrenciesComparatorModel> CompareCurrencies(CurrenciesComparatorModel model)
        {
            Currency firstCurrency = await _currencyRepository.GetCurrency(model.FirstCurrencyCode);

            Currency secondCurrency = await _currencyRepository.GetCurrency(model.SecondCurrencyCode);

            CurrencyRecord firstCurrencyRecord =
                firstCurrency.ListOfRecords.Single(currency => currency.Date == model.Date);
            CurrencyRecord secondCurrencyRecord =
                secondCurrency.ListOfRecords.Single(currency => currency.Date == model.Date);

            float firstCloseValue  = firstCurrencyRecord.Close;
            float secondCloseValue = secondCurrencyRecord.Close;

            float comparision = firstCloseValue / secondCloseValue;

            model.ComparatorResult = $"On the day of {model.Date.ToShortDateString()} {firstCurrency.Name} is worth {comparision} {secondCurrency.Name}";
            return(model);
        }
Esempio n. 3
0
        public IActionResult ShowResultCurrencyComparision(CurrenciesComparatorModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View("FormOfCurrencyComparator", model));
            }
            if (!_currencyNameChecker.CheckingIfCurrencyNamesAreDifferent(model.FirstCurrencyCode, model.SecondCurrencyCode))
            {
                ViewBag.ResultChekingCurrencyNameInComparision = "Currencies name must different";
                return(View("FormOfCurrencyComparator", model));
            }
            if (!_dateChecker.CheckingIfDateExistsForTwoCurrencies(model.Date, model.FirstCurrencyCode, model.SecondCurrencyCode))
            {
                ViewBag.DateRangeForComparison = _dateRange.GetDateRangeTwoCurrencies(model.FirstCurrencyCode, model.SecondCurrencyCode);

                return(View("FormOfCurrencyComparator", model));
            }
            return(View(_currenciesComparator.CompareCurrencies(model)));
        }
        public async Task <IActionResult> ShowResultCurrencyComparision(CurrenciesComparatorModel model)
        {
            ViewData["currencyCodes"] = await _currenciesSelectList.GetCurrencyCodes(User.Identity.Name);

            if (!ModelState.IsValid)
            {
                return(View("FormOfCurrencyComparator", model));
            }
            if (!_currencyNameChecker.AreDifferent(model.FirstCurrencyCode, model.SecondCurrencyCode))
            {
                ViewBag.NameErrorInfo = "Currencies name must different";
                return(View("FormOfCurrencyComparator", model));
            }
            if (!await _dateChecker.CheckIfDateExistsForTwoCurrencies(model.Date, model.FirstCurrencyCode, model.SecondCurrencyCode))
            {
                ViewBag.CommonDateRangeInfo = await _dateRange.GetCommonDateRangeForTwoCurrencies(model.FirstCurrencyCode, model.SecondCurrencyCode);

                return(View("FormOfCurrencyComparator", model));
            }

            return(View(await _currenciesComparator.CompareCurrencies(model)));
        }
        public async void CurrencyNameChecker_1_USD_Should_Be_Worth_Half_Of_AUD()
        {
            //Arrange
            int usdStartValue = 1;
            int audStartValue = 3;
            //bool result;

            CurrenciesComparator      currenciesComparator      = CreateCurrencyNameChecker(usdStartValue, audStartValue);
            CurrenciesComparatorModel currenciesComparatorModel = new CurrenciesComparatorModel();

            currenciesComparatorModel.FirstCurrencyCode  = _firstCurrencyName;
            currenciesComparatorModel.SecondCurrencyCode = _secondCurrencyName;
            currenciesComparatorModel.Date = new DateTime(_date.Year, _date.Month, _date.Day + 1);

            //Act
            var result = await currenciesComparator.CompareCurrencies(currenciesComparatorModel);


            //Asert
            Assert.Equal(($"On the day of {currenciesComparatorModel.Date.ToShortDateString()} {_firstCurrencyName} is worth 0,5 {_secondCurrencyName}").ToLower()
                         , result.ComparatorResult.ToLower());
        }