コード例 #1
0
        /// <summary>
        /// Get the last created homework from a given list
        /// </summary>
        /// <param name="homeworksList"></param>
        /// <returns></returns>
        private static HomeworkInfo GetLastHomework(List <HomeworkInfo> homeworksList)
        {
            HomeworkInfo lastHomework = new HomeworkInfo();

            foreach (HomeworkInfo homework in homeworksList)
            {
                if (lastHomework.creationDate < homework.creationDate)
                {
                    lastHomework = homework;
                }
            }
            return(lastHomework);
        }
コード例 #2
0
        /// <summary>
        /// Get all homeworks from a specific studentId
        /// </summary>
        /// <param name="studentId"></param>
        /// <returns></returns>
        private static List <HomeworkInfo> GetAllHomeworks(int studentId)
        {
            using SQLiteCommand cmd    = GlobalFunction.OpenDbConnection();
            cmd.CommandText            = $"SELECT * FROM homeworks WHERE studentId = {studentId}";
            using SQLiteDataReader rdr = cmd.ExecuteReader();
            List <HomeworkInfo> homeworksList = new List <HomeworkInfo>();

            while (rdr.Read())
            {
                HomeworkInfo homeworkInfo = new HomeworkInfo()
                {
                    homeworkId   = rdr.GetInt32(0),
                    creationDate = rdr.GetInt32(2),
                    endDate      = rdr.GetInt32(3),
                    retrieveDate = rdr.GetInt32(4),
                    description  = rdr.GetString(5)
                };
                homeworksList.Add(homeworkInfo);
            }
            rdr.Close();
            return(homeworksList);
        }
コード例 #3
0
        private void ReadStudentsData(List <int> studentIdList)
        {
            foreach (int studentId in studentIdList)
            {
                using SQLiteCommand cmd = GlobalFunction.OpenDbConnection();
                //Handle classroom name
                List <int>    classroomIdList   = Database.Get.Classroom.AllIDFromStudentID(studentId);
                List <string> classroomNameList = new List <string>();
                foreach (int classroomId in classroomIdList)
                {
                    classroomNameList.Add(Database.Get.Classroom.NameFromID(classroomId));
                }

                string classroomName = String.Join(", ", classroomNameList.ToArray());

                string[] studentName = Database.Get.Student.NameFromID(studentId);

                //Handle homework
                List <HomeworkInfo> homeworkList = GetAllHomeworks(studentId);
                HomeworkInfo        lastHomework = GetLastHomework(homeworkList);

                bool   lastHomeworkButtonEnabled = false;
                string lastHomeworkStatus        = GlobalVariable.specialCharacter["CheckMark"];
                string lastHomeworkColor         = "Green";
                if (lastHomework.retrieveDate == 0 && lastHomework.creationDate != 0)
                {
                    lastHomeworkButtonEnabled = true;
                    lastHomeworkStatus        = GlobalVariable.specialCharacter["Cross"];
                    lastHomeworkColor         = "Red";
                }

                //Handle note
                List <NoteInfo> notesList = GetAllNotes(studentId);
                NoteInfo        lastNotes = GetLastNote(notesList);

                //Handle votes
                List <VotesInfo> upvotesList   = Database.Get.Vote.AllFromStudentId(studentId, true);
                List <VotesInfo> downvotesList = Database.Get.Vote.AllFromStudentId(studentId, false);

                string average = "";

                List <GradeInfo> gradesList = Database.Get.Grade.AllFromStudentId(studentId);
                if (gradesList.Count == 0)
                {
                    average = "20/20";
                }
                else
                {
                    float[] gradesArray = new float[gradesList.Count];
                    int[]   coeffArray  = new int[gradesList.Count];
                    for (int i = 0; i < gradesList.Count; i++)
                    {
                        gradesArray[i] = gradesList[i].Grade;
                        coeffArray[i]  = gradesList[i].Coeff;
                    }

                    int     coeffSum            = coeffArray.Sum();
                    float[] gradesCoeffMultiply = new float[gradesList.Count];

                    for (int i = 0; i < gradesList.Count; i++)
                    {
                        gradesCoeffMultiply[i] = gradesArray[i] * coeffArray[i];
                    }

                    float gradesCoefMultiplySum = gradesCoeffMultiply.Sum();
                    float averageFloat          = gradesCoefMultiplySum / coeffSum;
                    average = averageFloat.ToString() + "/20";
                }

                StudentDisplay studentDisplay = new StudentDisplay()
                {
                    ID                      = studentId,
                    Name                    = studentName[1] + " " + studentName[0],
                    ClassroomName           = classroomName,
                    HomeworkButtonEnabled   = lastHomeworkButtonEnabled,
                    LastHomeworkStatusText  = lastHomeworkStatus,
                    LastHomeworkStatusColor = lastHomeworkColor,
                    LastHomeWorkId          = lastHomework.homeworkId,
                    Note                    = lastNotes.content ?? "Aucune note",
                    Average                 = average,
                    UpvotesCount            = upvotesList.Count.ToString(),
                    DownvotesCount          = downvotesList.Count.ToString()
                };
                studentsCollection.Add(studentDisplay);
            }
        }