예제 #1
0
        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);
        }