public void ReturnsArgumentExceptionOnInvalidCurrency() { string currency = "dummy_currency"; string expectedErrorMessage = String.Format(CurrencyMapper.INVALID_CURRENCY_ERROR, currency); Exception ex = Assert.Throws <ArgumentException>(() => CurrencyMapper.Map(currency)); Assert.Equal(expectedErrorMessage, ex.Message); }
public List<CurrencyModel> BindFromEntities() { using (RepositoryHolder scope = new RepositoryHolder()) { CurrencyMapper mapper = new CurrencyMapper(); List<CurrencyModel> result = mapper.EntityToModel( scope.CurrencyRepository .Fetch() .ToList()); return result; } }
public void ReturnsValidCurrenciesProperly() { var tests = new[] { new { currency = "dolar", expected = "USD" }, new { currency = "euro", expected = "EUR" }, new { currency = "real", expected = "BRL" }, }; foreach (var test in tests) { var actual = CurrencyMapper.Map(test.currency); Assert.Equal(test.expected, actual); } }
public async Task <QuotationResponseDTO> GetQuotation(string currency) { var client = _clientFactory.CreateClient("cambio.today"); var url = $"quotes/{CurrencyMapper.Map(currency)}/ARS/json?quantity=1&key={_cambioTodaySettings.Key}"; var request = new HttpRequestMessage(HttpMethod.Get, url); var response = await _clientWrapper.SendAsync(client, request); if (!response.IsSuccessStatusCode) { throw new CambioTodayAPIException(CAMBIOTODAYAPI_ERROR_MESSAGE); } var contentResponse = await response.Content.ReadAsStringAsync(); var cambioTodayResponse = JsonConvert.DeserializeObject <QuotesModelCTResponse>(contentResponse); var quotationResponse = _mapper.Map <QuotationResponseDTO>(cambioTodayResponse.Result); return(quotationResponse); }
public async Task SaveCurrencyRates(IEnumerable <CurrencyRateDto> dtos) { var entities = new List <CurrencyRate>(); foreach (var dto in dtos) { var singleCurrency = CurrencyMapper.MapyMany(dto); entities.AddRange(singleCurrency); } var allEntities = _currencyDbContext.CurrencyRates.ToList(); var toAdd = entities .Where(x => !allEntities.Any(e => e.Date == x.Date && e.CurrencyType == x.CurrencyType)); _currencyDbContext.CurrencyRates.AddRange(toAdd); await _currencyDbContext.SaveChangesAsync(); }
public async Task <IEnumerable <CurrencyRateViewModel> > GetCurrencyRatesBetweenDates(DateTime dateFrom, DateTime dateTo) { if (dateFrom > dateTo) { throw new InvalidParameterException("DateFrom cannot be greater than DateTo"); } if (dateFrom < DateTime.UtcNow.AddDays(-90)) { throw new BadRequestException("Cannot find data in period longer than 90 days"); } ; var inDb = await _currencyDbContext.CurrencyRates .Where(x => x.Date >= dateFrom && x.Date <= dateTo) .OrderBy(x => x.Date) .ToListAsync(); return(inDb.Select(x => CurrencyMapper.MapFromDto(x))); }
public void ShouldMapFromDtoToEntity() { var dto = new CurrencyRateDto() { Code = "usd", Currency = "dolar", Rates = new List <Rate>() { new Rate() { Ask = 3.7800, Bid = 3.8853, EffectiveDate = "2020-02-01" } } }; var entity = CurrencyMapper.MapSingle(dto); Assert.NotNull(entity); }
public async Task <ServiceResult> InsertAllStocks() { var currencyList = await GetLatestCurrency(); var bistList = await GetLatestBist(); var coinDtoList = await GetLatestCoinData(); var date = DateTime.UtcNow.Date; // bistList.FirstOrDefault().Date; var entity = new StockData { Date = date, BistStocks = BistStockMapper.ConvertToBistStock(bistList), Currency = CurrencyMapper.ConvertToCurrency(currencyList), Coins = CoinMapper.ConvertToDailyCoin(coinDtoList) }; var result = await _stockRepo.Create(entity); if (result != null) { return(new ServiceResult(ServiceStatus.Created)); } return(new ServiceResult(ServiceStatus.NotCreated)); }
public CurrencyCrudFactory() : base() { mapper = new CurrencyMapper(); dao = SqlDao.GetInstance(); }
public CurrencyFileRepository(IFileReader loader, CurrencyMapper mapper) : base(loader, mapper) { }