コード例 #1
0
            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);
            }
コード例 #2
0
ファイル: CurrencyListBind.cs プロジェクト: GoGo228/HIREpo
            public List<CurrencyModel> BindFromEntities()
            {
                using (RepositoryHolder scope = new RepositoryHolder())
                {
                    CurrencyMapper mapper = new CurrencyMapper();

                    List<CurrencyModel> result = mapper.EntityToModel(
                        scope.CurrencyRepository
                        .Fetch()

                       .ToList());
                    return result;
                }

            }
コード例 #3
0
            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);
                }
            }
コード例 #4
0
        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);
        }
コード例 #5
0
        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();
        }
コード例 #6
0
        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)));
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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));
        }
コード例 #9
0
 public CurrencyCrudFactory() : base()
 {
     mapper = new CurrencyMapper();
     dao    = SqlDao.GetInstance();
 }
コード例 #10
0
 public CurrencyFileRepository(IFileReader loader, CurrencyMapper mapper) : base(loader, mapper)
 {
 }