public StudentDTOOutSingle GetStudentByUserName(string username, string role, string userId) { logger.Info("Accssesing db over Student rep, get student by username"); Student student = new Student(); if (role == "parents") { student = db.StudentsRepository.Get(filter: x => x.UserName == username).Where(x => x.Parents.Any(y => y.Id == userId)).FirstOrDefault(); } else if (role == "teachers") { student = db.StudentsRepository.Get(filter: x => x.UserName == username).Where(x => x.StudentDepartments.Teaches.Any(y => y.Teachers.Id == userId)).FirstOrDefault(); } else if (role == "students") { student = db.StudentsRepository.Get(filter: x => x.UserName == username).Where(x => x.Id == userId).FirstOrDefault(); } else { student = db.StudentsRepository.Get(filter: x => x.UserName == username).FirstOrDefault(); } //Student student = db.StudentsRepository.Get(filter: x => x.UserName == username).FirstOrDefault(); if (student == null) { throw new StudentNotFoundException($"Student with username {username} doesn't exists"); } logger.Info("converting student with StudentDTOConverter, get student by username"); StudentDTOOutSingle studentDTO = Utilities.ConverterDTO.StudentDTOConverter(student); return(studentDTO); }
public IHttpActionResult PutParent(string id, StudentDTOInAddParent student) { if (id != student.StudentID) { return(BadRequest()); } StudentDTOOutSingle studentDTO = studentsService.AddParentToStudent(id, student); return(Ok(studentDTO)); }
public static StudentDTOOutSingle StudentDTOConverter(Student x) { if (x.StudentDepartments == null) { StudentDTOOutSingle studentDTO = new StudentDTOOutSingle() { Id = x.Id, FirstName = x.FirstName, LastName = x.LastName, UserName = x.UserName, ClassName = $"Student with username {x.UserName} is registered, but not enrolled", EnrolmentTime = null, Grade = 0, Subjects = null, Parents = x.Parents.Select(z => SimpleDTOConverter <ParentDTOOut>(z)) }; return(studentDTO); } else { StudentDTOOutSingle studentDTO = new StudentDTOOutSingle() { Id = x.Id, FirstName = x.FirstName, LastName = x.LastName, UserName = x.UserName, ClassName = x.StudentDepartments.Departments.DepartmentName, EnrolmentTime = x.StudentDepartments.EnrolmentTime, Grade = x.StudentDepartments.Departments.Grades.GradeYear, Subjects = x.StudentDepartments.Teaches.Select(y => new SubjectDTOOut() { Id = y.Subject.Id, SubjectFond = y.Subject.SubjectFond, SubjectName = y.Subject.SubjectName, TeacherName = y.Teachers.FirstName, TeacherLastName = y.Teachers.LastName, TeacherID = y.Teachers.Id, Marks = y.Marks.Select(m => SimpleDTOConverter <MarkDTO>(m)) }), Parents = x.Parents.Select(z => SimpleDTOConverter <ParentDTOOut>(z)) }; return(studentDTO); } }
public StudentDTOOutSingle AddParentToStudent(string id, StudentDTOInAddParent student) { Student studentToUp = GetStudent(student.StudentID); HashSet <Parent> parents = new HashSet <Parent>(); foreach (var ID in student.ParentID) { var parent = parentsService.GetParentID(ID); parents.Add(parent); } studentToUp.Parents = parents; db.StudentsRepository.Update(studentToUp); db.Save(); IEnumerable <ParentDTOOut> parentsDTO = parents.Select(x => Utilities.ConverterDTO.SimpleDTOConverter <ParentDTOOut>(x)); StudentDTOOutSingle studentDTO = new StudentDTOOutSingle() { Parents = parentsDTO }; return(studentDTO); }