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"));
     }
 }
        public StudyEnrollment EnrollmentStudent(EnrollmentStudentReq req)
        {
            var st = new Student();

            st.FirstName = req.FirstName;

            using (var con = new SqlConnection(SqlConnect))
                using (var com = new SqlCommand())
                {
                    com.Connection = con;

                    con.Open();
                    var tran = con.BeginTransaction();

                    try
                    {
                        com.Transaction = tran;
                        com.CommandText = "SELECT IdStudy FROM studies WHERE name = @name";
                        com.Parameters.AddWithValue("name", req.Studies);

                        var dr = com.ExecuteReader();
                        if (!dr.Read())
                        {
                            throw new StudiesNotFoundException();
                        }

                        int idstudy = (int)dr["IdStudy"];
                        dr.Close();

                        StudyEnrollment enroll;

                        try
                        {
                            enroll = FindEnrollmentByIdStudies(com, idstudy, 1);
                        }
                        catch (StudiesNotFoundException)
                        {
                            CreateEnrollment(com, idstudy);
                            enroll = FindEnrollmentByIdStudies(com, idstudy, 1);
                        }

                        com.CommandText = "SELECT * FROM Student WHERE IndexNumber = @IndexNumber";
                        com.Parameters.AddWithValue("IndexNumber", req.IndexNumber);
                        dr = com.ExecuteReader();

                        if (dr.Read())
                        {
                            dr.Close();
                            tran.Rollback();
                            throw new StudentAlreadyExistsException();
                        }

                        dr.Close();

                        // Dodanie nowego studenta
                        com.CommandText = "INSERT INTO Student(IndexNumber, FirstName, LastName, BirthDate, IdEnrollment) " +
                                          "VALUES (@Index, @Fname, @LName, @Bdate, @IdEnrollment)";
                        com.Parameters.AddWithValue("Index", req.IndexNumber);
                        com.Parameters.AddWithValue("Fname", req.FirstName);
                        com.Parameters.AddWithValue("Lname", req.LastName);
                        com.Parameters.AddWithValue("Bdate", req.BirthDate);
                        com.Parameters.AddWithValue("IdEnrollment", enroll.IdEnrollment);
                        com.ExecuteNonQuery();

                        tran.Commit();

                        return(enroll);
                    }
                    catch (SqlException)
                    {
                        tran.Rollback();
                        throw new Exception("Coś poszło nie tak");
                    }
                }
        }