private void LoadSearchCriteria()
        {


            var searchCriteria = new Criteria();

            var demographicParms = new SearchParms();
            demographicParms.AddParm("", "");


            searchCriteria.Add(new Classes.Criterion()
            {
                Header = "Demographics",
                Key = "Demographics",
                Locked = true,
                Empty = true
                
            });

            searchCriteria.Add(new Classes.Criterion()
            {
                Header = "Demographics",
                Key = "Race",
                Removable = true

            });

            searchCriteria.Add(new Classes.Criterion()
            {
                Header = "Demographics",
                Key = "EOSL",
                Object = "Yes",
                Removable = true
            });

            searchCriteria.Add(new Classes.Criterion()
            {
                Header = "Demographics",
                Key = "Gifted",
                Object = "No",
                Removable = true
            });

            searchCriteria.Add(new Classes.Criterion()
            {
                Header = "Demographics",
                Key = "Special needs",
                Object = "Yes",
                Removable = true
            });

            SearchParms = new SearchParms();
            SearchParms.AddParm("reportCriteria", searchCriteria);

            var guid = System.Guid.NewGuid().ToString();
            hiddenTxtBox.Text = guid;
            Guid = guid;

            Session["Criteria_" + guid] = searchCriteria;
        }
        private void LoadSearchCriteria()
        {

            var yearList = new List<string> { _year };
            var testList = new List<int> { _testId };

            var searchCriteria = new Criteria();

            var demographicParms = new SearchParms();
            demographicParms.AddParm(string.Empty, string.Empty);

            switch (_parent)
            {
                case "Class":
                    searchCriteria.Add(new Criterion
                    {
                        Header = "Class\\Group",
                        Locked = true,
                        Key = "Class",
                        Object = Base.Classes.Class.GetClassByID(DataIntegrity.ConvertToInt(_class)).ClassName,
                        ReportStringKey = "CID",
                        ReportStringVal = _class,
                        Type = "String",
                        Description = "Classes"
                    });

                    break;

                case "School":
                    var school = Base.Classes.School.GetSchoolByID(_parentId);

                    searchCriteria.Add(new Criterion
                    {
                        Header = "School",
                        Locked = true,
                        Key = "School",
                        Object = school.Name,
                        Type = "String"
                    });


                    break;

                case "Teacher":
                    searchCriteria.Add(new Criterion
                    {
                        Header = "Teacher",
                        Locked = true,
                        Key = "Teacher",
                        Object = TeacherDB.GetTeacherByPage(_parentId).TeacherName,
                        Type = "String"
                    });
                    break;
            }

            switch (_level)
            {
                case "Class":
                    searchCriteria.Add(new Criterion
                    {
                        Header = "Class\\Group",
                        Key = "Class",
                        Object = Base.Classes.Class.GetClassByID(DataIntegrity.ConvertToInt(_class)).ClassName,
                        ReportStringKey = "CID",
                        ReportStringVal = _levelId.ToString(CultureInfo.CurrentCulture),
                        Type = "String",
                        Description = "Classes",
                        Locked = false,
                        UIType = UIType.DropDownList,
                        DataSource = Base.Classes.Reports.GetReportingLevels(_level, _levelId, DataIntegrity.ConvertToInt(_parentId), testList, 0),
                        DataTextField = "Name",
                        DataValueField = "ID"
                    });

                    break;

                case "Student":
                    searchCriteria.Add(new Criterion
                    {
                        Header = "Student",
                        Locked = false,
                        Key = "Student",
                        Object = StudentDB.GetStudentByID(_levelId).StudentName,
                        Type = "String",
                        Description = "Classes",
                        UIType = UIType.DropDownList,
                        ReportStringKey = "StudentRecID",
                        ReportStringVal = _levelId.ToString(CultureInfo.CurrentCulture),
                        DataSource = Base.Classes.Reports.GetReportingLevels(_level, _levelId, DataIntegrity.ConvertToInt(_parentId), testList, 0),
                        DataTextField = "Name",
                        DataValueField = "ID"
                    });
                    break;

                case "Teacher":
                    searchCriteria.Add(new Criterion
                    {
                        Header = "Teacher",
                        Key = "Teacher",
                        Object = TeacherDB.GetTeacherByPage(_levelId).TeacherName,
                        ReportStringKey = "TEAID",
                        ReportStringVal = _levelId.ToString(CultureInfo.CurrentCulture),
                        Type = "String",
                        Locked = false,
                        UIType = UIType.DropDownList
                    });
                    break;
            }

            DataTable assessmentListDataTable = Base.Classes.Reports.GetTestList(_level, _levelId,
                DataIntegrity.ConvertToInt(_class), yearList, 0);

            searchCriteria.Add(new Criterion
            {
                Header = "Assessment",
                Locked = assessmentListDataTable.Rows.Count < 2,
                Key = "Assessment",
                Object = _testId == 0 ? "" : Assessment.GetAssessmentByID(_testId).TestName,
                Type = "String",
                ReportStringKey = "TID",
                ReportStringVal = _testId == 0 ? "" : _testId.ToString(CultureInfo.CurrentCulture),
                Description = "2010-2011",
                UIType = UIType.DropDownList,
                DataSource = assessmentListDataTable,
                DataTextField = "Name",
                DataValueField = "ID"
            });

            searchCriteria.Add(new Criterion
            {
                Header = "Type",
                Key = "Type",
                Object = _type,
                ReportStringKey = "TTYPES",
                ReportStringVal = _type,
                Type = "String",
                Description = "type",
                Locked = true
            });

            searchCriteria.Add(new Criterion
            {
                Header = "Year(s)",
                Key = "Year(s)",
                Object = _year,
                ReportStringKey = "TYRS",
                ReportStringVal = _year,
                Type = "String",
                Description = "2010-2011",
                Locked = true
            });

            searchCriteria.Add(new Criterion
            {
                Header = "Terms",
                Key = "Terms",
                Type = "String",
                ReportStringKey = "TTERMS",
                ReportStringVal = _term,
                Description = "List of terms",
                Object = _term,
                Locked = true
            });

            searchCriteria.Add(new Criterion
            {
                Header = "Demographics",
                Key = "Demographics",
                Locked = true,
                Empty = true
            });

            searchCriteria.Add(new Criterion
            {
                Header = "Groups",
                Key = "group",
                Object = _groups,
                ReportStringKey = "GRP",
                ReportStringVal = _groups,
                Type = "String",
                Description = "Groups Filter",
                Locked = true,
                UIType = UIType.DropDownList,
                DataSource = null,
                DataTextField = "DisplayName",
                DataValueField = "RoleId",
                Visible = false
            });

            SearchParms = new SearchParms();
            SearchParms.AddParm("reportCriteria", searchCriteria);

            var guid = Guid.NewGuid().ToString();
            hiddenTxtBox.Text = guid;

            Session["Criteria_" + guid] = searchCriteria;
        }
        private Criteria LoadSearchCriteria()
        {
            var criteria = new Criteria();

            criteria.Add(new Criterion
            {
                Header = "Name",
                Key = "Name",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                UIType = UIType.TextBox,
                Removable = true
            });

            criteria.Add(new Criterion
            {
                Header = "Student ID",
                Key = "StudentID",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                UIType = UIType.TextBox,
                Removable = true
            });

            criteria.Add(new Criterion
            {
                Header = "RTI",
                Key = "RTI",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                UIType = UIType.RTI
            });

            criteria.Add(new Criterion
            {
                Header = "Cluster",
                Key = "Cluster",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                UIType = UIType.CheckBoxList,
                DataSource = Base.Classes.Cluster.GetClusterListForDropDown(UserPage),
                DataTextField = "Cluster",
                DataValueField = "Cluster",
                Removable = true
            });

            // School Type
            var schoolTypeDataTable = new DataTable();
            var schoolTypesForLoggedInUser = SchoolTypeMasterList.GetSchoolTypeListForUser(SessionObject.LoggedInUser);
            schoolTypeDataTable.Columns.Add("SchoolType");

            foreach (var s in schoolTypesForLoggedInUser)
            {
                schoolTypeDataTable.Rows.Add(s);
            }

            criteria.Add(new Criterion
            {
                Header = "School Type",
                Key = "SchoolType",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                UIType = UIType.CheckBoxList,
                DataSource = schoolTypeDataTable,
                DataTextField = "SchoolType",
                DataValueField = "SchoolType",
                DefaultValue = _selectedSchoolType,
                Removable = true,
                ServiceUrl = "../../Services/School.svc/GetAllSchoolsFromSchoolTypes",
                ServiceOnSuccess = "getAllSchoolsFromSchoolTypes",
                Dependencies = new[]
                {
                    Criterion.CreateDependency("SchoolType", "SchoolTypes"),
                    Criterion.CreateDependency("School", "Schools")
                }
            });

            // School
            var schoolDataTable = new DataTable();
            var schoolsForLooggedInUser = SchoolMasterList.GetSchoolsForUser(SessionObject.LoggedInUser);
            schoolDataTable.Columns.Add("Name");
            schoolDataTable.Columns.Add("ID");

            foreach (var s in schoolsForLooggedInUser)
            {
                schoolDataTable.Rows.Add(s.Name, s.ID);
            }

            criteria.Add(new Criterion
            {
                Header = "School",
                Key = "School",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                UIType = UIType.DropDownList,
                DataSource = schoolDataTable,
                DataTextField = "Name",
                DataValueField = "ID",
                Removable = true
            });

            // School
            var gradeDataTable = new DataTable();
            gradeDataTable.Columns.Add("Grade");

            foreach (Grade g in Thinkgate.Base.Classes.Grade.GetGradesForStudents())
            {
                gradeDataTable.Rows.Add(g.DisplayText);
            }

            criteria.Add(new Criterion
            {
                Header = "Grade",
                Key = "Grade",
                Type = "String",
                DataTextField = "Grade",
                DataValueField = "Grade",
                Description = string.Empty,
                Locked = false,
                DefaultValue = _selectedGrade,
                DataSource = gradeDataTable,
                UIType = UIType.CheckBoxList,
                Removable = true
            });

            criteria.Add(new Criterion
            {
                Header = "Demographics",
                Key = "Demographics",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                UIType = UIType.Demographics
            });

            // Enrollment
            var enrollmentDataTable = new DataTable();
            enrollmentDataTable.Columns.Add("Enrollment");

            enrollmentDataTable.Rows.Add("Current Year");
            enrollmentDataTable.Rows.Add("Prior Years");
            enrollmentDataTable.Rows.Add("All Years");


            criteria.Add(new Criterion
            {
                Header = "Enrollment",
                Key = "Enrollment",
                Type = "String",
                Description = string.Empty,
                DefaultValue = enrollmentDataTable.Rows[0].ItemArray[0].ToString(),
                DataSource = enrollmentDataTable,
                Locked = false,
                DataTextField = "Enrollment",
                DataValueField = "Enrollment",
                UIType = UIType.DropDownList
            });

            return criteria;
        }
        private Criteria LoadSearchCriteria()
        {
            var criteria = new Criteria();

            #region Criterion: Grade
            var gradesDT = new DataTable();
            var gradesByCurrCourses =
                Thinkgate.Base.Classes.CourseMasterList.GetClassCoursesForUser(SessionObject.LoggedInUser).GetGradeList();
            gradesDT.Columns.Add("Grade");

            foreach (var g in gradesByCurrCourses)
            {
                gradesDT.Rows.Add(g.DisplayText);
            }

            criteria.Add(new Criterion
            {
                Header = "Grade",
                Key = "Grade",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "Grade",
                DataValueField = "Grade",
                Removable = true,
                DataSource = gradesDT,
                UIType = UIType.CheckBoxList,
                ServiceUrl = "../../Services/GradeSubjectCourse.svc/GetCurrSubjectsAndCourses",
                ServiceOnSuccess = "getCurrGradesSubjectsAndCourses",
                Dependencies = new[]
                {
                    Criterion.CreateDependency("Grade", "Grades"),
                    Criterion.CreateDependency("Subject", "Subjects"),
                    Criterion.CreateDependency("Curriculum", "Courses")
                }
            });
            #endregion

            #region Criterion: Subject
            var subjectsDT = new DataTable();
            var subjectsByCurrCourses =
                Thinkgate.Base.Classes.CourseMasterList.GetClassCoursesForUser(SessionObject.LoggedInUser).GetSubjectList();
            subjectsDT.Columns.Add("Subject");

            foreach (var subjectText in subjectsByCurrCourses.Select(s => s.DisplayText).Distinct())
            {
                subjectsDT.Rows.Add(subjectText);
            }

            criteria.Add(new Criterion
            {
                Header = "Subject",
                Key = "Subject",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "Subject",
                DataValueField = "Subject",
                Removable = true,
                DataSource = subjectsDT,
                UIType = UIType.CheckBoxList,
                ServiceUrl = "../../Services/GradeSubjectCourse.svc/GetCurrCourses",
                ServiceOnSuccess = "getCurrCoursesFromSubjects",
                Dependencies = new[]
                {
                    Criterion.CreateDependency("Grade", "Grades"),
                    Criterion.CreateDependency("Subject", "Subjects"),
                    Criterion.CreateDependency("Curriculum", "Courses")
                }
            });
            #endregion

            #region Criterion: Course
            var currCourses =
                Thinkgate.Base.Classes.CourseMasterList.GetCurrCoursesForUser(SessionObject.LoggedInUser);
            var currcourseDt = new DataTable();
            currcourseDt.Columns.Add("CourseName");
            currcourseDt.Columns.Add("CourseID");
            currCourses.Sort((x, y) => String.Compare(x.Grade.DisplayText, y.Grade.DisplayText));
            foreach (var c in currCourses)
            {
                currcourseDt.Rows.Add(c.Grade + "-" + c.CourseName, c.ID);
            }

            criteria.Add(new Criterion
            {
                Header = "Course",
                Key = "Curriculum",
                DataSource = currcourseDt,
                DataTextField = "CourseName",
                DataValueField = "CourseID",
                Locked = false,
                Removable = true,
                Description = string.Empty,
                Type = "String",
                UIType = UIType.DropDownList
            });
            #endregion

            #region Criterion: Category
            criteria.Add(new Criterion
            {
                Header = "Category",
                Key = "Category",
                Type = "String",
                Description = string.Empty,
                Locked = true,
                Removable = false,
                Object = Category,
                UIType = UIType.DropDownList,
                DataSource = Thinkgate.Base.Classes.Assessment.GetCategories(SessionObject.LoggedInUser.UserId),
                DataTextField = "TestCategory",
                DataValueField = "TestCategory"
            });
            #endregion

            #region Criterion: Type
            //CREATE TESTTYPE DT FOR DATASOURCE
            var typeDT = new DataTable();

            typeDT.Columns.Add("TypeText");
            typeDT.Columns.Add("TypeVal");

            
            List<string> typeListTable = new List<string>();
            dictionaryItem = Base.Classes.TestTypes.TypeWithSecureFlag(Category,true);
            isSecuredFlag = dictionaryItem != null && dictionaryItem.Where(x => Boolean.Parse(x.Value.ToString())).Select(y => y.Key).ToList().Distinct().Any();
            if (dictionaryItem != null && dictionaryItem.Select(c => c.Key).Any())
            {
                if (isSecuredFlag && UserHasPermission(Permission.Access_SecureTesting))
                    typeListTable = dictionaryItem.Select(c => c.Key).ToList();
                else
                    typeListTable = dictionaryItem.Where(c => !c.Value).Select(c => c.Key).ToList();
            }
            foreach (var testType in typeListTable)
            {
                typeDT.Rows.Add(testType, testType);
            }

            criteria.Add(new Criterion
            {
                Header = "Type",
                Key = "Type",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                UIType = UIType.CheckBoxList,
                DataSource = typeDT,
                DataTextField = "TypeText",
                DataValueField = "TypeVal",
                Removable = true
            });
            #endregion

            DataTable terms = new DataTable();
            terms.Columns.Add("Term");

            foreach (var str in Thinkgate.Base.Classes.Assessment.GetTerms())
            {
                // this is ridiculous, but will ultimatly be replaced so I'm adding this in so I can store the terms in cache as a list, not a datatable
                terms.Rows.Add(str);
            }

            #region Criterion: Terms
            criteria.Add(new Criterion
            {
                Header = "Terms",
                Key = "Terms",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                UIType = UIType.CheckBoxList,
                DataSource = terms,
                DataTextField = "Term",
                DataValueField = "Term",
                Removable = true
            });
            #endregion

            #region Criterion: Status
            var statusDT = new DataTable();
            var defaultStatusValue = "All";

            statusDT.Columns.Add("StatusText");
            statusDT.Columns.Add("StatusVal");

            if (Category.ToLower() == "district" && !UserHasPermission(Permission.Edit_AssessmentDistrict_Unproofed)
                || Category.ToLower() == "state" && !(DistrictParms.LoadDistrictParms().isStateSystem))
            {
                defaultStatusValue = "Proofed";
                statusDT.Rows.Add("Proofed", "Proofed");
            }
            else
            {
                statusDT.Rows.Add("All", "All");
                statusDT.Rows.Add("Proofed", "Proofed");
                statusDT.Rows.Add("Unproofed", "Unproofed");
            }

            criteria.Add(new Criterion
            {
                Header = "Status",
                Key = "Status",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                UIType = UIType.DropDownList,
                DataSource = statusDT,
                DataTextField = "StatusText",
                DataValueField = "StatusVal",
                Removable = false,
                Object = defaultStatusValue,
                ReportStringVal = defaultStatusValue
            });
            #endregion

            #region Criterion: Text Search
            var textSearchDT = new DataTable();

            textSearchDT.Columns.Add("SearchFieldKey");

            textSearchDT.Rows.Add("Any Words");
            textSearchDT.Rows.Add("All Words");
            textSearchDT.Rows.Add("Exact Phrase");
            textSearchDT.Rows.Add("Keywords");
            textSearchDT.Rows.Add("Author");

            criteria.Add(new Criterion
            {
                Header = "Text Search",
                Key = "TextSearch",
                Type = "String",
                UIType = UIType.AssessmentTextSearch,
                DataSource = textSearchDT,
                DataTextField = "SearchFieldKey",
                DataValueField = "SearchFieldKey",
                Removable = true
            });
            #endregion

            #region Criterion: Year
            criteria.Add(new Criterion
            {
                Header = "Year",
                Key = "Year",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                UIType = UIType.DropDownList,
                DataSource = Thinkgate.Base.Classes.Assessment.GetYears(),
                DataTextField = "Year",
                DataValueField = "Year",
                Removable = false,
                Object = DistrictParms.LoadDistrictParms().Year
            });
            #endregion

            #region Criterion: Created Date
            criteria.Add(new Criterion
            {
                Header = "Created Date",
                Key = "CreatedDate",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                UIType = UIType.DatePicker,
                Removable = true,
                IsHeader = true
            });

            criteria.Add(new Criterion
            {
                Header = "Created Date",
                Key = "CreatedDateStart",
                Type = "String",
                Description = string.Empty,
                IsHeader = false,
                Removable = true

            });

            criteria.Add(new Criterion
            {
                Header = "Created Date",
                Key = "CreatedDateEnd",
                Type = "String",
                Description = string.Empty,
                IsHeader = false,
                Removable = true

            });
            #endregion
            return criteria;
        }
        private Criteria LoadLRMISearchCriteria()
        {
            var criteria = new Criteria();

            #region Criterion: Grade
            var gradesDT = new DataTable();
            var gradesByCurrCourses =
                CourseMasterList.GetClassCoursesForUser(SessionObject.LoggedInUser).GetGradeList();
            gradesDT.Columns.Add("Grades");

            foreach (var g in gradesByCurrCourses)
            {
                gradesDT.Rows.Add(g.DisplayText);
            }

            criteria.Add(new Criterion
            {
                Header = "Grades",
                Key = "Grades",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "Grades",
                DataValueField = "Grades",
                Removable = true,
                DataSource = gradesDT,
                UIType = UIType.CheckBoxList,
                ServiceUrl = "../../Services/GradeSubjectCourse.svc/GetCurrSubjectsAndCourses",
                ServiceOnSuccess = "getCurrGradesSubjectsAndCourses",
                Dependencies = new[]
                {
                    Criterion.CreateDependency("Grades", "Grades"),
                    Criterion.CreateDependency("Subjects", "Subjects")
                }
            });
            #endregion

            #region Criterion: Subject
            var subjectsDT = new DataTable();
            var subjectsByCurrCourses =
                Thinkgate.Base.Classes.CourseMasterList.GetClassCoursesForUser(SessionObject.LoggedInUser).GetSubjectList();
            subjectsDT.Columns.Add("Subjects");

            foreach (var subjectText in subjectsByCurrCourses.Select(s => s.DisplayText).Distinct())
            {
                subjectsDT.Rows.Add(subjectText);
            }

            criteria.Add(new Criterion
            {
                Header = "Educational Subject",
                Key = "Subjects",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "Subjects",
                DataValueField = "Subjects",
                Removable = true,
                DataSource = subjectsDT,
                UIType = UIType.CheckBoxList,
                ServiceUrl = "../../Services/GradeSubjectCourse.svc/GetCurrCourses",
                ServiceOnSuccess = "getCurrCoursesFromSubjects",
                Dependencies = new[]
                {
                    Criterion.CreateDependency("Grades", "Grades"),
                    Criterion.CreateDependency("Subject", "Subjects"),
                    Criterion.CreateDependency("Curriculum", "Courses")
                }
            });
            #endregion

            criteria.Add(new Criterion
            {
                Header = "Learning Resource:",
                Key = "LearningResource",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "Description",
                DataValueField = "Description",
                Removable = true,
                DataSource = dtLearningResources,
                UIType = UIType.CheckBoxList,
                ServiceUrl = null,
                ServiceOnSuccess = null,
                Dependencies = null
            });

            criteria.Add(new Criterion
            {
                Header = "Educational Use",
                Key = "EducationalUse",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "Description",
                DataValueField = "Description",
                Removable = false,
                DataSource = dtEducationalUse,
                UIType = UIType.CheckBoxList,
                ServiceUrl = null,
                ServiceOnSuccess = null,
                Dependencies = null,
                DefaultValue = ((DataRow)dtEducationalUse.Rows[0])["Description"].ToString()
            });

            criteria.Add(new Criterion
            {
                Header = "End User",
                Key = "EndUser",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "Description",
                DataValueField = "Description",
                Removable = false,
                DataSource = dtEndUsers,
                UIType = UIType.CheckBoxList,
                ServiceUrl = null,
                ServiceOnSuccess = null,
                Dependencies = null,
                DefaultValue = ((DataRow)dtEndUsers.Rows[0])["Description"].ToString()
            });

            criteria.Add(new Criterion
            {
                Header = "Creator",
                Key = "Creator",
                Locked = false,
                Removable = true,
                Description = string.Empty,
                Type = "String",
                UIType = UIType.TextBox
            });

            criteria.Add(new Criterion
            {
                Header = "Publisher",
                Key = "Publisher",
                Locked = false,
                Removable = true,
                Description = string.Empty,
                Type = "String",
                UIType = UIType.TextBox
            });

            criteria.Add(new Criterion
            {
                Header = "Usage Rights",
                Key = "UsageRights",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "SelectDescription",
                DataValueField = "SelectDescription",
                Removable = true,
                DataSource = dtCreativeCommons,
                UIType = UIType.CheckBoxList,
                ServiceUrl = null,
                ServiceOnSuccess = null,
                Dependencies = null
            });

            criteria.Add(new Criterion
            {
                Header = "Media Type",
                Key = "MediaType",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "Description",
                DataValueField = "Description",
                Removable = true,
                DataSource = dtMediaTypes,
                UIType = UIType.CheckBoxList,
                ServiceUrl = null,
                ServiceOnSuccess = null,
                Dependencies = null
            });

            criteria.Add(new Criterion
            {
                Header = "Language",
                Key = "Language",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "Description",
                DataValueField = "Description",
                Removable = true,
                DataSource = dtLanguages,
                UIType = UIType.CheckBoxList,
                ServiceUrl = null,
                ServiceOnSuccess = null,
                Dependencies = null
            });

            criteria.Add(new Criterion
            {
                Header = "Age Appropriate",
                Key = "AgeAppropriate",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "Description",
                DataValueField = "Description",
                Removable = true,
                DataSource = dtAgeAppropriate,
                UIType = UIType.CheckBoxList,
                ServiceUrl = null,
                ServiceOnSuccess = null,
                Dependencies = null
            });

            //criteria.Add(new Criterion
            //{
            //    Header = "Time Required",
            //    Key = "Duration",
            //    Type = "String",
            //    Description = string.Empty,
            //    Locked = false,
            //    Removable = true,
            //    UIType = UIType.Duration
            //});

            //Assessed (Standard) search
            //criteria.Add(new Criterion
            //{
            //    UIType = UIType.GradeSubjectStandards,
            //    Header = "Assessed",
            //    Key = "Assessed",
            //    Locked = false,
            //    Removable = true,
            //    Description = string.Empty,
            //    Type = "String"
            //});

            criteria.Add(new Criterion
            {
                Header = "Text Complexity",
                Key = "TextComplexity",
                Locked = false,
                Removable = true,
                Description = string.Empty,
                Type = "String",
                UIType = UIType.TextBox
            });

            criteria.Add(new Criterion
            {
                Header = "Reading Level",
                Key = "ReadingLevel",
                Locked = false,
                Removable = true,
                Description = string.Empty,
                Type = "String",
                UIType = UIType.TextBox
            });

            criteria.Add(new Criterion
            {
                Header = "Interactivity Type:",
                Key = "Activity",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "Description",
                DataValueField = "Description",
                Removable = true,
                DataSource = dtActivity,
                UIType = UIType.CheckBoxList,
                ServiceUrl = null,
                ServiceOnSuccess = null,
                Dependencies = null
            });

            return criteria;
        }
        private void LoadCriteria()
        {
            var ctlReportCriteria = (Thinkgate.Controls.Reports.ReportCriteria)LoadControl("~/Controls/Reports/ReportCriteria.ascx");
            ctlReportCriteria.ID = "ctlItemAnalysisCriteria";

            if (Tile.TileParms.GetParm("CriteriaGUID") == null) return;
            Guid = (string)Tile.TileParms.GetParm("CriteriaGUID");
            guidValue.Value = Guid;

            if (Session["Criteria_" + Guid] == null) return;
            _reportCriteria = Guid == null ? null : (Criteria)Session["Criteria_" + Guid];

            ctlReportCriteria.Guid = Guid;
            ctlReportCriteria.ReloadReport += RemoteReportReload;
            criteriaPlaceholder.Controls.Add(ctlReportCriteria);
        }
        private Criteria LoadSearchCriteria()
        {
            var criteria = new Criteria();

            DataTable dtUserName = GetUserNames();
            criteria.Add(new Criterion
            {
                Header = "Name",
                Key = "UserFullName",
                DataTextField = "UserFullName",
                DataValueField = "UserFullName",
                Type = "String",
                DataSource = dtUserName,
                Description = string.Empty,
                Locked = false,
                Removable = true,
                UIType = UIType.DropDownList
            });

            DataTable dtUserId = GetUserIds();
            criteria.Add(new Criterion
            {
                Header = "User ID",
                Key = "UserID",
                DataTextField = "UserID",
                DataValueField = "UserID",
                Type = "String",
                DataSource = dtUserId,
                Description = string.Empty,
                Locked = false,
                Removable = true,
                UIType = UIType.DropDownList
            });

            DataTable dtRoleName = GetRoleNames();
            criteria.Add(new Criterion
            {
                Header = "User Type",
                Key = "RoleName",
                DataTextField = "RoleName",
                DataValueField = "RoleName",
                Type = "String",
                DataSource = dtRoleName,
                Description = string.Empty,
                Locked = false,
                Removable = true,
                UIType = UIType.CheckBoxList
            });

            DataTable dtCluster = Thinkgate.Base.Classes.SchoolMasterList.GetClustersForUser(SessionObject.LoggedInUser).ToDataTable("Cluster");
            criteria.Add(new Criterion
            {
                Header = "Cluster",
                Key = "Cluster",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "Cluster",
                DataValueField = "Cluster",
                Removable = true,
                DataSource = dtCluster,
                UIType = UIType.CheckBoxList
            });

            DataTable dtSchoolType = Thinkgate.Base.Classes.SchoolMasterList.GetSchoolTypesForUser(SessionObject.LoggedInUser).ToDataTable("Type");
            criteria.Add(new Criterion
            {
                Header = "School Type",
                Key = "SchoolType",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "Type",
                DataValueField = "Type",
                Removable = true,
                DataSource = dtSchoolType,
                UIType = UIType.CheckBoxList,
                ServiceUrl = "../../Services/School.svc/GetAllSchoolsFromSchoolTypes",
                ServiceOnSuccess = "getAllSchoolsFromSchoolTypes",
                Dependencies = new[]
                {
                    Criterion.CreateDependency("SchoolType", "SchoolTypes"),
                    Criterion.CreateDependency("School", "Schools")
                }
            });

            // School
            var schoolDataTable = new DataTable();
            var schoolsForLooggedInUser = SchoolMasterList.GetSchoolsForUser(SessionObject.LoggedInUser);
            schoolDataTable.Columns.Add("Name");
            schoolDataTable.Columns.Add("ID");

            foreach (var s in schoolsForLooggedInUser)
            {
                schoolDataTable.Rows.Add(s.Name, s.ID);
            }

            criteria.Add(new Criterion
            {
                Header = "School",
                Key = "School",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "Name",
                DataValueField = "ID",
                Removable = true,
                DataSource = schoolDataTable,
                UIType = UIType.DropDownList
            });

            return criteria;
        }
        private void LoadSearchCriteria()
        {
            _guid = Guid.NewGuid().ToString();
            hiddenTxtBox.Text = _guid;

            //Session["Criteria_" + _guid] = searchCriteria;
            return;
            var yearList = new List<string> { this._year };

            var searchCriteria = new Criteria();

            #region Criterion: Assessment

            var assessmentTypesTable = Thinkgate.Base.Classes.Reports.GetTestTypesForStateReporting();

            //CLEANUP: WSH - Need to strip out all of this old critiera stuff once the new fct and proficiency stuff is verified.

            /*
             * WSH: 8/20/12 - removed for Sarasota demo per meeting request - 
              var _assessmentType = (assessmentTypesTable.Rows.Count > 0) ? assessmentTypesTable.Rows[0]["Type"].ToString() : "";
                foreach (DataRow row in assessmentTypesTable.Rows)
            {
                if (row["Type"].ToString() == "FCAT2")
                {
                    _assessmentType = "FCAT2";
                    break;
                }
                
            }
              */

            searchCriteria.Add(new Criterion()
            {
                Header = "Assessment",
                Locked = false,
                Key = "TestType",
                Object = "",
                Type = "String",
                ReportStringKey = "TID",
                ReportStringVal = "",
                UIType = UIType.DropDownList,
                DataSource = assessmentTypesTable,
                DataTextField = "Type",
                DataValueField = "Type",
                IsRequired = true/*,
                DefaultValue = _assessmentType*/
            });

            #endregion

            #region Criterion: Year

            var yearsTable = Thinkgate.Base.Classes.Reports.GetYearsForStateReporting();
            // WSH: 8/20/12 - removed for Sarasota demo per meeting request - if (yearsTable.Rows.Count > 0) _year = yearsTable.Rows[0]["Year"].ToString();
            searchCriteria.Add(new Classes.Criterion()
            {
                Key = "Year",
                Header = "Year",
                Type = "String",
                Removable = true,
                Locked = false,
                IsHeader = true,
                DataTextField = "Year",
                DataValueField = "Year",
                UIType = UIType.DropDownList,
                DataSource = yearsTable,/*
                DefaultValue = _year,*/
                IsRequired = true,
                ServiceUrl = ResolveUrl("~/Services/GradeSubjectCourse.svc/GetTeachersBySchools"),
                ServiceOnSuccess = "getTeachers",
                Dependencies = new[]
                {
                    Criterion.CreateDependency("Grade", "Grades"),
                    Criterion.CreateDependency("School", "Schools"),
                    Criterion.CreateDependency("Teacher", "Teachers"),
                    Criterion.CreateDependency("Year", "Years")
                }
            });

            #endregion

            #region Criterion: Grade
            searchCriteria.Add(new Criterion
            {
                Header = "Grade",
                Key = "Grade",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataSource = Thinkgate.Base.Classes.Reports.GetGradesForStateReporting(),
                UIType = UIType.DropDownList,
                Removable = true,
                IsRequired = true,
                ServiceUrl = ResolveUrl("~/Services/GradeSubjectCourse.svc/GetSchoolsAndTeachersByGrade"),
                ServiceOnSuccess = "getSchoolsAndTeachers",
                Dependencies = new[]
                {
                    Criterion.CreateDependency("Grade", "Grades"),
                    Criterion.CreateDependency("School", "Schools"),
                    Criterion.CreateDependency("Teacher", "Teachers"),
                    Criterion.CreateDependency("Year", "Years")
                }
            });

            #endregion

            #region Criterion: Subject

            searchCriteria.Add(new Criterion
            {
                Header = "Subject",
                Key = "Subject",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "Subject",
                DataValueField = "Subject",
                Removable = true,
                DataSource = Thinkgate.Base.Classes.Reports.GetSubjectsForStateReporting(),
                UIType = UIType.DropDownList,
                IsRequired = true
            });
            #endregion

            #region Criterion: School
            var schoolDataTable = new System.Data.DataTable();
            var schoolsForLoggedInUser = SchoolMasterList.GetSchoolsForUser(SessionObject.LoggedInUser);
            schoolsForLoggedInUser = schoolsForLoggedInUser.FindAll(s => s.Grades.IndexOf("03") > -1);
            schoolDataTable.Columns.Add("Name");
            schoolDataTable.Columns.Add("ID");

            foreach (var s in schoolsForLoggedInUser)
            {
                schoolDataTable.Rows.Add(s.Name, s.ID);
            }

            searchCriteria.Add(new Criterion
            {
                Header = "School",
                Key = "School",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "Name",
                DataValueField = "ID",
                Removable = true,
                DataSource = schoolDataTable,
                UIType = UIType.DropDownList,
                ServiceUrl = ResolveUrl("~/Services/GradeSubjectCourse.svc/GetTeachersBySchools"),
                ServiceOnSuccess = "getTeachers",
                Dependencies = new[]
                {
                    Criterion.CreateDependency("Grade", "Grades"),
                    Criterion.CreateDependency("School", "Schools"),
                    Criterion.CreateDependency("Teacher", "Teachers"),
                    Criterion.CreateDependency("Year", "Years")
                }
            });

            #endregion

            #region Criterion: Teacher

            var teachers = new System.Data.DataTable();//Base.Classes.Teacher.GetTeachersBySchoolsDT(schoolsForLoggedInUser.Select(s => s.ID).ToList());
            teachers.Columns.Add("ID");
            teachers.Columns.Add("TeacherName");

            searchCriteria.Add(new Criterion
            {
                Header = "Teacher",
                Key = "Teacher",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "TeacherName",
                DataValueField = "ID",
                Removable = true,
                DataSource = teachers,
                UIType = UIType.DropDownList

            });

            #endregion

            #region Criterion: Class
            var classCourseList = Thinkgate.Base.Classes.CourseMasterList.GetClassCoursesForUser(SessionObject.LoggedInUser);
            List<Int32> schoolIDs = new List<int>();
            schoolIDs.Add(0);
            var classesForLooggedInUser = Thinkgate.Base.Classes.Class.SearchClasses(classCourseList, null, schoolIDs, "");

            searchCriteria.Add(new Criterion
            {
                Header = "Class",
                Key = "Class",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "ClassName",
                DataValueField = "ClassID",
                Removable = true,
                DataSource = classesForLooggedInUser,
                UIType = UIType.DropDownList
            });
            #endregion

            #region Criterion: Demographics
            searchCriteria.Add(new Criterion()
            {
                Header = "Demographics",
                Key = "Demographics",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                UIType = UIType.Demographics
            });

            #endregion

            SearchParms = new SearchParms();
            SearchParms.AddParm("reportCriteria", searchCriteria);

            _guid = Guid.NewGuid().ToString();
            hiddenTxtBox.Text = _guid;

            Session["Criteria_" + _guid] = searchCriteria;
        }
 protected void RemoteReportReload(object sender, EventArgs e)
 {
     Session["ItemAnalysisData_" + AnalysisType + "_" + Guid] = null;
     if (Session["Criteria_" + Guid] == null) return;
     _reportCriteria = Guid == null ? null : (Criteria)Session["Criteria_" + Guid];
     LoadReport();
 }
        private Criteria LoadSearchCriteria()
        {
            var criteria = new Criteria();

            #region Criterion: Cluster
            DataTable dtCluster = Thinkgate.Base.Classes.SchoolMasterList.GetClustersForUser(SessionObject.LoggedInUser).ToDataTable("Cluster");
            criteria.Add(new Criterion
            {
                Header = "Cluster",
                Key = "Cluster",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "Cluster",
                DataValueField = "Cluster",
                Removable = true,
                DataSource = dtCluster,
                UIType = UIType.CheckBoxList

            });
            #endregion

            #region Criterion: School type
            var schoolTypeDataTable = new DataTable();
            var schoolTypesForLoggedInUser = SchoolTypeMasterList.GetSchoolTypeListForUser(SessionObject.LoggedInUser);
            schoolTypeDataTable.Columns.Add("SchoolType");

            foreach (var s in schoolTypesForLoggedInUser)
            {
                schoolTypeDataTable.Rows.Add(s);
            }

            criteria.Add(new Criterion
            {
                Header = "School Type",
                Key = "SchoolType",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                Removable = true,
                DataSource = schoolTypeDataTable,
                UIType = UIType.CheckBoxList,
                DataTextField = "SchoolType",
                DataValueField = "SchoolType",
                DefaultValue = _selectedSchoolType,
                ServiceUrl = "../../Services/School.svc/GetAllSchoolsFromSchoolTypes",
                ServiceOnSuccess = "getAllSchoolsFromSchoolTypes",
                Dependencies = new[]
                {
                    Criterion.CreateDependency("SchoolType", "SchoolTypes"),
                    Criterion.CreateDependency("School", "Schools")
                }
            });
            #endregion

            #region Criterion: School
            var schoolDataTable = new DataTable();
            var schoolsForLooggedInUser = SchoolMasterList.GetSchoolsForUser(SessionObject.LoggedInUser);

            var result = schoolsForLooggedInUser.Select(e => new ComparerSchools { Name = e.Name, ID = e.ID }).ToList();

            result.Sort(new AlphanumComparator());

            schoolDataTable.Columns.Add("Name");
            schoolDataTable.Columns.Add("ID");

            foreach (var s in result)
            {
                schoolDataTable.Rows.Add(s.Name, s.ID);
            }

            criteria.Add(new Criterion
            {
                Header = "School",
                Key = "School",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                UIType = UIType.DropDownList,
                DataSource = schoolDataTable,
                DataTextField = "Name",
                DataValueField = "ID",
                Removable = true
            });
            #endregion

            #region Criterion: School ID
            DataTable dtSchoolId = Thinkgate.Base.Classes.SchoolMasterList.GetSchoolIdsForUser(SessionObject.LoggedInUser).ToDataTable("SchoolID");
            criteria.Add(new Criterion
            {
                Header = "School ID",
                Key = "SchoolID",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                Removable = true,
                Object = Category,
                UIType = UIType.DropDownList,
                DataSource = dtSchoolId,
                DataTextField = "SchoolID",
                DataValueField = "SchoolID"
            });
            #endregion

            return criteria;
        }
 private void LoadCriteria()
 {
     _reportCriteria = Guid == null ? null : (Criteria)Session["Criteria_" + Guid];
 }
        private void LoadCriteria()
        {
            var ctlReportCriteria = (Thinkgate.Controls.Reports.ReportCriteria)LoadControl("~/Controls/Reports/ReportCriteria.ascx");
            ctlReportCriteria.ID = "ctlAtRiskStandardCriteria";

            if (Tile.TileParms.GetParm("CriteriaGUID") == null) return;

            Guid = (!string.IsNullOrEmpty(_guidforPDFView)) ? _guidforPDFView : (string)Tile.TileParms.GetParm("CriteriaGUID");

            if (Session["Criteria_" + Guid] == null) return;

            ctlReportCriteria.Guid = Guid;
            ctlReportCriteria.ReloadReport += RemoteReportReload;
            criteriaPlaceholder.Controls.Add(ctlReportCriteria);

            _level = Request.QueryString["level"];
            _levelID = Request.QueryString["levelID"];
            _testID = Request.QueryString["testID"];
            _parent = Request.QueryString["parent"];
            _parentID = Request.QueryString["parentID"];
            _reportCriteria = (Criteria)Session["Criteria_" + Guid];
            _criteriaOverrides = ((Criteria)_reportCriteria).GetCriteriaOverrideString();
        }
 protected void RemoteReportReload(object sender, EventArgs e)
 {
     if (string.IsNullOrEmpty(Guid)) KillReport("No GUID for report criteria. <br/> Contact support.");
     if (Session["Criteria_" + Guid] == null) KillReport("Criteria session object lost. <br/> Contact support.");
     _reportCriteria = (Criteria)Session["Criteria_" + Guid];
     _criteriaOverrides = ((Criteria)_reportCriteria).GetCriteriaOverrideString();
     LoadReport();
 }
        private Criteria LoadSearchCriteria()
        {
            var criteria = new Criteria();
            #region Criterion: Grade
            var gradesDT = new DataTable();
            var gradesByCurrCourses = CourseMasterList.GetClassCoursesForUser(SessionObject.LoggedInUser).GetGradeList();
            gradesDT.Columns.Add("Grade");

            foreach (var g in gradesByCurrCourses)
            {
                gradesDT.Rows.Add(g.DisplayText);
            }

            criteria.Add(new Criterion
            {
                Header = "Grade",
                Key = "Grade",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "Grade",
                DataValueField = "Grade",
                Removable = true,
                DataSource = gradesDT,
                UIType = UIType.CheckBoxList,
                ServiceUrl = "../../Services/GradeSubjectCourse.svc/GetClassSubjectsAndCourses",
                ServiceOnSuccess = "getClassGradesSubjectsAndCourses",
                Dependencies = new[]
								{
										Criterion.CreateDependency("Grade", "Grades"),
										Criterion.CreateDependency("Subject", "Subjects"),
										Criterion.CreateDependency("ClassCourses", "Courses")
								}
            });
            #endregion

            #region Criterion: Subject
            var subjectsDT = new DataTable();
            var subjectsByCurrCourses = CourseMasterList.GetClassCoursesForUser(SessionObject.LoggedInUser).GetSubjectList();
            subjectsDT.Columns.Add("Subject");

            foreach (var s in subjectsByCurrCourses)
            {
                subjectsDT.Rows.Add(s.DisplayText);
            }

            criteria.Add(new Criterion
            {
                Header = "Subject",
                Key = "Subject",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "Subject",
                DataValueField = "Subject",
                Removable = true,
                DataSource = subjectsDT,
                UIType = UIType.CheckBoxList,
                ServiceUrl = "../../Services/GradeSubjectCourse.svc/GetClassCourses",
                ServiceOnSuccess = "getClassCoursesFromSubjects",
                Dependencies = new[]
								{
										Criterion.CreateDependency("Grade", "Grades"),
										Criterion.CreateDependency("Subject", "Subjects"),
										Criterion.CreateDependency("ClassCourses", "Courses")
								}
            });
            #endregion

            #region Criterion: Course
            var curriculumCourses = CourseMasterList.GetClassCoursesForUser(SessionObject.LoggedInUser);
            var courseDt = new DataTable();
            courseDt.Columns.Add("CourseName");
            courseDt.Columns.Add("CourseID");

            foreach (var c in curriculumCourses)
            {
                courseDt.Rows.Add(c.Grade + "-" + c.CourseName, c.ID);
            }

            criteria.Add(new Criterion
            {
                Header = "Course",
                Key = "ClassCourses",
                DataSource = courseDt,
                DataTextField = "CourseName",
                DataValueField = "CourseID",
                Locked = false,
                Removable = true,
                Description = string.Empty,
                Type = "String",
                UIType = UIType.DropDownList
            });
            #endregion

            #region Criterion: Cluster
            DataTable dtCluster = Thinkgate.Base.Classes.SchoolMasterList.GetClustersForUser(SessionObject.LoggedInUser).ToDataTable("Cluster");
            criteria.Add(new Criterion
            {
                Header = "Cluster",
                Key = "Cluster",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "Cluster",
                DataValueField = "Cluster",
                Removable = true,
                DataSource = dtCluster,
                UIType = UIType.CheckBoxList
            });
            #endregion

            #region Criterion: School type
            var schoolTypeDataTable = new DataTable();
            var schoolTypesForLoggedInUser = SchoolTypeMasterList.GetSchoolTypeListForUser(SessionObject.LoggedInUser);
            schoolTypeDataTable.Columns.Add("SchoolType");

            foreach (var s in schoolTypesForLoggedInUser)
            {
                schoolTypeDataTable.Rows.Add(s);
            }

            criteria.Add(new Criterion
            {
                Header = "School Type",
                Key = "SchoolType",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "SchoolType",
                DataValueField = "SchoolType",
                DefaultValue = _selectedSchoolType,
                Removable = true,
                DataSource = schoolTypeDataTable,
                UIType = UIType.CheckBoxList,
                ServiceUrl = "../../Services/School.svc/GetAllSchoolsFromSchoolTypes",
                ServiceOnSuccess = "getAllSchoolsFromSchoolTypes",
                Dependencies = new[]
								{
										Criterion.CreateDependency("SchoolType", "SchoolTypes"),
										Criterion.CreateDependency("School", "Schools")
								}
            });
            #endregion

            #region Criterion: School
            var schoolDataTable = new DataTable();
            var schoolsForLooggedInUser = SchoolMasterList.GetSchoolsForUser(SessionObject.LoggedInUser);
            schoolDataTable.Columns.Add("Name");
            schoolDataTable.Columns.Add("ID", typeof(Int32));

            foreach (var s in schoolsForLooggedInUser)
            {
                schoolDataTable.Rows.Add(s.Name, s.ID);
            }

            criteria.Add(new Criterion
            {
                Header = "School",
                Key = "School",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "Name",
                DataValueField = "ID",
                Removable = true,
                DataSource = schoolDataTable,
                UIType = UIType.CheckBoxList
            });
            #endregion

            #region Criterion: Teacher

            criteria.Add(new Criterion
            {
                Header = "Teacher",
                Key = "AssessmentAssignmentTeacher",
                //DataTextField = "CourseName",
                //DataValueField = "CourseID",
                Locked = false,
                Removable = true,
                Description = string.Empty,
                Type = "String",
                UIType = UIType.TextBox

            });
            #endregion

            #region Criterion: Semester
            criteria.Add(new Criterion
            {
                Header = "Semester",
                Key = "Semester",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                Removable = true,
                DataTextField = "Semester",
                DataValueField = "Semester",
                DataSource = Thinkgate.Base.Classes.Semester.GetSemesterListForDropDown(),
                UIType = UIType.DropDownList
            });
            #endregion

            #region Criterion: Period

            criteria.Add(new Criterion
            {
                Header = "Period",
                Key = "Period",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                DataTextField = "Period",
                DataValueField = "Period",
                Removable = true,
                DataSource = Thinkgate.Base.Classes.PeriodMasterList.GetPeriodDataTableForDropDown("Period"),
                UIType = UIType.CheckBoxList

            });


            #endregion

            #region Criterion: Section
            criteria.Add(new Criterion
            {
                Header = "Section",
                Key = "Section",
                Type = "String",
                Description = string.Empty,
                Locked = false,
                Removable = true,
                UIType = UIType.TextBox
            });
            #endregion

            #region Criterion: Block

            criteria.Add(new Criterion
            {
                Header = "Block",
                Key = "Block",
                //DataTextField = "CourseName",
                //DataValueField = "CourseID",
                Locked = false,
                Removable = true,
                Description = string.Empty,
                Type = "String",
                UIType = UIType.TextBox

            });
            #endregion
            return criteria;
        }