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