public StudentDepartmentDTOenrolled CreateStudentDepartment(StudentDepartmentDTO studentDepartmentDTO) { logger.Info($"Searching for student with ID {studentDepartmentDTO.StudentID} over student service, create student department, student department service"); Student student = studentsService.GetStudent(studentDepartmentDTO.StudentID); logger.Info($"searching for department with id {studentDepartmentDTO.DepartmentID} over student service, create student department, student department service"); Department department = departmentsService.GetDepartmentId(studentDepartmentDTO.DepartmentID); logger.Info($"Converting from DTO, createStudent department, student department service"); StudentDepartment studentDepartment = new StudentDepartment() { EnrolmentTime = studentDepartmentDTO.EnrolmentTime, Students = student, Departments = department }; logger.Info($"Sending student {studentDepartment.Students.UserName} {studentDepartment.Departments.DepartmentName} to db over student department repository, student" + $"department service, create student department"); db.StudentDepartmentsRepository.Insert(studentDepartment); logger.Info($"Saving student {studentDepartment.Students.UserName} {studentDepartment.Departments.DepartmentName} to db over student department repository, student" + $"department service, create student department"); db.Save(); logger.Info($"Converting student department to DTO, create student department, student department service"); StudentDepartmentDTOenrolled studentEnrolled = new StudentDepartmentDTOenrolled() { Student = Utilities.ConverterDTO.SimpleDTOConverter <StudentDTOIn>(studentDepartment.Students), Department = Utilities.ConverterDTO.SimpleDTOConverter <DepartmentDTOStudent>(studentDepartment.Departments), Grade = Utilities.ConverterDTO.SimpleDTOConverter <GradeDTOOut>(studentDepartment.Departments.Grades), StudentDepartmentId = studentDepartment.Id }; return(studentEnrolled); }
public List <StudentDepartment> GetStudentInfoWithDepartmentName() { SqlConnection connection = new SqlConnection(connectionString); string query = "SELECT * FROM student_department"; SqlCommand command = new SqlCommand(query, connection); List <StudentDepartment> aList = new List <StudentDepartment>(); connection.Open(); SqlDataReader reader = command.ExecuteReader(); if (reader.HasRows) { while (reader.Read()) { StudentDepartment aStudentDepartment = new StudentDepartment(); aStudentDepartment.RegistrationNo = reader["RegistrationNo"].ToString(); aStudentDepartment.Name = reader["Name"].ToString(); aStudentDepartment.Email = reader["Email"].ToString(); aStudentDepartment.DepartmentId = Convert.ToInt32(reader["DepartmentId"].ToString()); aStudentDepartment.DepartmentCode = reader["DepartmentCode"].ToString(); aStudentDepartment.DepartmentName = reader["DepartmentName"].ToString(); aList.Add(aStudentDepartment); } reader.Close(); } connection.Close(); return(aList); }
public ActionResult Edit(int id, StudentDepartment studentUpdate) { if (ModelState.IsValid) { var studentFromDB = db.Students.FirstOrDefault(x => x.StudentId == id); studentFromDB.FirstName = studentUpdate.FirstName; studentFromDB.LastName = studentUpdate.LastName; studentFromDB.EmailAddress = studentUpdate.EmailAddress; studentFromDB.gender = studentUpdate.Gender; studentFromDB.Age = studentUpdate.Age; studentFromDB.DepartmentId = studentUpdate.DepartmentId; db.Entry(studentFromDB).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); return(Content("Success")); } else { return(View()); } }
//GET /api/student/id public StudentDepartment GetStudent(int id) { var s = studentDbContext.Students.Include("Department").FirstOrDefault(c => c.SerialId == id); if (s == null) { throw new HttpResponseException(HttpStatusCode.NotFound); } var student = new StudentDepartment { SerialId = s.SerialId, FirstName = s.FirstName, LastName = s.LastName, Email = s.Email, Gender = s.Gender, BirthDate = s.BirthDate, DepartmentName = s.DepartmentId != null ? s.Department.DepartmentName : "NA", Location = s.DepartmentId != null ? s.Department.Location : "NA" }; return(student); }
public TeachDTOOut CreateTeach(TeachDTOIn newTeach) { logger.Info("Get student department over student department service, create teach teaches service"); StudentDepartment studentDepartment = studentDepartmentsService.GetStudentDepartmentByID(newTeach.StudentDepartmentID); logger.Info("Get teacher over teacher service, create teach teaches service"); Teacher teacher = teachersService.GetById(newTeach.TeacherID); logger.Info("Get subject over subject service, create teach teaches service"); Subject subject = subjectsService.GetSubjectByID(newTeach.SubjectID); logger.Info("Get teaches over teach service, create teach teaches service"); IEnumerable <Teach> teach = GetAllTeach(); //Check if subject is for students grade logger.Info("Checking if subject is for the selected grade, create teaches, teaches service"); var isGradeOk = subject.Grades.Any(x => x.Id == studentDepartment.Departments.Grades.Id); if (!isGradeOk) { throw new SubjectIsNotForThisGrade("Wrong subject"); } //check if teacher is teaching this subject logger.Info("Checking if teacher is teaching subject"); var result = teacher.Subjects.Contains(subject); if (!result) { logger.Info("Throwing exception, wrong teacher subject pair"); throw new TeacherDontTeachThisSubjectException("Teacher - subject pair does not match"); } //check if subject is alreaady added to student logger.Info("Checking if subject is already added to student"); var subjectExists = teach.Any(x => x.Subject.Equals(subject) && x.StudentDepartments.Equals(studentDepartment)); if (subjectExists) { logger.Info("Throwing exception subject already added to student"); throw new SubjectExistsException($"Subject {subject.SubjectName} already added to student {studentDepartment.Students.UserName}"); } //check if teacher teach to this department, and finds who teach logger.Info("Checking if theacher is teach in department"); var isDepartmentOK = teach.Any(x => x.Subject.Equals(subject) && x.Teachers.Equals(teacher) && x.StudentDepartments.Departments.Id.Equals(studentDepartment.Departments.Id)); var isSubjectInDepartment = teach.Any(x => x.Subject.Equals(subject) && x.StudentDepartments.Departments.Id.Equals(studentDepartment.Departments.Id)); var whoTeach = teach.Where(x => x.Subject.Equals(subject) && x.StudentDepartments.Equals(studentDepartment)).Select(x => x.Teachers.UserName); if (!isDepartmentOK) { if (isSubjectInDepartment) { logger.Info("Throwing exception teacher doesn't teach in department"); throw new TeacherDontTeachThisDepartment($"Teacher {teacher.UserName} doesn't teach to department {studentDepartment.Departments.DepartmentName}, {whoTeach} does."); } } logger.Info("Preparing teach for save in db"); Teach teachIn = new Teach() { StudentDepartments = studentDepartment, Teachers = teacher, Subject = subject }; logger.Info("Access to teaches repository for insert new teach"); db.TeachesRepository.Insert(teachIn); logger.Info("db save new teach"); db.Save(); logger.Info("Converting to dto for output"); TeachDTOOut teachDTOOut = new TeachDTOOut() { Id = teachIn.Id, Student = Utilities.ConverterDTO.SimpleDTOConverter <StudentDTO>(teachIn.StudentDepartments.Students), Department = Utilities.ConverterDTO.SimpleDTOConverter <DepartmentDTOStudent>(teachIn.StudentDepartments.Departments), TeacherSubject = studentDepartment.Teaches.Select(x => new TeacherSubjectDTO() { Teacher = Utilities.ConverterDTO.SimpleDTOConverter <TeacherDTO>(x.Teachers), Subject = Utilities.ConverterDTO.SimpleDTOConverter <SubjectDTO>(x.Subject) }) }; return(teachDTOOut); }