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); }