コード例 #1
0
        // tested
        public List <Attendance> GetAttendances(Course course)
        {
            List <Attendance> attendances = new List <Attendance>();

            conn.Open();
            string sql = $"SELECT P.*, CU.*, L.userId FROM Courses C " +
                         $"JOIN ClassesUnits CU ON C.courseId = CU.courseID " +
                         $"JOIN Lecturers L ON L.lecturerId = CU.lecturerId " +
                         $"JOIN Attendances A ON A.classUnitId = CU.classUnitId " +
                         $"JOIN Participants P ON P.participantId = A.participantId " +
                         $"WHERE C.courseId = {course.CourseId}";

            MySqlCommand    cmd = new MySqlCommand(sql, conn);
            MySqlDataReader rdr = cmd.ExecuteReader();

            while (rdr.Read())
            {
                Attendance attendance = new Attendance();
                // tworze referencje na uczestnika
                attendance.Participant = GetParticipantFromReader(rdr);

                // tworze referencje na jednostke zajec
                int         dataOffset  = 12;
                ClassesUnit classesUnit = new ClassesUnit();
                classesUnit.ClassUnitId     = int.Parse(rdr[dataOffset].ToString());
                classesUnit.ClassBeginning  = DateTime.Parse(rdr[dataOffset + 1].ToString());
                classesUnit.ClassEnding     = DateTime.Parse(rdr[dataOffset + 2].ToString());
                classesUnit.ClassroomNumber = rdr[dataOffset + 3].ToString();
                classesUnit.ClassesForm     = (ClassesForm)int.Parse(rdr[dataOffset + 4].ToString());

                // jednostka zajec ma kurs, wiec kolejna referencja
                classesUnit.ClassCourse = course;

                // jednostka zajec ma prowadzacego, wiec kolejna
                Lecturer lecturer = new Lecturer();
                lecturer.LecturerId       = int.Parse(rdr[dataOffset + 5].ToString());
                lecturer.UserId           = int.Parse(rdr[dataOffset + 6].ToString());
                classesUnit.ClassLecturer = lecturer;

                attendance.ClassesUnit = classesUnit;
                attendances.Add(attendance);
            }
            rdr.Close();
            conn.Close();

            // uzupelniam dane uzytkownikow
            foreach (Attendance a in attendances)
            {
                FillUserData(a.Participant);
                FillUserData(a.ClassesUnit.ClassLecturer);
            }

            return(attendances);
        }
コード例 #2
0
        public List <ClassesUnit> GetClassesUnitsDate(Course course)
        {
            List <ClassesUnit> classesUnits = new List <ClassesUnit>();

            conn.Open();
            string sql = $"SELECT CU.classUnitId, CU.classBeginning, CU.classEnding FROM Courses C " +
                         "NATURAL JOIN ClassesUnits CU " +
                         $"WHERE C.courseId = {course.CourseId} ORDER BY 2";
            MySqlCommand    cmd = new MySqlCommand(sql, conn);
            MySqlDataReader rdr = cmd.ExecuteReader();

            while (rdr.Read())
            {
                ClassesUnit classUnit = new ClassesUnit();
                classUnit.ClassUnitId    = int.Parse(rdr[0].ToString());
                classUnit.ClassBeginning = DateTime.Parse(rdr[1].ToString());
                classUnit.ClassEnding    = DateTime.Parse(rdr[2].ToString());
                classesUnits.Add(classUnit);
            }
            rdr.Close();
            conn.Close();
            return(classesUnits);
        }