Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 5
0
        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);
        }