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