private void BindData()
    {
        bool searchForMedicalGround = btnChangeRequestMedical.Enabled ? true : false;

        //Bind the quarters here
        List <tblQuarter> quarters = Quarters.GetQuarters();

        //Filter by category
        quarters = quarters.Where(q => q.Category == categoryId).ToList();

        //Search by medical grounds
        if (searchForMedicalGround)
        {
            quarters = quarters.Where(quarter => !(quarter.QuarterNumber.Contains('A') ||
                                                   quarter.QuarterNumber.Contains('B') ||
                                                   quarter.QuarterNumber.Contains('C') ||
                                                   quarter.QuarterNumber.Contains('D'))).ToList();
        }
        else
        {
            quarters = quarters.Where(quarter => (quarter.QuarterNumber.Contains('A') ||
                                                  quarter.QuarterNumber.Contains('B') ||
                                                  quarter.QuarterNumber.Contains('C') ||
                                                  quarter.QuarterNumber.Contains('D'))).ToList();
        }

        //Filter by status
        if (radListVacantQuarters.Checked)
        {
            quarters = quarters.Where(q => q.Status.HasValue && q.Status.Value == ((int)QuarterStatus.Vacant)).ToList();
        }
        else if (radListOccupiedQuarters.Checked)
        {
            quarters = quarters.Where(q => q.Status.HasValue && q.Status.Value == ((int)QuarterStatus.Alloted)).ToList();
        }

        //Filter by change requests
        List <tblQuarter> quartersByChangeRequests = new List <tblQuarter>();


        var changeRequests = Quarters.GetChangeRequests();

        if (changeRequests != null)
        {
            quarters.ForEach((quarter) =>
            {
                if (radNoChangeRequest.Checked)
                {
                    if (!changeRequests.Any(q => q.FirstPerference == quarter.QuarterNumber &&
                                            q.SecondPerference == quarter.QuarterNumber &&
                                            q.ThirdPerference == quarter.QuarterNumber))
                    {
                        quartersByChangeRequests.Add(quarter);
                    }
                }
                else if (radChangeRequestReceived.Checked)
                {
                    if (changeRequests.Any(q => q.FirstPerference == quarter.QuarterNumber ||
                                           q.SecondPerference == quarter.QuarterNumber ||
                                           q.ThirdPerference == quarter.QuarterNumber))
                    {
                        quartersByChangeRequests.Add(quarter);
                    }
                }
            });
        }

        grdQuarters.DataSource = quartersByChangeRequests;
        grdQuarters.DataBind();
    }