public List <T> GetList <T>(T t)
 {
     if (t is Course)
     {
         Course   course  = t as Course;
         List <T> courses = (List <T>)(object) GetCourses(course);
         return(courses);
     }
     else if (t is Lecturer)
     {
         Lecturer lecturer  = t as Lecturer;
         List <T> lecturers = (List <T>)(object) GetLecturers(lecturer);
         return(lecturers);
     }
     else if (t is Project_Sce.CodeLayer.Constraint)
     {
         Project_Sce.CodeLayer.Constraint constraint = t as Project_Sce.CodeLayer.Constraint;
         List <T> constraints = (List <T>)(object) GetConstraints(constraint);
         return(constraints);
     }
     else if (t is Classroom)
     {
         Classroom classRoom  = t as Classroom;
         List <T>  classRooms = (List <T>)(object) GetClassrooms(classRoom);
         return(classRooms);
     }
     else if (t is Lesson)
     {
         Lesson   lesson  = t as Lesson;
         List <T> lessons = (List <T>)(object) GetLessons(lesson);
         return(lessons);
     }
     return(null);
 }
        public List <Project_Sce.CodeLayer.Constraint> GetConstraints(Project_Sce.CodeLayer.Constraint constraint)
        {
            List <Project_Sce.CodeLayer.Constraint> constraints = new List <Project_Sce.CodeLayer.Constraint>();

            DataBase db = DataBase.Instance;

            SqlCommand cmd = new SqlCommand
                             (
                "SELECT * from Constraints", db.Con // at this time get all constraints
                             );

            using (SqlDataReader reader = cmd.ExecuteReader())
            {
                while (reader.Read())
                {
                    //int example1 = reader.GetInt32(0); string example2 = reader.GetString(1); // another way to get values sergei note
                    int    cid      = (int)reader["conId"];
                    string lid      = reader["LecturerID"].ToString().Trim();
                    string day      = reader["Day"].ToString().Trim();
                    int    fromHour = (int)reader["StrtTime"];
                    int    toHour   = (int)reader["EndTime"];

                    //Convert.ToInt32(var);
                    constraints.Add(new Project_Sce.CodeLayer.Constraint(cid, lid, day, fromHour, toHour));
                }
            }

            return(constraints);
        }
        public DataTable GetDataTable <T>(T t)
        {
            if (t is Course)
            {
                Course    course  = t as Course;
                DataTable courses = ConvertToDataTable <T>((List <T>)(object) GetCourses(course));
                return(courses);
            }
            else if (t is Project_Sce.CodeLayer.Student)
            {
                //Project_Sce.CodeLayer.Student student = t as Student;
                //return student.get_All_Students();

                Project_Sce.CodeLayer.Student student = t as Project_Sce.CodeLayer.Student;
                DataTable students = ConvertToDataTable <T>((List <T>)(object) GetStudents(student));
                return(students);
            }
            else if (t is Lecturer)
            {
                //Project_Sce.CodeLayer.Student student = t as Student;
                //return student.get_All_Students();

                Lecturer  lecturer  = t as Lecturer;
                DataTable lecturers = ConvertToDataTable <T>((List <T>)(object) GetLecturers(lecturer));
                return(lecturers);
            }
            else if (t is Project_Sce.CodeLayer.Constraint)
            {
                //Project_Sce.CodeLayer.Student student = t as Student;
                //return student.get_All_Students();

                Project_Sce.CodeLayer.Constraint constraint = t as Project_Sce.CodeLayer.Constraint;
                DataTable constraints = ConvertToDataTable <T>((List <T>)(object) GetConstraints(constraint));
                return(constraints);
            }
            else if (t is Classroom)
            {
                //Project_Sce.CodeLayer.Student student = t as Student;
                //return student.get_All_Students();

                Classroom classRoom  = t as Classroom;
                DataTable classRooms = ConvertToDataTable <T>((List <T>)(object) GetClassrooms(classRoom));
                return(classRooms);
            }
            else if (t is Lesson)
            {
                Lesson    lesson  = t as Lesson;
                DataTable lessons = ConvertToDataTable <T>((List <T>)(object) GetLessons(lesson));
                return(lessons);
            }
            return(null);
        }
 public bool Add <T>(T t)
 {
     if (t is Lecturer)
     {
         Lecturer lecturer = t as Lecturer;
         bool     result   = AddLecturer(lecturer);
         return(result);
     }
     else if (t is Project_Sce.CodeLayer.Constraint)
     {
         Project_Sce.CodeLayer.Constraint c = t as Project_Sce.CodeLayer.Constraint;
         bool result = AddConstraint(c);
         return(result);
     }
     return(false);
 }
        public bool AddConstraint(Project_Sce.CodeLayer.Constraint toAddConstraint)
        {
            DataBase db = DataBase.Instance;

            SqlCommand cmd = new SqlCommand
                             (
                "INSERT INTO Constraints (LecturerID,Day,StrtTime,EndTime) OUTPUT INSERTED.conId VALUES(@lid,@day,@from_hour,@to_hour);", db.Con
                             );

            cmd.Parameters.Add("@lid", SqlDbType.NChar, 20).Value = toAddConstraint.LID;
            cmd.Parameters.Add("@day", SqlDbType.NChar, 10).Value = toAddConstraint.Day;
            cmd.Parameters.Add("@from_hour", SqlDbType.Int).Value = toAddConstraint.FromHour;
            cmd.Parameters.Add("@to_hour", SqlDbType.Int).Value   = toAddConstraint.ToHour;

            Int32 cid = (Int32)cmd.ExecuteScalar();

            return(cid == 0 ? false : true);
        }