public static AreaFilter GetAreaFilter(AreaFilter searchAreaFilter, string areaCode, string parentCode) { //for total-rows the activityfilter corresponds to the filter from the search if (TreeListRow.CODE_TOTAL.Equals(areaCode)) { return(searchAreaFilter == null ? null : searchAreaFilter.Clone() as AreaFilter); } AreaFilter areaFilter = new AreaFilter(); areaFilter.TypeRegion = searchAreaFilter.TypeRegion; // Search for country according to code REPORTINGCOUNTRY country = ListOfValues.GetReportingCountry(areaCode); if (country != null) { //country level areaFilter.CountryID = country.LOV_CountryID; areaFilter.RegionID = AreaFilter.AllRegionsInCountryID; } else { country = ListOfValues.GetReportingCountry(parentCode); areaFilter.CountryID = country.LOV_CountryID; //NUTS or RBD level if (areaFilter.TypeRegion.Equals(AreaFilter.RegionType.RiverBasinDistrict)) { LOV_RIVERBASINDISTRICT rbd = ListOfValues.GetRiverBasinDistrict(areaCode); if (rbd != null) { areaFilter.RegionID = rbd.LOV_RiverBasinDistrictID; } } else if (areaFilter.TypeRegion.Equals(AreaFilter.RegionType.NUTSregion)) { LOV_NUTSREGION nuts = ListOfValues.GetNutsRegion(areaCode); if (nuts != null && !TreeListRow.CODE_UNKNOWN.Equals(areaCode)) { areaFilter.RegionID = nuts.LOV_NUTSRegionID; } else { areaFilter.RegionID = null; } } } return(areaFilter); }
//creates header for Area and adds to dictionary protected static void addArea(Dictionary <string, string> header, AreaFilter filter) { if (filter != null) { string key = Resources.GetGlobal("Common", "Area"); string value = string.Empty; AreaFilter.Level level = filter.SearchLevel(); if (level == AreaFilter.Level.AreaGroup) { string code = ListOfValues.GetAreaGroup((int)filter.AreaGroupID).Code; value = LOVResources.AreaGroupName(code); } else if (level == AreaFilter.Level.Country) { string code = ListOfValues.GetCountry((int)filter.CountryID).Code; value = LOVResources.CountryName(code); } else if (level == AreaFilter.Level.Region) { if (filter.TypeRegion == AreaFilter.RegionType.RiverBasinDistrict) { string code = ListOfValues.GetRiverBasinDistrict((int)filter.RegionID).Code; value = LOVResources.RiverBasinDistrictName(code); } else if (filter.TypeRegion == AreaFilter.RegionType.NUTSregion) { if (filter.RegionID != null) { string code = ListOfValues.GetNUTSRegion((int)filter.RegionID).Code; value = LOVResources.NutsRegionName(code); } else { value = LOVResources.NutsRegionName(TreeListRow.CODE_UNKNOWN); } } else { throw new InvalidOperationException(string.Format("Illgegal RegionType {0}", filter.TypeRegion)); } } header.Add(key, value); } }