Beispiel #1
0
        /// <summary>
        /// The history.
        /// </summary>
        /// <param name="request">
        /// The request.
        /// </param>
        /// <returns>
        /// The <see cref="Task"/>.
        /// </returns>
        public async Task <HistoryListResponse> GetHistory(HistoryListRequest request)
        {
            var numberOfdays = (request.EndDate - request.StartDate).TotalDays;

            if (numberOfdays >= 370)
            {
                throw new Exception("Only 365 days available.");
            }

            var numberOfCurrencies = request.Currencies.Count(i => i != Constants.Eur);

            if (numberOfCurrencies > 3)
            {
                throw new Exception("Only 3 Currencies available.");
            }

            var historyListResponse = new HistoryListResponse();
            var listOf = new List <HistoryOut>();

            foreach (var currency in request.Currencies.Where(v => v != Constants.Eur))
            {
                ValidateCurrency(currency);
                var temp = await this.currencyRepository.GetCurrency(currency);

                if (temp == null)
                {
                    throw new Exception($"Couldnt find currency {currency} .");
                }

                var list = await this.currencyRepository.GetHistory(currency, request.StartDate, request.EndDate);

                var newItem = new HistoryOut
                {
                    Code            = temp.Code,
                    Name            = temp.Name,
                    ReasonToOneEuro = temp.ReasonToOneEuro,
                    ChangeAt        = temp.ChangeAt,
                    Data            = list
                };

                listOf.Add(newItem);
            }

            historyListResponse.Data          = listOf;
            historyListResponse.NumberOfItems = listOf.Count;

            return(historyListResponse);
        }
 public async Task <HttpResponseMessage> GetHistory(HistoryListRequest request)
 {
     return(await this.ProcessActionAsync(request, this.currencyService.GetHistory));
 }
Beispiel #3
0
 /// <summary>
 /// The get history.
 /// </summary>
 /// <param name="request">
 /// The request.
 /// </param>
 /// <returns>
 /// The <see cref="Task"/>.
 /// </returns>
 public Task <HttpResponseMessage> GetHistory(HistoryListRequest request)
 {
     throw new NotImplementedException();
 }