public async Task <ResponseModel <List <Statistics> > > GetStatistics(StatisticsDataRequest statisticsDataRequest) { var statisticsData = await statisticsService.GetStatististicsData(statisticsDataRequest); var statistics = statisticsData .StatisticsData .Where(data => !string.IsNullOrEmpty(data.Value) && !string.IsNullOrEmpty(data.Country.Id)) .Select(data => new Statistics { CountryCode = data.Country?.Id, IndicatorId = data.Indicator?.Id, Year = data.Year, Value = data.Value }) .ToList(); return(new ResponseModel <List <Statistics> >(statistics)); }
public async Task <StatisticsDataResponse> GetStatististicsData(StatisticsDataRequest statisticsDataRequest) { var requestUrl = worldBankUrl .AppendPathSegment(countriesPath) .AppendPathSegment(string.Join(";", statisticsDataRequest.CountriesIds)) .AppendPathSegment(indicatorPath) .AppendPathSegment(statisticsDataRequest.IndicatorId) .SetQueryParams(new { date = statisticsDataRequest.Year, format = responseFormat }); string response; try { response = await httpClient.GetStringAsync(requestUrl); } catch (Exception exception) { return(new StatisticsDataResponse { Succsess = false, ErrorMessage = exception.Message }); } var jsonStrings = JsonConvert.DeserializeObject <List <object> >(response); return(new StatisticsDataResponse { StatisticBaseData = JsonConvert.DeserializeObject <StatisticBaseData>(jsonStrings[0].ToString()), StatisticsData = jsonStrings[1] != null ? JsonConvert.DeserializeObject <List <StatisticData> >(jsonStrings[1].ToString()) : new List <StatisticData>(), Succsess = true }); }