public async Task <Result <LiveResultsResponse> > GetResults(ResultsType type, string location = null) { try { var liveResultsResponse = new LiveResultsResponse(); var result = await GetResultsByType(type, location); if (result.IsFailure) { return(Result.Failure <LiveResultsResponse>("Could not load results")); } var selectedResults = result.Value; var candidates = ConvertCandidates(selectedResults); var counties = selectedResults.Candidates.FirstOrDefault()?.Counties.Select(c => new County { Label = c.Key, Id = c.Key }).ToList(); liveResultsResponse.Candidates = candidates; liveResultsResponse.Counties = counties ?? new List <County>(); return(Result.Ok(liveResultsResponse)); } catch (Exception e) { _logger.LogError(e, "Encountered exception while retrieving results"); throw; } }
private LiveResultsResponse CreateLiveResultsResponse(ElectionResultsData electionResultsData) { var candidates = ConvertCandidates(electionResultsData); var counties = electionResultsData?.Candidates?.FirstOrDefault()?.Counties.Select(c => new County { Label = c.Key, Id = "national", CountyName = c.Key }).ToList(); var liveResultsResponse = new LiveResultsResponse { Candidates = candidates }; liveResultsResponse.Counties = counties ?? new List <County>(); return(liveResultsResponse); }
public async Task <Result <LiveResultsResponse> > GetResults(ResultsType type, string location = null) { try { var liveResultsResponse = new LiveResultsResponse(); var result = await GetResultsByType(type, location); if (result.IsFailure) { return(Result.Failure <LiveResultsResponse>("Could not load results")); } var selectedResults = result.Value; var candidates = ConvertCandidates(selectedResults); var counties = selectedResults?.Candidates?.FirstOrDefault()?.Counties.Select(c => new County { Label = c.Key, Id = c.Key }).ToList(); liveResultsResponse.Candidates = candidates; liveResultsResponse.Counties = counties ?? new List <County>(); var voterTurnout = await GetVoterTurnout(); if (voterTurnout.IsSuccess) { decimal totalVotes = voterTurnout.Value.TotalNationalVotes; var percentage = Math.Round(_totalCounted / totalVotes, 2) * 100; liveResultsResponse.PercentageCounted = percentage; liveResultsResponse.VoterTurnout = totalVotes; } return(Result.Ok(liveResultsResponse)); } catch (Exception e) { _logger.LogError(e, "Encountered exception while retrieving results"); throw; } }