private StudyEnrollment FindEnrollmentBySemesterAndStudies(SqlCommand cmd, string studyName, int semester)
        {
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = @"SELECT * FROM Enrollment E RIGHT JOIN Studies S ON (S.IdStudy = E.IdStudy AND S.Name = @Name) WHERE Semester = @Semester";

            cmd.Parameters.Clear();
            cmd.Parameters.AddWithValue("Name", studyName);
            cmd.Parameters.AddWithValue("Semester", semester);
            var dr = cmd.ExecuteReader();

            if (!dr.Read())
            {
                throw new StudiesNotFoundException();
            }

            var enroll = new StudyEnrollment
            {
                IdEnrollment = (int)dr["IdEnrollment"],
                Semester     = (int)dr["Semester"],
                StartDate    = dr["StartDate"].ToString(),
                Study        = new Stud
                {
                    IdStudy = (int)dr["IdStudy"],
                    Name    = dr["Name"].ToString()
                },
            };

            dr.Close();

            return(enroll);
        }
        private StudyEnrollment FindEnrollmentByIdStudies(SqlCommand cmd, int idStudy, int semester)
        {
            cmd.CommandText = @"SELECT * FROM Enrollment e INNER JOIN Studies s ON e.IdStudy = s.IdStudy 
                              WHERE e.Semester = @Semester AND e.IdStudy = @IdStudy";

            cmd.Parameters.AddWithValue("IdStudy", idStudy);
            cmd.Parameters.AddWithValue("Semester", semester);
            var dr = cmd.ExecuteReader();

            if (!dr.Read())
            {
                throw new StudyEnrollmentNotFoundException();
            }

            var enroll = new StudyEnrollment
            {
                IdEnrollment = (int)dr["IdEnrollment"],
                Semester     = (int)dr["Semester"],
                StartDate    = dr["StartDate"].ToString(),
                Study        = new Stud
                {
                    IdStudy = idStudy,
                    Name    = dr["Name"].ToString()
                },
            };

            dr.Close();
            return(enroll);
        }
 public IActionResult PromotionStudent(PromotionStudentsReq req)
 {
     try
     {
         StudyEnrollment enroll = _dbService.PromotionStudents(req);
         String          uris   = $"/api/enrollments/{enroll.IdEnrollment}";
         return(Created(uris, enroll));
     }
     catch (StudyEnrollmentNotFoundException)
     {
         return(NotFound());
     }
 }
 public IActionResult EnrollmentStudent(EnrollmentStudentReq req)
 {
     try
     {
         StudyEnrollment enroll = _dbService.EnrollmentStudent(req);
         String          uris   = $"/api/enrollments/{enroll.IdEnrollment}";
         return(Created(uris, enroll));
     }
     catch (StudiesNotFoundException)
     {
         return(BadRequest("Nie można wyszukać podanych studentów"));
     }
     catch (StudentAlreadyExistsException)
     {
         return(BadRequest("Student o podanym numerze indeksu istnieje"));
     }
 }