(function () { "use strict"; angular.module("enrServicesModule") .factory("regionPropertiesParser", ["$filter", function ($filter) { return { getRegionPrimaryId: function (geometryObjProperties, removeLeadingZeroes, includeStateFipsPrefix) { var primaryId = ""; // For Counties, use FIPS code. if (geometryObjProperties.COUNTYFP !== undefined) primaryId = geometryObjProperties.COUNTYFP; // For US Congressional districts, use FIPS code. else if (geometryObjProperties.CD114FP !== undefined) primaryId = geometryObjProperties.CD114FP; // For everything else (State Senate and House Districts) just use the region name (which should simply be a district number). else if (geometryObjProperties.NAME !== undefined) primaryId = geometryObjProperties.NAME; if (removeLeadingZeroes) primaryId = Number(primaryId).toString(); if (includeStateFipsPrefix && geometryObjProperties.STATEFP !== undefined) primaryId = geometryObjProperties.STATEFP + primaryId; return primaryId; }, getRegionDisplayName: function (geometryObjProperties, jsonResult) { // Most region types have a Name property we can use... var displayName = geometryObjProperties.NAME; // ...however US congressional districts do not. Use their FIPS code since it corresponds to their district number. //if (displayName === undefined) // displayName = geometryObjProperties.CD114FP; //if (this.getRegionDistrictNumber(geometryObjProperties, jsonResult) != "") displayName = this.getRegionDistrictNumber(geometryObjProperties, jsonResult); return displayName; }, getRegionDistrictNumber: function (geometryObjProperties, jsonResult) { // Most region types have a Name property we can use... var displayName = geometryObjProperties.NAME; var jsonPropertyType,codeValue; // ...however US congressional districts do not. Use their FIPS code since it corresponds to their district number. if (displayName === undefined) { displayName = geometryObjProperties.CD114FP; jsonPropertyType = "CD114FP"; codeValue = displayName; } else { if (geometryObjProperties.SLDUST != undefined) { displayName = geometryObjProperties.NAME; jsonPropertyType = "SLDUST"; codeValue = geometryObjProperties.SLDUST; } else if (geometryObjProperties.SLDLST != undefined) { displayName = geometryObjProperties.NAME; jsonPropertyType = "SLDLST"; codeValue = geometryObjProperties.SLDLST; } else { displayName = ""; } } if(jsonPropertyType){ var regionDistrict = $filter('districtNumber')(jsonResult.Districts, codeValue,jsonPropertyType); if (regionDistrict && regionDistrict.ShowonMap == 0) { displayName = ""; } } return displayName; } }; }]); }());