protected void Page_Load(object sender, EventArgs e)
        {
            if (currentPosition != null)
            {
                lblDeadline.Text   = currentPosition.Deadline.ToLongDateString();
                lblDepartment.Text = currentPosition.DepartmentList;
                lblPosition.Text   = currentPosition.PositionTitle;
                lblPosNum.Text     = currentPosition.PositionNumber;

                //Get the SexEthnicityCount for the current position
                SexEthnicityCount SexEthnicityList = new SexEthnicityCount();

                gviewSexEthnicity.DataSource = SexEthnicityList.GetSexEthnicityList(currentPosition, null);
                gviewSexEthnicity.DataBind();

                gviewApplicants.DataSource = this.GetSubmittedApplicants(false); //Get the applicants who are not selected for interview
                gviewApplicants.DataBind();

                rptInterviewApplicants.DataSource = this.GetSubmittedApplicants(true); //List the applicants selected for interview
                rptInterviewApplicants.DataBind();

                gviewInterviewSexEthnicity.DataSource = SexEthnicityList.GetSexEthnicityList(currentPosition, true);
                gviewInterviewSexEthnicity.DataBind();
            }
        }
        /// <summary>
        /// Increments the ethnicity count for the given ethnicity
        /// </summary>
        private void AddEthnicity(Ethnicity ethnicity, SexEthnicityCount currentSex)
        {
            if (ethnicity == null) //If there is no specified ethnicity, increment the unidentified count
            {
                currentSex.UnidentifiedCount++;
            }
            else
            {
                switch (ethnicity.EthnicityCategory)
                {
                case "American Indian":
                    currentSex.AmericanIndianCount++;
                    break;

                case "Asian/ Asian American":
                    currentSex.AsianCount++;
                    break;

                case "Black/ African American":
                    currentSex.BlackCount++;
                    break;

                case "Chicano/ Latino/ Hispanic":
                    currentSex.ChicanoCount++;
                    break;

                case "White":
                    currentSex.WhiteCount++;
                    break;

                default:
                    currentSex.UnidentifiedCount++;
                    break;
                }
            }

            //No matter which category it falls under, update the total as well
            currentSex.TotalCount++;
        }
        /// <summary>
        /// For each sex and ethnicity category (uncluding unidentifed), add up the application pool composition
        /// </summary>
        /// <param name="selectedForInterview">Indicate if the list should contain people selected for interview or only applicants
        /// not selected for interview. A null parameter means select all applicants</param>
        public List <SexEthnicityCount> GetSexEthnicityList(Position position, bool?selectedForInterview)
        {
            SexEthnicityCount men          = new SexEthnicityCount();
            SexEthnicityCount woman        = new SexEthnicityCount();
            SexEthnicityCount unidentified = new SexEthnicityCount();
            SexEthnicityCount total        = new SexEthnicityCount();

            men.Gender          = "Men";
            woman.Gender        = "Woman";
            unidentified.Gender = "Unidentified";
            total.Gender        = "Total";

            foreach (Application app in position.AssociatedApplications)
            {
                if (app.Submitted == false)
                {
                    continue;                         //Don't count unsubmitted applications.
                }
                if (selectedForInterview.HasValue == true)
                {
                    //If we specify a interview designation, make sure the application fits that designation
                    if (app.InterviewList != selectedForInterview)
                    {
                        continue;
                    }
                }

                //Make sure this application has a survey filled out
                if (app.Surveys != null && app.Surveys.Count > 0)
                {
                    Survey currentSurvey = app.Surveys[0];

                    if (currentSurvey.Gender == null)
                    {
                        //Unidentified
                        this.AddEthnicity(currentSurvey.Ethnicity, unidentified);
                    }
                    else if (currentSurvey.Gender.GenderType == "Male")
                    {
                        this.AddEthnicity(currentSurvey.Ethnicity, men);
                    }
                    else
                    {
                        this.AddEthnicity(currentSurvey.Ethnicity, woman);
                    }

                    //Always update the total as well
                    this.AddEthnicity(currentSurvey.Ethnicity, total);
                }
                else
                {
                    //If the survey is not filled out, place in the unidentified categories
                    this.AddEthnicity(null, unidentified);
                    this.AddEthnicity(null, total);
                }
            }

            List <SexEthnicityCount> result = new List <SexEthnicityCount>();

            result.Add(men);
            result.Add(woman);
            result.Add(unidentified);
            result.Add(total);

            return(result);
        }