コード例 #1
0
        public FinalGradeDto CreateFinalGrade(FinalGradeDto finalGradeDto)
        {
            var taking = db.TakingsRepository.Get(t =>
                                                  t.StudentId == finalGradeDto.StudentId &&
                                                  t.Program.ClassRoomId == finalGradeDto.ClassRoomId &&
                                                  t.Program.Teaching.CourseId == finalGradeDto.CourseId &&
                                                  t.Program.Teaching.TeacherId == finalGradeDto.TeacherId).FirstOrDefault();

            if (taking == null)
            {
                return(null);
            }

            // no logging for now
            FinalGrade createdGrade = new FinalGrade
            {
                Assigned   = finalGradeDto.AssignmentDate,
                GradePoint = finalGradeDto.FinalGradePoint,
                Notes      = finalGradeDto.Notes,
                SchoolTerm = finalGradeDto.Semester,
                Taking     = taking
            };

            db.FinalGradesRepository.Insert(createdGrade);
            db.Save();

            // for now
            return(Converters.FinalGradesConverter.FinalGradeToFinalGradeDto(createdGrade));
        }
コード例 #2
0
        public FinalGradeDto GetFinalGradeDtoById(int finalGradeId)
        {
            logger.Info("Get final grade dto by Id {@finalGradeId}", finalGradeId);

            FinalGrade finalGrade = GetFinalGradeById(finalGradeId);

            return(Converters.FinalGradesConverter.FinalGradeToFinalGradeDto(finalGrade));
        }
コード例 #3
0
        // Pri prvom zapnuti okna sa vytvori finalne hodnotenie pre kazdeho studenta
        // Aby bol mozny export finalneho hodnotenia
        private void CreateFinalGradeOnStart()
        {
            try
            {
                using (StudentDBDataContext con = new StudentDBDataContext(conn_str))
                {
                    var  allStudents    = con.GetTable <Student>().Where(x => x.ID_stud_skupina == group.Id);
                    var  allFinalGrades = con.GetTable <FinalGrade>().Where(x => x.IdSkupina == group.Id);
                    bool isAdded        = false;

                    if (allStudents.Count() <= 0 || allStudents == null)
                    {
                        return;
                    }
                    foreach (var student in allStudents)
                    {
                        var exists = allFinalGrades.Where(x => x.IdSkupina == group.Id && x.IdStudent == student.Id);

                        if (exists.Count() > 0)
                        {
                            continue;
                        }

                        FinalGrade finalGrade = new FinalGrade()
                        {
                            IdSkupina          = group.Id,
                            IdStudent          = student.Id,
                            ActivityLectPoints = 0,
                            ActivitySemPoints  = 0,
                            GotPoints          = 0,
                            Grade          = "Fx",
                            MaxPts         = 0,
                            MissedLectures = 0,
                            MissedSeminars = 0,
                        };
                        con.FinalGrades.InsertOnSubmit(finalGrade);
                        isAdded = true;
                    }
                    if (isAdded)
                    {
                        con.SubmitChanges();
                    }
                    else
                    {
                        return;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                Logger newLog = new Logger();
                newLog.LogError(ex);
            }
        }
コード例 #4
0
        public async Task <FinalGradeDto> ConfirmStudentCourseFinalGradeAsync(int studentId, int teacherId, int subjectId)
        {
            var student = await _studentsService.GetStudentAsync(studentId).ConfigureAwait(false);

            if (student == null)
            {
                throw new ResourceNotFoundException($"Студент {studentId} не знайдний");
            }

            var gradebook = await _gradebooksService.GetGradebookByGroupAsync(student.Group.Id, subjectId)
                            .ConfigureAwait(false);

            if (gradebook == null)
            {
                throw new ResourceNotFoundException($"Журнал групи {student.Group.Code} по предмету {subjectId} не знайдено");
            }

            if (gradebook.Teachers.All(t => t.Id != teacherId))
            {
                throw new ResourceAccessPermissionException($"Викладач {teacherId} не має доступу до журналу {gradebook.Id}");
            }

            using (var transaction = await _finalGradesUnitOfWork.BeginTransactionAsync(IsolationLevel.RepeatableRead)
                                     .ConfigureAwait(false))
            {
                var currentGradeTotal =
                    await GetStudentCourseCurrentGradeTotalAsync(studentId, subjectId).ConfigureAwait(false);

                if (currentGradeTotal < MinFinalGradeValue)
                {
                    throw new ResourceOperationException($"Кінцева оцінка не може бути нижча за {MinFinalGradeValue} балів");
                }

                var finalGrade = new FinalGrade
                {
                    CreatedAt      = DateTime.Now,
                    GradebookRefId = gradebook.Id,
                    StudentRefId   = studentId,
                    TeacherRefId   = teacherId,
                    Value          = currentGradeTotal
                };

                _finalGradesUnitOfWork.Repository.Add(finalGrade);

                await _finalGradesUnitOfWork.SaveChangesAsync().ConfigureAwait(false);

                transaction.Commit();

                return(await GetFinalGradeAsync(finalGrade.Id).ConfigureAwait(false));
            }
        }
コード例 #5
0
        public void Enrolment_FinalGrade_GetsAndSets()
        {
            // Arrange
            FinalGrade expected = FinalGrade.C;
            //Enrolment enrolment = new Enrolment(new Person(), new Section(), 9);
            Enrolment enrolment = new Enrolment(new Student(), new Section(), 9);

            // Act
            enrolment.FinalGrade = FinalGrade.C;
            // Assert
            FinalGrade actual = enrolment.FinalGrade;

            Assert.AreEqual(expected, actual);
        }
コード例 #6
0
        public void AddFinalGradeToOptionalCourses(Guid studentId, Guid courseId)
        {
            {
                var finalGrade = new FinalGrade
                {
                    CourseId  = courseId,
                    StudentId = studentId,
                    Value     = 0
                };

                _repository.Insert(finalGrade);
                _repository.Save();
            }
        }
コード例 #7
0
 public static FinalGradeDto FinalGradeToFinalGradeDto(FinalGrade finalGrade)
 {
     return(new FinalGradeDto()
     {
         FinalGradeId = finalGrade.Id,
         FinalGradePoint = finalGrade.GradePoint,
         SchoolGrade = finalGrade.Taking.Program.ClassRoom.ClassGrade,
         Semester = finalGrade.SchoolTerm,
         StudentId = finalGrade.Taking.Student.Id,
         CourseId = finalGrade.Taking.Program.Teaching.Course.Id,
         AssignmentDate = finalGrade.Assigned,
         Notes = finalGrade.Notes,
         ClassRoomId = finalGrade.Taking.Program.ClassRoomId,
         TeacherId = finalGrade.Taking.Program.Teaching.TeacherId
     });
 }
コード例 #8
0
        public ActionResult SaveFinalGrade()
        {
            string jsonString;
            string grade   = Request.QueryString["currentGrade"];
            string classID = Request.QueryString["currentClass"];

            if (grade == "" || classID == "")
            {
                jsonString = JsonConvert.SerializeObject("must enter values to view results", Formatting.Indented);
            }
            else
            {
                int    className  = Convert.ToInt32(classID);
                double gradeValue = Convert.ToDouble(grade);

                var userID        = User.Identity.GetUserId();
                var currentUserID = db.BTTUsers.Where(m => m.ASPNetIdentityID.Equals(userID)).FirstOrDefault().ID;
                var classToSave   = db.Classes.Where(m => m.ID == className).FirstOrDefault().Name;

                FinalGrade finalGrade = new FinalGrade
                {
                    RecordedDate = DateTime.Now,
                    ClassName    = classToSave,
                    Grade        = gradeValue,
                    UserID       = currentUserID
                };

                if (ModelState.IsValid)
                {
                    db.FinalGrades.Add(finalGrade);
                    db.SaveChanges();

                    jsonString = JsonConvert.SerializeObject("Success! ", Formatting.Indented);
                }
                else
                {
                    jsonString = JsonConvert.SerializeObject("Oops! Something went wrong! ", Formatting.Indented);
                }
            }

            return(new ContentResult
            {
                Content = jsonString,
                ContentType = "application/json",
                ContentEncoding = System.Text.Encoding.UTF8
            });
        }
コード例 #9
0
        public void Enrolments_CalculateFinalGradeInfo_WithMaxPointsOfZero_ResultsInAPLUS()
        {
            // Arrange
            FinalGrade expected = FinalGrade.APLUS;
            //Enrolment enrolment = new Enrolment(new Person(), new Section(), 1);
            Enrolment enrolment = new Enrolment(new Student(), new Section(), 1);

            enrolment.Evaluations[0] = new Evaluation(EvaluationType.TEST, 0, 1)
            {
                Points = 49
            };
            // Act
            enrolment.CalculateFinalGrade();
            // Assert
            FinalGrade actual = enrolment.FinalGrade;

            Assert.AreEqual(expected, actual);
        }
コード例 #10
0
        //Finalne hodnotenie
        private void GradeBtn_Click(object sender, EventArgs e)
        {
            try
            {
                using (StudentDBDataContext con = new StudentDBDataContext(conn_str))
                {
                    // Ak udaje niew su v pozadovanych formatoch tak sa nic nestane
                    if (!Validator())
                    {
                        return;
                    }

                    FinalGrade grade = con.FinalGrades.Where(x => x.IdSkupina == group.Id && x.IdStudent == (int)StudentGrid.CurrentRow.Cells[0].Value).FirstOrDefault();
                    float.TryParse(MaxPtsBox.Text, out float maxPoints);
                    float.TryParse(SemPtsBox.Text, out float semPts);
                    float.TryParse(LecPtsBox.Text, out float lecPts);

                    int.TryParse(MissedLecBox.Text, out int missedLec);
                    int.TryParse(MissedSemBox.Text, out int missedSem);

                    float.TryParse(TotalPtsBox.Text, out float totalPts);

                    grade.ActivitySemPoints  = semPts;
                    grade.ActivityLectPoints = lecPts;

                    grade.MissedLectures = missedLec;
                    grade.MissedSeminars = missedSem;

                    grade.MaxPts    = maxPoints;
                    grade.GotPoints = totalPts;

                    grade.Grade = FinalGradeBox.Text;

                    con.SubmitChanges();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                Logger newLog = new Logger();
                newLog.LogError(ex);
            }
        }
コード例 #11
0
        // GET: FinalGrades/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            FinalGrade finalGrade = db.FinalGrades.Find(id);

            if (finalGrade == null)
            {
                return(HttpNotFound());
            }
            else
            {
                db.FinalGrades.Remove(finalGrade);
                db.SaveChanges();
                return(RedirectToAction("SavedResults", "Calculators"));
            }
        }
コード例 #12
0
        public void AddFinalGradeToMandatoryCourses(Guid studentId)
        {
            var stud    = _repository.GetByFilter <Student>(x => x.Id == studentId);
            var group   = _repository.GetByFilter <Group>(x => x.Id == stud.GroupId);
            var courses = _repository.GetAllByFilter <Course>(x => x.Package == null && x.Year <= group.Year);

            foreach (var course in courses)
            {
                var finalGrade = new FinalGrade
                {
                    CourseId  = course.Id,
                    StudentId = studentId,
                    Value     = 0
                };

                _repository.Insert(finalGrade);
                _repository.Save();
            }
        }
コード例 #13
0
ファイル: Gamelogic.cs プロジェクト: Laatikk01234/GitArt2077
    public void Start()
    {
        subGradeGiverList = subGradeObject.GetComponent <SubGradeList>();
        //subGradeList.subGrades[day].GetComponent<GradeTextValues>().gradeA;
        finalGradeGiver = FinalGradeObject.GetComponent <FinalGrade>();


        // how to introduce the game screen might go here?
        feedbackBubble.SetActive(false);
        feedbackBubbleText = feedbackBubble.GetComponentInChildren <TextMeshPro>();

        currentPicture = artLocation.GetComponent <SpriteRenderer>();


        traineeText     = traineeSpeechbubble.GetComponentInChildren <TextMeshPro>();
        professorText   = professorSpeechbubble.GetComponentInChildren <TextMeshPro>();
        sliderValueText = sliderTextMesh.GetComponent <TextMeshPro>();

        Button btn = confirm.GetComponent <Button>();

        btn.onClick.AddListener(StartOrSubmitOrNext);
        buttonText = confirm.GetComponentInChildren <Text>();

        // Andrea messing up
        anim       = curtainsObject.GetComponent <Animator>();
        animcanvas = canvasObject.GetComponent <Animator>();

        darknessText = darknessTextObject.GetComponent <TextMeshProUGUI>();

        animcanvas.SetTrigger("IntroRoll");

        buttonAudio = btn.GetComponent <AudioSource>();
        audioSource = this.GetComponent <AudioSource>();

        //audioSourceProf = Get
        // Andrea messing up end
    }
コード例 #14
0
        public void AddAll()
        {
            var students = _repository.GetAll <Student>();
            var courses  = _repository.GetAllByFilter <Course>(x => x.Package == null);

            foreach (var student in students)
            {
                var optionals = _repository.GetAllByFilter <StudCourse>(x => x.StudId == student.Id);

                foreach (var optional in optionals)
                {
                    var finalGrade = new FinalGrade
                    {
                        CourseId  = optional.CourseId,
                        StudentId = student.Id,
                        Value     = 0
                    };

                    _repository.Insert(finalGrade);
                    _repository.Save();
                }

                foreach (var course in courses)
                {
                    var finalGrade = new FinalGrade
                    {
                        CourseId  = course.Id,
                        StudentId = student.Id,
                        Value     = 0
                    };

                    _repository.Insert(finalGrade);
                    _repository.Save();
                }
            }
        }
コード例 #15
0
        //Validacia poli vo finalnom hodnoteni.
        private bool Validator()
        {
            try
            {
                using (StudentDBDataContext con = new StudentDBDataContext(conn_str))
                {
                    if (StudentGrid.Rows.Count <= 0)
                    {
                        MessageBox.Show("Nenašiel sa žiaden študent.");
                        return(false);
                    }

                    FinalGrade grade = con.FinalGrades.Where(x => x.IdSkupina == group.Id && x.IdStudent == (int)StudentGrid.CurrentRow.Cells[0].Value).FirstOrDefault();

                    var notGradedActivity = con.GetTable <Activity>().Where(x => x.IdStudent == (int)StudentGrid.CurrentRow.Cells[0].Value && x.Hodnotene == false);

                    if (notGradedActivity.Count() > 0)
                    {
                        DialogResult result = MessageBox.Show("Niektorá aktivita nebola ohodnotená, chcete napriek tomu pokračovať?", "Upozornenie", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                        if (result == DialogResult.No)
                        {
                            return(false);
                        }
                    }
                    if (!float.TryParse(MaxPtsBox.Text, out float maxPoints))
                    {
                        MessageBox.Show("Pole musí obsahovať len čísla a nemôže byť prázdne");
                        MaxPtsBox.Select();
                        return(false);
                    }
                    if (!float.TryParse(SemPtsBox.Text, out float semPts))
                    {
                        MessageBox.Show("Pole musí obsahovať len čísla a nemôže byť prázdne");
                        SemPtsBox.Select();
                        return(false);
                    }
                    if (!float.TryParse(LecPtsBox.Text, out float lecPts))
                    {
                        MessageBox.Show("Pole musí obsahovať len čísla a nemôže byť prázdne");
                        LecPtsBox.Select();
                        return(false);
                    }
                    if (!int.TryParse(MissedLecBox.Text, out int missedLec))
                    {
                        MessageBox.Show("Pole musí obsahovať len čísla a nemôže byť prázdne");
                        MissedLecBox.Select();
                        return(false);
                    }
                    if (!int.TryParse(MissedSemBox.Text, out int missedSem))
                    {
                        MessageBox.Show("Pole musí obsahovať len čísla a nemôže byť prázdne");
                        SemPtsBox.Select();
                        return(false);
                    }
                    if (!float.TryParse(TotalPtsBox.Text, out float totalPts))
                    {
                        MessageBox.Show("Pole musí obsahovať len čísla a nemôže byť prázdne");
                        TotalPtsBox.Select();
                        return(false);
                    }
                    if (totalPts > maxPoints)
                    {
                        DialogResult result = MessageBox.Show("Počet získaných bodov je väčší ako maximum, chcete pokračovať ?", "Upozornenie", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                        if (result != DialogResult.Yes)
                        {
                            return(false);
                        }
                    }
                    if (!OnlyAllowedValues(FinalGradeBox.Text))
                    {
                        MessageBox.Show("Povolené hodnoty pre známku sú: A, B, C, D, E, Fx", "Upozornenie", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return(false);
                    }
                }
                return(true);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                Logger newLog = new Logger();
                newLog.LogError(ex);
                return(false);
            }
        }
コード例 #16
0
 public override string ToString()
 {
     return(FinalGrade.ToString());
 }