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); }
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()); }