(function () { "use strict"; angular.module("enrDetailsPaneModule") .directive("enrDownloadResults", [function () { return { templateUrl: "Scripts/EnrAngular/Directives/enrDownloadResults.html", scope: {}, controller: "enrDownloadResultsController", restrict: "E" }; }]) .controller("enrDownloadResultsController", ["$scope", "$rootScope", "jsonDataFetcher", "exportService", function ($scope, $rootScope, jsonDataFetcher, exportService) { $rootScope.$broadcast("POP_BUSY_WORKING"); $scope.DownloadVoterStatistics = function (type) { jsonDataFetcher.fetchSingleJson("statewideTurnout", true, false, function (jsonResults) { var electionData = jsonResults.root.CountyTurnout; var VoterStatisticData = []; angular.forEach(electionData, function (element, index) { var voterVotingRigisterVoters = element.VotersVoting / element.REGISTERED_VOTERS; var AbsenteeVotingRigisterVoters = element.Absentee / element.VotersVoting; VoterStatisticData.push({ 'County': element.County, 'RegisteredVoters': element.REGISTERED_VOTERS, 'VotersVoting': element.VotersVoting, 'TurnOutPercentage': isNaN(voterVotingRigisterVoters) || voterVotingRigisterVoters == Infinity ? '' : ((voterVotingRigisterVoters) * 100).toFixed(0) + '%', 'Electionday': element.InPerson, 'Absentee': element.Absentee, 'AbsenteePercentage': isNaN(AbsenteeVotingRigisterVoters) || AbsenteeVotingRigisterVoters == Infinity ? '' : ((element.Absentee / element.VotersVoting) * 100).toFixed(0) + '%', }); }); if (type == 'csv') { exportService.toCsv(electionData, "VoterStatistics"); } else if (type == 'json') { exportService.toJSON(VoterStatisticData, "VoterStatistics"); } else if (type == 'xml') { exportService.toXML(VoterStatisticData, "VoterStatistics"); } }); } }]); }());