public ApiResultWithMoreResultIndicator <Vote> GetLegislatorVotes(string legislatorBioguideId, int page, int resultsPerPage = _defaultResultsPerPage) { var votes = new List <Vote>(); var votesResult = _voteSvc.GetVotesByLegislator(legislatorBioguideId, page, resultsPerPage); foreach (var iVote in votesResult.Results) { votes.Add(Vote.TransformToVote(iVote)); } var results = new ApiResultWithMoreResultIndicator <Vote>(votes, votesResult.IsThereMoreResults); return(results); }
protected ApiResultWithMoreResultIndicator <T> GetApiResultFromQuery <T, T2>(ApiBase apiSvc, string query, int?page = null, int?expectedResultsPerPage = null) where T2 : class, IServiceResult <T> { if (string.IsNullOrWhiteSpace(query)) { throw new ArgumentException("Error: Cannot retrieve results due to an invalid or empty query"); } try { //update query if (page != null && expectedResultsPerPage != null) { query = AppendOffsetToProPublicaQuery(query, (int)page, (int)expectedResultsPerPage); } //var votesResults = GetMemberResults<DomainModel.ApiModels.ProPublica.VotesResult.Rootobject>(query, _congressApiSvc).Result; var votesResults = GetMemberResults <T2>(query, apiSvc).Result; var results = (votesResults as IServiceResult <T>).GetResults(); var isThereMoreResults = true; if (expectedResultsPerPage == null) { isThereMoreResults = false; } else if (results.Count < (int)expectedResultsPerPage) { isThereMoreResults = false; } else { isThereMoreResults = true; } var apiResults = new ApiResultWithMoreResultIndicator <T>(results, isThereMoreResults); return(apiResults); } catch (Exception ex) { _logger.Error($"Error: Could not retrieve Bills from query {query}", ex); } return(null); }