Exemple #1
0
        public MarkValuesListDTO ConvertToMarkValuesListDTO(FormToTeacherSubject fts, Student student, List <Mark> marks)
        {
            IList <int> marksFirstSemester  = new List <int>();
            IList <int> marksSecondSemester = new List <int>();

            foreach (var mark in marks)
            {
                if (mark.Semester == 0)
                {
                    marksFirstSemester.Add(mark.MarkValue);
                }
                else
                {
                    marksSecondSemester.Add(mark.MarkValue);
                }
            }

            MarkValuesListDTO dto = new MarkValuesListDTO
            {
                SubjectID           = fts.TeacherToSubject.Subject.Id,
                SubjectName         = fts.TeacherToSubject.Subject.Name,
                TeacherID           = fts.TeacherToSubject.Teacher.Id,
                Teacher             = fts.TeacherToSubject.Teacher.FirstName + " " + fts.TeacherToSubject.Teacher.LastName,
                ParentID            = student.Parent.Id,
                StudentID           = student.Id,
                Student             = student.FirstName + " " + student.LastName,
                FirstSemesterMarks  = marksFirstSemester,
                SecondSemesterMarks = marksSecondSemester
            };

            return(dto);
        }
Exemple #2
0
        public IEnumerable <MarkValuesListDTO> ConvertToMarkValuesListDTOList(int formId)
        {
            Form foundForm = db.FormsRepository.GetByID(formId);

            if (foundForm == null)
            {
                throw new HttpException("The form with id: " + formId + " was not found");
            }

            IList <MarkValuesListDTO> dtos         = new List <MarkValuesListDTO>();
            IEnumerable <Student>     formStudents = foundForm.Students;

            IEnumerable <FormToTeacherSubject> formFTSs = db.FormsToTeacherSubjectsRepository.GetByFormIdOnlyActive(foundForm.Id);

            foreach (var fts in formFTSs)
            {
                foreach (var student in formStudents)
                {
                    IEnumerable <Mark> studentMarks = db.MarksRepository.GetByFTSIdAndStudentId(fts.Id, student.Id);

                    MarkValuesListDTO dto = ConvertToMarkValuesListDTO(fts, student, (List <Mark>)studentMarks);
                    dtos.Add(dto);
                }
            }

            dtos = dtos.OrderBy(x => x.Student).ThenBy(x => x.SubjectName).ToList();
            return(dtos);
        }
Exemple #3
0
        public HttpResponseMessage GetMarksByStudentIdFromTeacherId(string studentId, string teacherId)
        {
            string userId   = ((ClaimsPrincipal)RequestContext.Principal).FindFirst(x => x.Type == "UserId").Value;
            string userRole = ((ClaimsPrincipal)RequestContext.Principal).FindFirst(x => x.Type == ClaimTypes.Role).Value;

            logger.Info("UserRole: " + userRole + ", UserId: " + userId + ": Requesting Marks " +
                        "By Student Id: " + studentId + " From Teacher Id: " + teacherId);

            try
            {
                MarkValuesListDTO marks = marksService.GetMarkValuesListByStudentIdFromTeacherId(studentId, teacherId);

                if (userRole == "admin" || userId == studentId || marks.ParentID == userId || marks.TeacherID == userId)
                {
                    logger.Info("Success!");
                    return(Request.CreateResponse(HttpStatusCode.OK, marks));
                }

                logger.Info("Authorisation failure. User is not authorised for this request.");
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Access Denied. We’re sorry, " +
                                                   "but you are not authorized to perform the requested operation."));
            }
            catch (Exception e)
            {
                logger.Error(e);
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, e));
            }
        }
Exemple #4
0
        public MarkValuesListDTO GetMarkValuesListByStudentIdForSubjectId(string studentId, int subjectId)
        {
            Subject foundSubject = db.SubjectsRepository.GetByID(subjectId);

            if (foundSubject == null)
            {
                throw new HttpException("Subject with id: " + subjectId + " was not found.");
            }

            Student foundStudent = studentsService.GetByID(studentId);

            if (foundStudent == null)
            {
                throw new HttpException("Student with id: " + studentId + " was not found.");
            }

            IEnumerable <Mark> marksByfoundStudentId  = db.MarksRepository.GetAllMarksByStudentId(foundStudent.Id);
            IList <Mark>       foundMarksForSubjectId = new List <Mark>();

            if (marksByfoundStudentId != null)
            {
                foreach (var mark in marksByfoundStudentId)
                {
                    if (mark.FormToTeacherSubject.TeacherToSubject.Subject.Id == foundSubject.Id)
                    {
                        foundMarksForSubjectId.Add(mark);
                    }
                }
            }

            if (foundMarksForSubjectId.Count == 0)
            {
                throw new HttpException("Null");
            }

            FormToTeacherSubject foundFTS = db.FormsToTeacherSubjectsRepository.GetByFormIdAndSubjectId(foundStudent.Form.Id, foundSubject.Id);

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

            MarkValuesListDTO dto = ConvertToMarkValuesListDTO(foundFTS, foundStudent, (List <Mark>)foundMarksForSubjectId);

            return(dto);
        }
Exemple #5
0
        public IEnumerable <MarkValuesListDTO> GetMarksByFormIdFromTeacherIdForSubjectId(int formId, string teacherId, int subjectId)
        {
            Form foundForm = db.FormsRepository.GetByID(formId);

            if (foundForm == null)
            {
                throw new HttpException("The form with id: " + formId + " was not found");
            }

            Teacher foundTeacher = db.TeachersRepository.GetByID(teacherId);

            if (foundTeacher == null)
            {
                throw new HttpException("The teacher with id: " + teacherId + " was not found");
            }

            Subject foundSubject = db.SubjectsRepository.GetByID(subjectId);

            if (foundSubject == null)
            {
                throw new HttpException("The subject with id: " + subjectId + " was found");
            }

            TeacherToSubject foundTS = db.TeachersToSubjectsRepository.GetByTeacherIdAndSubjectId(foundTeacher.Id, foundSubject.Id);

            if (foundTS == null)
            {
                throw new HttpException("The subject with id: " + subjectId + " has never been assigned to " +
                                        "the teacher with id: " + teacherId + ".");
            }
            if (foundTS.StoppedTeaching != null)
            {
                throw new HttpException("The teacher id: " + foundTS.Teacher.Id + " is no longer teaching the subject id " + foundSubject.Id + ". " +
                                        "The teaching engagement has stopped at: " + foundTS.StoppedTeaching);
            }

            FormToTeacherSubject foundActiveFTS = db.FormsToTeacherSubjectsRepository.GetByFormIdAndTeacherSubjectId(foundForm.Id, foundTS.Id);

            if (foundActiveFTS == null)
            {
                throw new HttpException("The teacher id: " + foundTS.Teacher.Id + " and the subject id " + foundTS.Subject.Id + " are " +
                                        "not assigned to the form id: " + formId + ".");
            }
            if (foundActiveFTS.Stopped != null)
            {
                throw new HttpException("The teacher id: " + foundTS.Teacher.Id + " is no longer teaching the subject id " + foundTS.Subject.Id +
                                        " to the form id: " + formId + ". The teaching engagement has stopped at: " + foundActiveFTS.Stopped);
            }

            IEnumerable <Student>     formStudents = foundForm.Students;
            IList <MarkValuesListDTO> dtos         = new List <MarkValuesListDTO>();

            foreach (var student in formStudents)
            {
                IEnumerable <Mark> marksByfoundFTSByStudentId = db.MarksRepository.GetByFTSIdAndStudentId(foundActiveFTS.Id, student.Id);

                MarkValuesListDTO dto = ConvertToMarkValuesListDTO(foundActiveFTS, student, (List <Mark>)marksByfoundFTSByStudentId);
                dtos.Add(dto);
            }

            dtos = dtos.OrderBy(x => x.Student).ToList();

            return(dtos);
        }