예제 #1
0
        public IHttpActionResult PostStudentGrade(StudentGradeDTO studentGradeDTO)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (studentGradeDTO == null)
            {
                return(BadRequest("Missing values"));
            }


            StudentGrade studentGrade = Mapper.Map <StudentGrade>(studentGradeDTO);

            StudentGradeRepo.Add(studentGrade);

            try
            {
                StudentGradeRepo.Save();
                return(Ok(studentGrade));
            }
            catch
            {
                return(BadRequest("Failed to add student grade"));
            }
        }
예제 #2
0
        public void GetStudentGradesInGroup()
        {
            // Arrange:
            string studentSSN       = "2233882299";
            int    courseInstanceID = 1;

            // Act:
            StudentGradeDTO gradeObject = _service.GetStudentGradesInGroup(studentSSN, courseInstanceID);

            // Assert:
            Assert.IsNotNull(gradeObject);
            Assert.AreEqual("Barney Calhoun", gradeObject.Student.Name);
            Assert.AreEqual(2, gradeObject.StudentGrades.Count);
        }
예제 #3
0
        /// <summary>
        /// Returns grade overview for every student signed up in course
        /// </summary>
        /// <param name="courseInstanceID"></param>
        /// <returns></returns>
        public StudentGradeOverviewDTO GetSingleStudentGradeOverview(int courseInstanceID, string studentSSN)
        {
            // Fetching the course
            CourseInstance course = _courseInstances.GetCourseInstanceByID(courseInstanceID);

            // Fetching the student
            Person student = _persons.GetStudentBySSN(studentSSN);

            // Fetching the student course registration
            StudentRegistration registration = _studentRegistrations.GetCourseStudentByKeys(courseInstanceID, studentSSN);

            // Preparing the overview
            StudentGradeOverviewDTO overview = new StudentGradeOverviewDTO();

            // Fetching the assignment groups in the course
            List <AssignmentGroupDTO> courseAssignmentGroups = GetAssignmentGroups(courseInstanceID);

            // Setting the student in the overview
            overview.Student = student.GetStudentDTO();
            overview.Grades  = new List <GradeDTO>();

            // For every group, we check if the student has a part in it
            foreach (AssignmentGroupDTO group in courseAssignmentGroups)
            {
                StudentGradeDTO grades = GetStudentGradesInGroup(studentSSN, group.ID);

                // Adding the grades
                overview.Grades.AddRange(grades.StudentGrades);

                // Adding the weight to the final grade if applicable
                if (group.Weight > 0)
                {
                    overview.EarnedGrade += Math.Round(CalculateEarnedGroupPercentage(group, grades.StudentGrades), 2);

                    if (grades.StudentGrades.Count > 0)
                    {
                        overview.WeightGraded += group.Weight;
                    }
                    else
                    {
                        overview.WeightUngraded += group.Weight;
                    }
                }
            }
            overview.WeightGraded   *= 0.1;
            overview.WeightUngraded *= 0.1;

            return(overview);
        }
예제 #4
0
        public IHttpActionResult GetStudentGrade(int id)
        {
            StudentGrade StudentGrade = StudentGradeRepo.Get(id);

            if (StudentGrade == null)
            {
                return(NotFound());
            }



            StudentGradeDTO StudentGradeDTO = Mapper.Map <StudentGradeDTO>(StudentGrade);

            return(Ok(StudentGradeDTO));
        }
예제 #5
0
        public IHttpActionResult GetStudentGrade(int id)
        {
            StudentGrade StudentGrade = (StudentGrade)studentGradeRepo.Find(id);

            if (StudentGrade == null)
            {
                return(NotFound());
            }

            Mapper.Initialize(c => c.CreateMap <StudentGrade, StudentGradeDTO>());

            StudentGradeDTO StudentGradeDTO = Mapper.Map <StudentGradeDTO>(StudentGrade);

            return(Ok(StudentGradeDTO));
        }
예제 #6
0
        public IHttpActionResult PostStudentGrade(StudentGradeDTO StudentGradeDTO)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Mapper.Initialize(c => c.CreateMap <StudentGradeDTO, StudentGrade>());

            StudentGrade StudentGrade = Mapper.Map <StudentGrade>(StudentGradeDTO);

            studentGradeRepo.Add(StudentGrade);
            studentGradeRepo.Save();

            return(CreatedAtRoute("DefaultApi", new { id = StudentGrade.ID }, StudentGrade));
        }
예제 #7
0
        public StudentGradeDTO StudentGrades(int id)
        {
            Student student = studentService.FindStudent(id);

            if (student == null)
            {
                throw new Exception("Student not found!");
            }
            IEnumerable <Grade> query = from grade in this.GetGrades()
                                        where grade.studentId == id
                                        select grade;
            StudentGradeDTO studentGrade = new StudentGradeDTO
            {
                studentName = student.name,
                grades      = query.ToList(),
            };

            return(studentGrade);
        }
예제 #8
0
        public IHttpActionResult PutStudentGrade(StudentGradeDTO studentGradeDTO)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            //StudentGrade studentGrade = StudentGradeRepo.Get(id);
            //if (studentGrade != null)
            //{
            //    return BadRequest();
            //}

            //studentGrade.Grade = grade;


            StudentGrade studentGrade = Mapper.Map <StudentGrade>(studentGradeDTO);

            StudentGradeRepo.Update(studentGrade);
            StudentGradeRepo.Save();

            return(StatusCode(HttpStatusCode.NoContent));
        }
예제 #9
0
        public IHttpActionResult PutStudentGrade(int id, StudentGradeDTO StudentGradeDTO)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != StudentGradeDTO.ID)
            {
                return(BadRequest());
            }

            Mapper.Initialize(c => c.CreateMap <StudentGradeDTO, StudentGrade>());

            StudentGrade StudentGrade = Mapper.Map <StudentGrade>(StudentGradeDTO);

            studentGradeRepo.Update(StudentGrade);

            try
            {
                studentGradeRepo.Save();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!StudentGradeExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
예제 #10
0
        public Double GetAverageGradeForStudent(int id)
        {
            StudentGradeDTO studentGrade = StudentGrades(id);

            return(GetMedium(studentGrade.grades));
        }