private void ConfirmButton_Click(object sender, RoutedEventArgs e)
        {
            if (_titleTextBox.Text == null)
            {
                error.Foreground = new SolidColorBrush(Colors.Red);
                error.Content    = "Intitulé obligatoire";
                return;
            }
            string description = _titleTextBox.Text;

            if (_datePicker.SelectedDate == null)
            {
                error.Foreground = new SolidColorBrush(Colors.Red);
                error.Content    = "Date obligatoire";
                return;
            }
            DateTime           endDateTime         = (DateTime)_datePicker.SelectedDate;
            int                endDateTimestamp    = (int)new DateTimeOffset(endDateTime).ToUnixTimeSeconds();
            int                selectedClassroomId = (int)_classroomComboBox.SelectedValue;
            List <StudentInfo> studentList         = Database.Get.Student.AllFromClassroomId(selectedClassroomId);
            DateTime           currentDate         = DateTime.Now;
            int                currentTimestamp    = (int)new DateTimeOffset(currentDate).ToUnixTimeSeconds();

            using SQLiteCommand cmd = GlobalFunction.OpenDbConnection();
            List <HomeworkInfo> homeworkInfos = new List <HomeworkInfo>();

            foreach (StudentInfo student in studentList)
            {
                HomeworkInfo homework = new HomeworkInfo()
                {
                    studentId   = student.studentId,
                    description = description,
                    endDate     = endDateTimestamp,
                };
                homeworkInfos.Add(homework);
            }

            int generatedHomework = Database.Insert.Homework.Multiple(homeworkInfos);

            error.Foreground = new SolidColorBrush(Colors.Green);
            error.Content    = $"{generatedHomework} devoirs ajoutés avec succès";
        }
        public async Task CreateHomeworkAsync(NewHomeworkDto homeworkDto)
        {
            _logService.LogInfo($"Start creating homework {homeworkDto.HomeworkTitle} for group with id {homeworkDto.GroupId}, subject {homeworkDto.SubjectId}");

            var number = await _repository.GetAll <HomeworkInfo>()
                         .Where(homework => homework.SubjectId == homeworkDto.SubjectId)
                         .CountAsync();

            number++;

            var dbHomework = new HomeworkInfo
            {
                SubjectId = homeworkDto.SubjectId,
                MaxPoints = homeworkDto.MaxPoints,
                Number    = number,
                Title     = homeworkDto.HomeworkTitle
            };

            _repository.Add(dbHomework);

            await _repository.SaveContextAsync();

            var studentPerformanceIds = await _repository.GetAll <StudentPerformance>()
                                        .Where(performance => performance.Subject.SubjectId == dbHomework.SubjectId)
                                        .Select(performance => performance.StudentPerformanceId)
                                        .ToListAsync();

            foreach (var studentPerformanceId in studentPerformanceIds)
            {
                _repository.Add(new HomeworkResult
                {
                    HomeworkInfoId       = dbHomework.HomeworkInfoId,
                    StudentPerformanceId = studentPerformanceId,
                    Points = 0
                });
            }

            await _repository.SaveContextAsync();

            _logService.LogInfo($"Homework {homeworkDto.HomeworkTitle} for group with id {homeworkDto.GroupId}, subject {homeworkDto.SubjectId} created");
        }
예제 #3
0
        public static List <HomeworkInfo> All(string type)
        {
            using SQLiteCommand cmd = GlobalFunction.OpenDbConnection();
            List <HomeworkInfo> homeworks = new List <HomeworkInfo>();

            cmd.CommandText            = "SELECT * FROM homeworks";
            using SQLiteDataReader rdr = cmd.ExecuteReader();
            //homeworks(homeworkId INTEGER PRIMARY KEY, studentId INTEGER, creationDate INTEGER, endDate INTEGER, retrieveDate INTEGER, description TEXT, active BOOLEAN);
            while (rdr.Read())
            {
                HomeworkInfo homework = new HomeworkInfo()
                {
                    homeworkId   = rdr.GetInt32(0),
                    studentId    = rdr.GetInt32(1),
                    creationDate = rdr.GetInt32(2),
                    endDate      = rdr.GetInt32(3),
                    retrieveDate = rdr.GetInt32(4),
                    description  = rdr.GetString(5),
                    active       = rdr.GetBoolean(6)
                };
                homeworks.Add(homework);
            }
            return(homeworks);
        }