/// <summary>
    /// populateSubActivites
    /// handle activity type selection
    /// </summary>
    private void populateSubActivites(ActivityFilter.Type activityType)
    {
        this.lbSubActivities.Items.Clear();
        int[] indexes = this.lbActivities.GetSelectedIndices();

        if (indexes.Count() == 1)
        {
            int activityId = Convert.ToInt32(this.lbActivities.SelectedItem.Value);

            if (activityType == ActivityFilter.Type.AnnexI)
            {
                pupulateSubActivitiesAnnexI(activityId);
            }
            else if (activityType == ActivityFilter.Type.NACE)
            {
                pupulateSubActivitiesNACE(activityId);
            }
            else if (activityType == ActivityFilter.Type.IPPC)
            {
                //throw new NotImplementedException();
            }
        }
        else
        {
            this.lbSubActivities.Items.Add(new ListItem(Resources.GetGlobal("Common", "AllSubActivities"), ActivityFilter.AllSubActivitiesInActivityID.ToString()));
        }

        setSelectedSubActivities();
    }
    /// <summary>
    /// Polulate sectors
    /// handle activity selection
    /// </summary>
    private void populateSectors(ActivityFilter.Type activityType)
    {
        this.lbActivitySector.Items.Clear();



        // add all to list as first element
        this.lbActivitySector.Items.Add(new ListItem(Resources.GetGlobal("Common", "AllSectors"), ActivityFilter.AllSectorsID.ToString()));


        int startYearEPRTR = 2007;

        if (activityType == ActivityFilter.Type.AnnexI)
        {
            // get all sectors
            IEnumerable <LOV_ANNEXIACTIVITY> sectors = QueryLayer.ListOfValues.AnnexISectors().Where(m => m.StartYear >= startYearEPRTR);

            // add others, select first element as default
            foreach (LOV_ANNEXIACTIVITY s in sectors)
            {
                this.lbActivitySector.Items.Add(createListItem(s));
            }
        }

        else if (activityType == ActivityFilter.Type.NACE)
        {
            // get all sectors
            IEnumerable <LOV_NACEACTIVITY> sectors = QueryLayer.ListOfValues.NaceSectors().Where(m => m.StartYear >= startYearEPRTR);

            // add others, select first element as default
            foreach (LOV_NACEACTIVITY s in sectors)
            {
                this.lbActivitySector.Items.Add(createListItem(s));
            }
        }

        setSelectedSectors();

        // next list
        populateActivites(activityType);
    }
    /// <summary>
    /// populateActivites
    /// handle activity type selection.
    /// </summary>
    private void populateActivites(ActivityFilter.Type activityType)
    {
        this.lbActivities.Items.Clear();
        this.lbActivities.Items.Add(new ListItem(Resources.GetGlobal("Common", "AllActivities"), ActivityFilter.AllActivitiesInSectorID.ToString()));

        int[] indexes        = this.lbActivitySector.GetSelectedIndices();
        int   startYearEPRTR = 2007;

        if (indexes.Count() == 1)
        {
            int sectorId = Convert.ToInt32(this.lbActivitySector.SelectedItem.Value);

            // ANNEX I
            if (activityType == ActivityFilter.Type.AnnexI)
            {
                IEnumerable <LOV_ANNEXIACTIVITY> activites = QueryLayer.ListOfValues.AnnexIActivites(sectorId).Where(m => m.StartYear == startYearEPRTR);

                foreach (LOV_ANNEXIACTIVITY a in activites)
                {
                    this.lbActivities.Items.Add(createListItem(a));
                }
            }
            // NACE
            else if (activityType == ActivityFilter.Type.NACE)
            {
                IEnumerable <LOV_NACEACTIVITY> activites = QueryLayer.ListOfValues.NaceActivites(sectorId).Where(m => m.StartYear == startYearEPRTR);

                foreach (LOV_NACEACTIVITY a in activites)
                {
                    this.lbActivities.Items.Add(createListItem(a));
                }
            }
        }

        setSelectedActivities();

        populateSubActivites(activityType);
    }
 /// <summary>
 /// Polulate Activity type selection (Annex I or NACE)
 /// This method assumes that the radio button list rblActivityType always
 /// contains the options [0:Annex I] and [1:NACE] in that exact order.
 ///
 /// Future activity types (e.g. IPPC) must be added here.
 /// </summary>
 private void populateActivityType(ActivityFilter.Type activityType)
 {
     rblActivityType.SelectedIndex = activityType == ActivityFilter.Type.AnnexI ? 0 : 1;
 }