Example #1
0
        public IActionResult enrollStudent(EnrollStudentDTO req)
        {
            Student student = new Student
            {
                IndexNumber = req.IndexNumber,
                LastName    = req.LastName,
                FirstName   = req.FirstName,
                BirthDate   = req.BirthDate
            };

            if (!context.Study.Any(s => s.Name.Equals(req.StudyName)))
            {
                return(null);
            }
            if (context.Student.Any(s => s.IndexNumber.Equals(student.IndexNumber)))
            {
                return(null);
            }
            Student addStudent = new Student
            {
                IndexNumber  = student.IndexNumber,
                LastName     = student.LastName,
                BirthDate    = student.BirthDate,
                FirstName    = student.FirstName,
                IdEnrollment = 1
            };

            context.Student.Add(addStudent);
            context.SaveChanges();
            int idStudy      = context.Study.Single(s => s.Name.Equals(req.StudyName)).IdStudy;
            int idEnrollment = context.Enrollment.Where(e => e.Semester == 1 && e.IdStudy == idStudy)
                               .OrderByDescending(e => e.StartDate).First().IdEnrollment;

            if (idEnrollment == 0)
            {
                idEnrollment = context.Enrollment.Max(e => e.IdEnrollment) + 1;
                Enrollment newEnrollment = new Enrollment
                {
                    IdEnrollment = idEnrollment,
                    Semester     = 1,
                    IdStudy      = idStudy,
                    StartDate    = DateTime.Now
                };
                context.Enrollment.Add(newEnrollment);
                context.SaveChanges();
            }
            addStudent.IdEnrollment = idEnrollment;
            context.SaveChanges();
            var resp = context.Enrollment.Single(e => e.IdEnrollment == idEnrollment);

            return(new OkObjectResult(new EnrollStudentDTO2
            {
                Semester = resp.Semester,
                IdStudy = resp.IdStudy,
                StartDate = resp.StartDate,
                IdEnrollment = resp.IdEnrollment
            }));
        }
Example #2
0
        public async Task <IActionResult> enrollStudent([FromBody] EnrollStudentDTO enrollStudentDTO)
        {
            EnrollStudentDTO d = new EnrollStudentDTO();
            var enroll         = _service.EnrollStudent(enrollStudentDTO);

            if (enroll == null)
            {
                return(this.BadRequest());
            }
            return(CreatedAtRoute("Get", new { id = enrollStudentDTO.IndexNumber }, enroll));
        }
Example #3
0
 public IActionResult EnrollStudent(EnrollStudentDTO req)
 {
     return(service.enrollStudent(req));
 }
Example #4
0
        public EnrollmentDTO EnrollStudent(EnrollStudentDTO enrollStudentDTO)
        {
            string        connectionString = "Data Source=db-mssql;Initial Catalog=s17417;Integrated Security=True";
            EnrollmentDTO enrollment;

            using (SqlConnection connection = new SqlConnection(connectionString))
                using (SqlCommand command = new SqlCommand())
                {
                    int IdStudy;

                    connection.Open();

                    var transaction = connection.BeginTransaction();
                    try
                    {
                        // enrollment = new EnrollmentDTO();
                        command.Connection  = connection;
                        command.Transaction = transaction;

                        command.CommandText = "Select IdStudy from Studies where name=@Name";
                        command.Parameters.AddWithValue("Name", enrollStudentDTO.Studies);
                        var reader = command.ExecuteReader();
                        reader.Read();

                        if (!reader.HasRows)
                        {
                            return(null);
                        }
                        IdStudy = reader.GetInt32(reader.GetOrdinal("IdStudy"));
                        reader.Close();

                        /*enrollment.Semester = 1;
                         * enrollment.IdEnrollment = 1;
                         * enrollment.IdStudy = 1;
                         * enrollment.StarDate = DateTime.Now.ToString();
                         * return enrollment;*/
                        command.CommandText = "Select * from Enrollment where Semester=1 AND IdStudy=" + IdStudy;
                        reader = command.ExecuteReader();
                        reader.Read();

                        enrollment = new EnrollmentDTO();
                        if (reader.HasRows)
                        {
                            enrollment.IdEnrollment = reader.GetInt32(reader.GetOrdinal("IdEnrollment"));
                            enrollment.Semester     = reader.GetInt32(reader.GetOrdinal("Semester"));
                            enrollment.StarDate     = reader["StartDate"].ToString();
                            enrollment.IdStudy      = reader.GetInt32(reader.GetOrdinal("IdEnrollment"));
                            reader.Close();
                        }
                        else
                        {
                            enrollment.IdStudy  = IdStudy;
                            enrollment.Semester = 1;
                            enrollment.StarDate = DateTime.Now.ToString();
                            command.CommandText = "insert into Enrollment (idEnrollment, Semester,IdStudy,StartDate)" +
                                                  "values((Select Max(IdEnrollment) + 1 from Enrollment)," + enrollment.Semester + "," + enrollment.IdStudy + "," + enrollment.StarDate + ")";
                            command.ExecuteNonQuery();
                            command.CommandText = "Select IdEnrollment,StartDate from Enrollment where " + enrollment.Semester + " AND IdStudy=" + enrollment.IdStudy;
                            //reader = command.ExecuteReader();
                            reader.Read();

                            enrollment.IdEnrollment = reader.GetInt32(reader.GetOrdinal("IdEnrollment"));
                            enrollment.StarDate     = reader["StartDate"].ToString();
                            reader.Close();
                        }

                        command.CommandText = "select 1 from Student where IndexNumber=@IndexNumber";
                        command.Parameters.AddWithValue("IndexNumber", enrollStudentDTO.IndexNumber);
                        reader = command.ExecuteReader();
                        reader.Read();
                        if (reader.HasRows)
                        {
                            reader.Close();
                            transaction.Rollback();
                            return(null);
                        }
                        reader.Close();
                        command.CommandText = "Insert into Student(IndexNumber, FirstName, LastName, BirthDate, IdEnrollment)" +
                                              "values(@IndexNumber, @FirstName,@LastName,@BirthDate," + enrollment.IdEnrollment + ")";
                        command.Parameters.AddWithValue("FirstName", enrollStudentDTO.FirstName);
                        command.Parameters.AddWithValue("LastName", enrollStudentDTO.LastName);
                        command.Parameters.AddWithValue("BirthDate", enrollStudentDTO.BirthDate);
                        command.ExecuteNonQuery();
                    } catch (SqlException e)
                    {
                        transaction.Rollback();
                        return(null);
                    }

                    transaction.Commit();

                    return(enrollment);
                }
        }