Esempio n. 1
0
        public Enrollment EnrollStudent(EnrollStudentRequest request)
        {
            using (var connection = new SqlConnection(CONNECTION_STRING))
                using (var command = new SqlCommand()) {
                    command.Connection = connection;
                    connection.Open();
                    var transaction = connection.BeginTransaction();
                    command.Transaction = transaction;

                    command.CommandText = "SELECT IdStudy FROM Studies WHERE Name = @studies";
                    command.Parameters.AddWithValue("studies", request.Studies);
                    var reader = command.ExecuteReader();
                    if (!reader.Read())
                    {
                        return(null);
                    }
                    var idStudy = Int32.Parse(reader["IdStudy"].ToString());
                    reader.Close();

                    var enrollment = new Enrollment();

                    command.CommandText = "SELECT e.IdEnrollment, e.Semester, e.IdStudy, e.StartDate FROM Enrollment e INNER JOIN Studies s ON s.IdStudy = e.IdStudy WHERE s.Name = @studyname";
                    command.Parameters.AddWithValue("studyname", request.Studies);
                    reader = command.ExecuteReader();
                    if (reader.Read())
                    {
                        enrollment.IdEnrollment = Int32.Parse(reader["IdEnrollment"].ToString());
                        enrollment.Semester     = Int32.Parse(reader["Semester"].ToString());
                        enrollment.IdStudy      = Int32.Parse(reader["IdStudy"].ToString());
                        enrollment.StartDate    = DateTime.Parse(reader["StartDate"].ToString());
                    }
                    else
                    {
                        var idEnrollement = 1;

                        reader.Close();

                        command.CommandText = "SELECT MAX(IdEnrollement) + 1 FROM Enrollment";
                        reader = command.ExecuteReader();
                        if (reader.Read())
                        {
                            idEnrollement = Int32.Parse(reader[0].ToString());
                        }
                        enrollment.IdEnrollment = idEnrollement;
                        enrollment.Semester     = 1;
                        enrollment.IdStudy      = idStudy;
                        enrollment.StartDate    = DateTime.Now;

                        command.CommandText = "INSERT INTO Enrollment (IdEnrollment, Semester, IdStudy, StartDate) " +
                                              "VALUES (@idenrollment, @semester, @idstudy, @startdate)";
                        command.Parameters.AddWithValue("idenrollment", enrollment.IdEnrollment);
                        command.Parameters.AddWithValue("semester", enrollment.Semester);
                        command.Parameters.AddWithValue("idstudy", enrollment.IdStudy);
                        command.Parameters.AddWithValue("startdate", enrollment.StartDate.Date);
                        command.ExecuteNonQuery();
                    }
                    reader.Close();

                    command.CommandText = "SELECT 1 FROM Student s WHERE s.IndexNumber = @indexnumber";
                    command.Parameters.AddWithValue("indexnumber", request.IndexNumber);
                    reader = command.ExecuteReader();
                    if (reader.Read())
                    {
                        reader.Close();
                        transaction.Rollback();
                        return(null);
                    }
                    reader.Close();
                    command.CommandText = "INSERT INTO Student (IndexNumber, FirstName, LastName, BirthDate, IdEnrollment) " +
                                          "VALUES (@index, @firstname, @lastname, @birthdate, @idenrollement)";
                    command.Parameters.AddWithValue("index", request.IndexNumber);
                    command.Parameters.AddWithValue("firstname", request.FirstName);
                    command.Parameters.AddWithValue("lastname", request.LastName);
                    command.Parameters.AddWithValue("birthdate", request.BirthDate);
                    command.Parameters.AddWithValue("idenrollement", enrollment.IdEnrollment);
                    command.ExecuteNonQuery();

                    transaction.Commit();

                    return(enrollment);
                }
        }
Esempio n. 2
0
        public EnrollStudentResponse EnrollStudent(EnrollStudentRequest request)
        {
            using (var connection = new SqlConnection(connectionString))
                using (var command = new SqlCommand())
                {
                    command.Connection = connection;

                    connection.Open();

                    command.CommandText = "SELECT IdStudy FROM studies WHERE name=@name";
                    command.Parameters.AddWithValue("name", request.Studies);

                    var read = command.ExecuteReader();
                    if (!read.Read())
                    {
                        throw new Exception("No such studies");
                    }

                    int idStudies = (int)read["IdStudy"];
                    read.Close();

                    command.CommandText = "SELECT * FROM Student WHERE IndexNumber=@index";
                    command.Parameters.AddWithValue("index", request.IndexNumber);

                    read = command.ExecuteReader();
                    if (read.Read())
                    {
                        throw new Exception("IndexNumber not unique");
                    }

                    read.Close();

                    command.CommandText = "SELECT * FROM enrollment WHERE Semester=@semester AND IdStudy=@idStudy";
                    command.Parameters.AddWithValue("idStudy", idStudies);
                    command.Parameters.AddWithValue("semester", 1);
                    int      idEnroll = 1;
                    DateTime dateTime = DateTime.Now;
                    read = command.ExecuteReader();
                    if (!read.Read())
                    {
                        read.Close();

                        command.CommandText = "SELECT MAX(IdEnrollment) as maximus from enrollment";
                        read = command.ExecuteReader();
                        if (read.Read())
                        {
                            idEnroll = (int)read["maximus"] + 1;
                        }

                        read.Close();
                        Console.WriteLine(idEnroll);
                        command.CommandText = "INSERT INTO Enrollment(IdEnrollment,Semester,IdStudy,StartDate) VALUES(@id, @sem, @idstud, @date)";
                        command.Parameters.AddWithValue("@id", idEnroll);
                        command.Parameters.AddWithValue("@sem", 1);
                        command.Parameters.AddWithValue("@idstud", idStudies);
                        command.Parameters.AddWithValue("@date", dateTime);
                    }
                    else
                    {
                        idEnroll = (int)read["IdEnrollment"];
                        dateTime = (DateTime)read["StartDate"];
                    }
                    read.Close();
                    command.CommandText = "INSERT INTO Student(IndexNumber,FirstName,LastName,BirthDate,IdEnrollment) VALUES(@indx, @firna, @laname, @date, @idEnrol)";
                    command.Parameters.AddWithValue("indx", request.IndexNumber);
                    command.Parameters.AddWithValue("firna", request.FirstName);
                    command.Parameters.AddWithValue("laname", request.LastName);
                    command.Parameters.AddWithValue("date", request.DateOfBirth);
                    command.Parameters.AddWithValue("idEnrol", idEnroll);
                    command.ExecuteNonQuery();

                    return(new EnrollStudentResponse()
                    {
                        IdEnroll = idEnroll,
                        Semester = 1,
                        Study = idStudies,
                        Date = dateTime
                    });
                }
        }
Esempio n. 3
0
        public StudentsEnrollmentResponse StartEnrollStudent(EnrollStudentRequest request)
        {
            StudentsEnrollmentResponse response = null;

            using (var con = new SqlConnection(ConString))
                using (var com = new SqlCommand())
                {
                    com.Connection = con;
                    con.Open();
                    var trans = con.BeginTransaction();
                    com.Transaction = trans;


                    try
                    {
                        //Czy studia istnieja?
                        com.CommandText = "SELECT IdStudy FROM Studies WHERE Name = @name";
                        com.Parameters.AddWithValue("name", request.Studies);
                        var dr = com.ExecuteReader();

                        if (!dr.Read())
                        {
                            trans.Rollback();
                            throw new EnrollmentException("Dane studia nie istnieją");
                        }

                        int idStudy = int.Parse(dr["IdStudy"].ToString());
                        dr.Close();

                        //Czy index jest unikalny?
                        com.CommandText = "SELECT IndexNumber FROM Student WHERE IndexNumber =@IndexNumber";
                        com.Parameters.AddWithValue("IndexNumber", request.IndexNumber);

                        dr = com.ExecuteReader();

                        if (dr.HasRows)
                        {
                            trans.Rollback();
                            throw new EnrollmentException("Podany numer indexu jest już używany");
                        }
                        dr.Close();

                        //Czy jest już taki wpis w tabel Enrollments o danym IdEnrollments dla stówdiów o IdStudy

                        com.CommandText = "SELECT IdEnrollment FROM Enrollment WHERE IdStudy =@IdStudy AND Semester = 1 ORDER BY StartDate DESC";
                        com.Parameters.AddWithValue("IdStudy", idStudy);
                        int idEnrollment;
                        dr = com.ExecuteReader();

                        DateTime startDate = DateTime.Now;
                        if (dr.HasRows)
                        {
                            idEnrollment = (int)dr["IdEnrollment"];
                        }
                        else
                        {
                            //dodajemy wpis do Enorllment
                            //sprawdzamy maxymalny wpis w IdEnrollment
                            dr.Close();

                            com.CommandText = "SELECT Max(IdEnrollment) AS Max  FROM Enrollment";
                            dr = com.ExecuteReader();

                            if (dr.Read())
                            {
                                idEnrollment = (int)dr["Max"] + 1;
                            }
                            else
                            {
                                throw new EnrollmentException("Błąd w czytaniu max enrollment");
                            }
                            dr.Close();

                            com.CommandText = $"INSERT INTO Enrollment(IdEnrollment,Semester,IdStudy,StartDate) " +
                                              $"VAUES (@IdEnrollment,@Semester,@IdStudy,@StartDate)";
                            com.Parameters.AddWithValue("IdEnrollment", idEnrollment);
                            com.Parameters.AddWithValue("Semester", "1");
                            com.Parameters.AddWithValue("IdStudy", idStudy);
                            com.Parameters.AddWithValue("StartDate", startDate);

                            com.BeginExecuteNonQuery();
                        }


                        //Dodajemy wpis do Students
                        com.CommandText = $"INSERT INTO Student(IndexNumber, FirstName,LastName,BirthDate, IdEnrollment)" +
                                          $" VALUES ( @IndexNumber, @FirstName, @LastName, @Birthdate, @IdEnrollment)";

                        com.Parameters.AddWithValue("IndexNumber", request.IndexNumber);
                        com.Parameters.AddWithValue("FirstName", request.FirstName);
                        com.Parameters.AddWithValue("LastName", request.LastName);
                        com.Parameters.AddWithValue("BirthDate", request.BirthDate);
                        com.Parameters.AddWithValue("IdEnrollment", idEnrollment);

                        com.ExecuteNonQuery();

                        response = new StudentsEnrollmentResponse
                        {
                            IndexNumber = request.IndexNumber,
                            FirstName   = request.FirstName,
                            LastName    = request.LastName,
                            BirthDate   = request.BirthDate,
                            Name        = request.Studies,
                            Semester    = 1,
                            StartDate   = startDate
                        };

                        trans.Commit();
                    }
                    catch (SqlException e)
                    {
                        trans.Rollback();
                        return(null);
                    }
                }
            return(response);
        }
Esempio n. 4
0
        public Enrollment EnrollStudent(EnrollStudentRequest request)
        {
            var st = new Student();

            st.LastName  = request.LastName;
            st.FirstName = request.FirstName;
            st.BirthDate = request.BirthDate;
            st.Studies   = request.Studies;
            st.Semester  = 1;

            var enrollment = new Enrollment();

            enrollment.Semester = 1;

            using (var con = new SqlConnection("Data Source=db-mssql;Initial Catalog=s17470;Integrated Security=True"))
                using (var com = new SqlCommand())
                {
                    com.Connection = con;
                    con.Open();                        //otiweramy polaczenie
                    var tran = con.BeginTransaction(); //otwieramy nowa transakcje

                    try
                    {
                        //1. Spr czy istnieja studia
                        com.CommandText = "SELECT IdStudy FROM Studies WHERE name=@name"; //SQL command
                        com.Parameters.AddWithValue("name", request.Studies);             //set value to @name parameter
                        //response.StudiesName = request.Studies;
                        com.Transaction = tran;                                           //musi byc przed ExecuteReader
                        var dr = com.ExecuteReader();                                     //odczytujemy efekt zapytania
                        if (!dr.Read())                                                   //jesli zapytanie NIC nie zwrocilo..
                        {
                            dr.Close();
                            tran.Rollback(); //wycofujemy transakcje
                            // return BadRequest("Studia nie istnieja.");  //musimy zwrocic blad
                        }
                        int idStudies = (int)dr["IdStudy"]; //bierzemy number id studiow, przyda sie pozniej...
                        //response.IdStudies = idStudies;
                        enrollment.IdStudies = idStudies;
                        dr.Close();

                        //2. Spr czy nr indexu studenta jest unikalny
                        com.CommandText = "SELECT INDEXNUMBER FROM STUDENT WHERE INDEXNUMBER = @Index";
                        com.Parameters.AddWithValue("Index", request.IndexNumber);
                        dr = com.ExecuteReader(); //odczytujemy efekt zapytania

                        if (dr.Read())            //jesli zapytanie cos zwrocilo...
                        {
                            dr.Close();
                            tran.Rollback(); //wycofujemy transakcje
                            //return BadRequest("W bazie istnieje juz ten number indeksu.");  //musimy zwrocic blad
                        }

                        dr.Close();

                        int IdEnrollment = 0;

                        //3. odnajdujemy najnowszy wpis w tabeli Enrollments zgodny ze studiami studenta i wartoscia Semester = 1
                        com.CommandText = "Select IdEnrollment FROM Enrollment WHERE Semester = 1 AND IdStudy =" + idStudies;
                        dr = com.ExecuteReader(); //odczytujemy efekt zapytania
                        if (dr.Read())            //jesli zapytanie cos zwrocilo...
                        {
                            IdEnrollment = ((int)dr["IdEnrollment"]);
                            dr.Close();
                        }
                        else if (!dr.Read())
                        {
                            dr.Close();
                            com.CommandText = "Select IdEnrollment FROM Enrollment WHERE IdEnrollment = (Select MAX(IdEnrollment) FROM Enrollment)";
                            dr = com.ExecuteReader(); //Dodane
                            dr.Read();
                            IdEnrollment = ((int)dr["IdEnrollment"]) + 1;
                            dr.Close();
                            com.CommandText = "INSERT INTO ENROLLMENT (IDENROLLMENT,SEMESTER,IDSTUDY,STARTDATE) VALUES (" + IdEnrollment + ",1," + idStudies + ", '2021-09-10')";

                            com.ExecuteNonQuery();
                        }
                        else
                        {
                            tran.Rollback();
                            // return BadRequest("ERROR!");
                        };


                        //response.IdEnrollment = IdEnrollment;
                        enrollment.IdEnrollment = IdEnrollment;

                        com.CommandText = "INSERT INTO Student(IndexNumber, FirstName,LastName,BirthDate,IdEnrollment) VALUES (@index2,@firstName,@lastName,@birthDate,@idEnrollment)"; //nowe zapytanie, a raczej wypchniecie danych do tabeli
                        com.Parameters.AddWithValue("index2", request.IndexNumber);                                                                                                     //przypisanie wartosci do powyzszych paramterow
                        com.Parameters.AddWithValue("firstName", request.FirstName);                                                                                                    //j.w.
                        com.Parameters.AddWithValue("lastName", request.LastName);
                        com.Parameters.AddWithValue("birthDate", "1993-09-11");
                        com.Parameters.AddWithValue("idEnrollment", IdEnrollment);

                        com.ExecuteNonQuery(); //wypychamy zapytanie
                        tran.Commit();         //potwierdzamy transakcje

                        dr.Close();
                        com.CommandText = "Select * From Enrollment WHERE IdEnrollment = " + IdEnrollment;
                        dr = com.ExecuteReader();
                        string message = "";
                        while (dr.Read())
                        {
                            //message = string.Concat(message, '\n', "Enrollment ID:" , dr["IdEnrollment"].ToString(), ", Semester: ", dr["Semester"].ToString());
                            message = string.Concat(message, '\n', "Enrollment ID:", enrollment.IdEnrollment.ToString(), ", Semester: ", enrollment.Semester.ToString(), ", ID Studies: :", enrollment.IdStudies.ToString());
                        }


                        //return Ok(message);
                    }
                    catch (SqlException exc) //wylapujemy ewentualny blad...
                    {
                        tran.Rollback();     //...i w razie czego robimy rollback

                        // return BadRequest(exc.ToString());
                    }
                }

            return(enrollment);
        }
Esempio n. 5
0
        public EnrollStudentResponse EnrollStudent(EnrollStudentRequest request)
        {
            var st = new Student();

            st.FirstName   = request.FirstName;
            st.LastName    = request.LastName;
            st.IndexNumber = request.IndexNumber;
            st.Birthdate   = DateTime.Now.Date;
            //Console.WriteLine(DateTime.Now.Date);
            int sem = -1, idS = -1; DateTime sDate = DateTime.Now; int idEnrollment = -1;

            using (var con = new SqlConnection("Data Source=db-mssql;Initial Catalog=s18445; Integrated Security=True"))
                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", request.Studies);

                        var dr = com.ExecuteReader();

                        if (!dr.Read())
                        {
                            tran.Rollback();
                            //return BadRequest("Studia nie istnieja");
                        }
                        int idStudies = (int)dr["IdStudy"];

                        com.CommandText = "Select TOP (1) IDENROLLMENT, SEMESTER, ENROLLMENT.IDSTUDY, STARTDATE FROM ENROLLMENT, STUDIES " +
                                          "WHERE ENROLLMENT.IDSTUDY = STUDIES.IDSTUDY " +
                                          "AND SEMESTER = 1 " +
                                          "AND NAME = @nNAME " +
                                          "ORDER BY STARTDATE DESC";
                        com.Parameters.AddWithValue("nNAME", request.Studies);
                        dr.Close();
                        dr = com.ExecuteReader();

                        if (!dr.Read())
                        {
                            com.CommandText = "INSERT INTO ENROLLMENT VALUES( (SELECT MAX(IDENROLLMENT)+1 FROM ENROLLMENT),1,@idStudies,@dateNow)";
                            com.Parameters.AddWithValue("idStudies", idStudies);
                            com.Parameters.AddWithValue("dateNow", DateTime.Now.Date);
                            dr.Close();
                            com.ExecuteNonQuery();

                            com.CommandText = "SELECT TOP(1) * FROM ENROLLMENT ORDER BY IDENROLLMENT DESC";
                            dr = com.ExecuteReader();
                            dr.Read();
                            Console.WriteLine(dr.ToString());
                            idEnrollment = (int)dr["IDENROLLMENT"];
                        }
                        else
                        {
                            idEnrollment = (int)dr["IDENROLLMENT"];
                        }

                        //dodanie studenta
                        com.CommandText = "SELECT * FROM STUDENT WHERE INDEXNUMBER = @indexnumber";
                        com.Parameters.AddWithValue("indexnumber", request.IndexNumber);
                        dr.Close();
                        dr = com.ExecuteReader();

                        if (dr.Read())
                        {
                            //return BadRequest("Student o tym indeksie juz istnieje");
                        }
                        dr.Close();
                        com.CommandText = "INSERT INTO Student(IndexNumber, FirstName, LastName, BirthDate, IdEnrollment) VALUES(@Index, @Fname, @LName, @Bday, @IdEn)";
                        com.Parameters.AddWithValue("Index", request.IndexNumber);
                        com.Parameters.AddWithValue("Fname", request.FirstName);
                        com.Parameters.AddWithValue("Lname", request.LastName);
                        string dt  = request.Birthdate.Replace(".", "-");
                        string tmp = dt.Substring(6, 4) + "-" + dt.Substring(3, 2) + "-" + dt.Substring(0, 2);
                        //10.10.1999 -> 1999-01-01
                        com.Parameters.AddWithValue("Bday", tmp);
                        com.Parameters.AddWithValue("IdEn", idEnrollment);
                        com.ExecuteNonQuery();

                        com.CommandText = "Select * from Enrollment where idenrollment = @IdEnz";
                        com.Parameters.AddWithValue("IdEnz", idEnrollment);
                        dr = com.ExecuteReader();
                        dr.Read();
                        sem   = (int)dr["Semester"];
                        idS   = (int)dr["IdStudy"];
                        sDate = ((DateTime)dr["StartDate"]);
                        dr.Close();

                        tran.Commit();
                    }
                    catch (SqlException exc)
                    {
                        tran.Rollback();

                        // return BadRequest(exc.Message);
                    }
                }
            var response = new EnrollStudentResponse();

            response.idEnrollment = idEnrollment;
            response.Semester     = sem;
            response.IdStudy      = idS;
            response.StartDate    = sDate;

            return(response);
        }
Esempio n. 6
0
        public EnrollStudentRequest EnrollStudent(EnrollStudentRequest request)
        {
            if (request.FirstName == null || request.BirthDate == null || request.StudiesName == null)
            {
                return(null);
            }

            var enrollment = new EnrollStudentRequest();

            using (var con = new SqlConnection(_connString))
            {
                con.Open();
                var tran = con.BeginTransaction();

                try
                {
                    using (var com = new SqlCommand())
                    {
                        int idStudy      = 0;
                        int idEnrollment = 0;

                        com.Connection  = con;
                        com.Transaction = tran;
                        com.CommandText = "select IdStudy from Studies where Name=@StudiesName";
                        com.Parameters.AddWithValue("StudiesName", request.StudiesName);



                        var dr = com.ExecuteReader();
                        if (!dr.Read())
                        {
                            dr.Close();
                            tran.Rollback();
                            return(null);
                        }
                        else
                        {
                            idStudy = (int)dr["IdStudy"];
                            com.Parameters.AddWithValue("IdStudy", idStudy);
                        }

                        dr.Close();

                        com.CommandText = "Select IdEnrollment from Enrollment where Semester=1 AND IdStudy=@idStudy";

                        dr = com.ExecuteReader();
                        if (!dr.Read())
                        {
                            dr.Close();

                            com.CommandText = "Select MAX(IdEnrollment) from Enrollment";
                            DateTime currentDate = DateTime.Now;
                            com.Parameters.AddWithValue("CurrentDate", currentDate);

                            var dr1 = com.ExecuteReader();
                            while (dr1.Read())
                            {
                                idEnrollment = int.Parse(dr1["IdEnrollment"].ToString()) + 1;
                                com.Parameters.AddWithValue("IdEnrollment", idEnrollment);
                            }
                            dr1.Close();

                            com.CommandText = "Insert into Enrollment(IdEnrollment, Semester, IdStudy, StartDate) values (@IdEnrollment, 1, @idStudy, @CurrentDate)";
                            com.ExecuteNonQuery();
                        }
                        else
                        {
                            idEnrollment = (int)dr["IdEnrollment"];
                            com.Parameters.AddWithValue("IdEnrollment", idEnrollment);
                            dr.Close();
                        }

                        com.CommandText = "Insert into Student(IndexNumber, FirstName, LastName, Birthdate, IdEnrollment) values (@IndexNumber, @FirstName, @LastName, @BirthDate, @IdEnrollment)";

                        string indexNumber = $"s{new Random().Next(1, 2000)}";
                        com.Parameters.AddWithValue("IndexNumber", indexNumber);
                        com.Parameters.AddWithValue("FirstName", request.FirstName);
                        com.Parameters.AddWithValue("LastName", request.LastName);
                        com.Parameters.AddWithValue("BirthDate", request.BirthDate);

                        dr.Close();
                        com.ExecuteNonQuery();

                        com.CommandText = "Select IndexNumber, FirstName, LastName, BirthDate, Name, Semester from Student, Studies, Enrollment " +
                                          "where Enrollment.IdEnrollment = Student.IdEnrollment AND Enrollment.IdStudy = Studies.IdStudy " +
                                          "AND IndexNumber = @IndexNumber;";

                        dr = com.ExecuteReader();
                        while (dr.Read())
                        {
                            enrollment.IndexNumber = dr["IndexNumber"].ToString();
                            enrollment.FirstName   = dr["FirstName"].ToString();
                            enrollment.LastName    = dr["LastName"].ToString();
                            enrollment.BirthDate   = DateTime.Parse(dr["BirthDate"].ToString());
                            enrollment.StudiesName = dr["Name"].ToString();
                            enrollment.Semester    = Int32.Parse(dr["Semester"].ToString());
                        }
                        dr.Close();
                    }
                }
                catch (Exception)
                {
                    tran.Rollback();
                }
                tran.Commit();
            }
            return(enrollment);
        }
Esempio n. 7
0
 public IActionResult EnrollStudent(EnrollStudentRequest request)
 {
     return(StatusCode(201, _service.EnrollStudent(request)));
 }
Esempio n. 8
0
        public EnrollStudentsResponse enroll(EnrollStudentRequest s)
        {
            EnrollStudentsResponse ret = new EnrollStudentsResponse();

            CultureInfo provider = CultureInfo.InvariantCulture;

            s.Bdate = DateTime.ParseExact(s.BirthDate.Replace('.', '-'), "dd-MM-yyyy", provider);


            using (var con = new SqlConnection(constr))
                using (var com = new SqlCommand())
                {
                    com.Connection = con;
                    con.Open();
                    var tran = con.BeginTransaction();
                    com.Transaction = tran;
                    try
                    {
                        com.CommandText = "select IdStudy from studies where name = @name";
                        com.Parameters.AddWithValue("name", s.Studies);

                        var dr0 = com.ExecuteReader();
                        if (!dr0.Read())
                        {
                            tran.Rollback();
                            message = "Studia nie istnieja";
                            code    = 400;
                            return(null);
                        }

                        int IdStudy = (int)dr0["IdStudy"];

                        com.CommandText = "select * from enrollment where idStudy = @id and semester = 1";
                        com.Parameters.AddWithValue("id", IdStudy);

                        dr0.Close();
                        int     idEnr  = 0;
                        Boolean addEnr = false;

                        var dr1 = com.ExecuteReader();
                        if (dr1.Read())
                        {
                            idEnr            = (int)dr1["IdEnrollment"];
                            ret.IdEnrollment = idEnr;
                            ret.IdStudy      = (int)dr1["IdStudy"];
                            ret.Semester     = (int)dr1["Semester"];
                            ret.StartDate    = (DateTime)dr1["StartDate"];
                            dr1.Close();
                        }
                        else
                        {
                            addEnr = true;
                            dr1.Close();
                            com.CommandText = "select Max(IdEnrollment) AS MID from enrollment ";
                            var dr2 = com.ExecuteReader();
                            dr2.Read();
                            idEnr = ((int)dr2["MID"]) + 1;
                            dr2.Close();
                        }
                        com.Parameters.Clear();
                        com.CommandText = "Select IndexNumber from Student where IndexNumber = @idS";
                        com.Parameters.AddWithValue("idS", s.IndexNumber);
                        var dr3 = com.ExecuteReader();
                        if (dr3.Read())
                        {
                            message = "Student juz istnieje";
                            code    = 400;
                            dr3.Close();
                            tran.Rollback();
                            return(null);
                        }
                        dr3.Close();



                        if (addEnr)
                        {
                            com.Parameters.Clear();
                            com.CommandText = "Insert into Enrollment (IdEnrollment, Semester, IdStudy, StartDate) VALUES (@IdEnr, 1, @IdS, @sdate)";
                            com.Parameters.AddWithValue("IdEnr", idEnr);
                            com.Parameters.AddWithValue("IdS", IdStudy);
                            com.Parameters.AddWithValue("sdate", DateTime.Today);
                            com.ExecuteNonQuery();
                            com.CommandText = "select * from enrollment where IdEnrollmet = (Select Max(IdEnrollment) from enrollment)";
                            var dr4 = com.ExecuteReader();
                            dr4.Read();
                            ret.IdEnrollment = idEnr;
                            ret.IdStudy      = (int)dr4["IdStudy"];
                            ret.Semester     = (int)dr4["Semester"];
                            ret.StartDate    = (DateTime)dr4["StartDate"];
                            dr4.Close();
                        }

                        com.Parameters.Clear();

                        com.CommandText = "Insert into Student (IndexNumber, FirstName, LastName, BirthDate, IdEnrollment) values (@index, @name, @sname, @bdate, @Idenr);";
                        com.Parameters.AddWithValue("index", s.IndexNumber);
                        com.Parameters.AddWithValue("name", s.FirstName);
                        com.Parameters.AddWithValue("sname", s.LastName);
                        com.Parameters.AddWithValue("bdate", s.Bdate);
                        com.Parameters.AddWithValue("Idenr", idEnr);

                        com.ExecuteNonQuery();

                        tran.Commit();
                        return(ret);
                    }
                    catch (SqlException e)
                    {
                        tran.Rollback();
                        message = e.Message;
                        code    = 400;
                        return(null);
                    }
                }
        }
Esempio n. 9
0
        public Response EnrollStudent(EnrollStudentRequest request)
        {
            using (var con = new SqlConnection(ConString))
                using (var com = new SqlCommand())
                {
                    com.Connection = con;
                    con.Open();
                    var tran = con.BeginTransaction();
                    com.Transaction = tran;

                    try
                    {
                        //czy studia istniaja
                        com.CommandText = @"select IdStudy 
                                            from studies 
                                            where name = @name";
                        com.Parameters.AddWithValue("name", request.Studies);

                        var dr = com.ExecuteReader();

                        if (!dr.Read())
                        {
                            dr.Close();
                            tran.Rollback();
                            return(new Response("400", "Studia " + request.Studies + " nie istnieją", null));
                        }

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

                        //czy istnieje wpis dla studiow, z semestrem 1
                        com.CommandText = @"select idEnrollment 
                                            from enrollment 
                                            where semester = 1 and idStudy = @idStudy";
                        com.Parameters.AddWithValue("idStudy", idStudy);

                        int idEnrollment;

                        com.Transaction = tran;
                        dr = com.ExecuteReader();
                        if (dr.Read())
                        {
                            idEnrollment = (int)dr["idEnrollment"];
                            dr.Close();
                        }
                        else
                        {
                            dr.Close();
                            com.CommandText = @"insert into Enrollment
                                                            values((SELECT MAX(idEnrollment) + 1 FROM Enrollment),
                                                            1,
                                                            @idStudy,
                                                            getDate())";
                            com.Transaction = tran;
                            com.ExecuteNonQuery();
                            dr.Close();

                            com.CommandText = @"select idEnrollment 
                                                        from enrollment 
                                                        where semester = 1 and idStudy = @idStudy";
                            com.Transaction = tran;
                            dr = com.ExecuteReader();
                            dr.Read();
                            idEnrollment = (int)dr["idEnrollment"];
                            dr.Close();
                        }

                        //dodanie studenta
                        com.CommandText = @"insert into student
                                            values(@IndexNumber, @FirstName, @LastName, @BirthDate, 
                                            (select MAX(idEnrollment) from Enrollment))";
                        com.Parameters.AddWithValue("IndexNumber", request.IndexNumber);
                        com.Parameters.AddWithValue("FirstName", request.FirstName);
                        com.Parameters.AddWithValue("LastName", request.LastName);
                        com.Parameters.AddWithValue("BirthDate", request.BirthDate);

                        com.ExecuteNonQuery();

                        tran.Commit();

                        var enrollment = new EnrollStudentResponse();
                        enrollment.IndexNumber = request.IndexNumber;
                        enrollment.FirstName   = request.FirstName;
                        enrollment.LastName    = request.LastName;
                        enrollment.Studies     = request.Studies;
                        enrollment.Semester    = 1;

                        return(new Response("201", "Zapisano studenta", enrollment));
                    }
                    catch (SqlException exc)
                    {
                        tran.Rollback();
                    }
                }
            return(new Response("400", "Bad request", null));
        }
Esempio n. 10
0
        public IActionResult EnrollStudent(EnrollStudentRequest request)
        {
            var st = new Student()
            {
                firstName = request.firstName,
                lastName  = request.lastName,
                index     = request.indexNUmber,
                birthDate = request.birthDate,
                studies   = request.studies
            };

            using (var con = new SqlConnection("Data Source=db-mssql;Initial Catalog=s19017;Integrated Security=True"))
                using (var com = new SqlCommand())
                {
                    com.Connection = con;
                    con.Open();
                    var tran = con.BeginTransaction();
                    com.Transaction = tran;

                    try
                    {
                        com.CommandText = "select IdStudy from studies where name=@name;";
                        com.Parameters.AddWithValue("name", request.studies);

                        var dr = com.ExecuteReader();
                        if (!dr.Read())
                        {
                            dr.Close();
                            tran.Rollback();
                            return(BadRequest("Studia nie istnieja"));
                        }

                        int idstudies = (int)dr["IdStudy"];
                        dr.Close();
                        com.CommandText = "select e.IdEnrollment, e.Semester, e.IdStudy, e.StartDate from Enrollment e join Studies s on e.idStudy = s.IdStudy where e.semester=1 and s.name=@name;";

                        int idEnrollment;
                        dr = com.ExecuteReader();
                        if (!dr.Read())
                        {
                            dr.Close();
                            com.CommandText = "insert into Enrollment values (ISNULL(MAX(IdEnrollment) + 1), @Semestr, @IdStudy, GetDate())";
                            com.Parameters.AddWithValue("Semestr", 1);
                            com.Parameters.AddWithValue("IdStudy", request.studies);
                            com.ExecuteNonQuery();
                        }
                        dr.Close();
                        com.CommandText = "select e.IdEnrollment, e.Semester, e.IdStudy, e.StartDate from Enrollment e join Studies s on e.idStudy = s.IdStudy where e.semester=1 and s.name=@name;";
                        dr = com.ExecuteReader();
                        dr.Read();
                        idEnrollment = (int)dr["IdEnrollment"];
                        dr.Close();

                        com.CommandText = "select * from student where IndexNumber=@index;";
                        com.Parameters.AddWithValue("index", request.indexNUmber);
                        dr = com.ExecuteReader();
                        if (dr.Read())
                        {
                            dr.Close();
                            tran.Rollback();
                            return(BadRequest("Student o podanym indexie istnieje w bazie"));
                        }
                        dr.Close();

                        com.CommandText = "INSERT INTO Student(IndexNumber, FirstName, LastName, BirthDate, IdEnrollment) VALUES(@Index, @Fname, @Lname, @BirthDate, @IdEnrollment)";
                        com.Parameters.AddWithValue("Fname", request.firstName);
                        com.Parameters.AddWithValue("Lname", request.lastName);
                        com.Parameters.AddWithValue("BirthDate", request.birthDate);
                        com.Parameters.AddWithValue("IdEnrollment", idEnrollment);
                        com.ExecuteNonQuery();
                        tran.Commit();
                    }
                    catch (SqlException e)
                    {
                        tran.Rollback();
                        return(BadRequest(e));
                    }
                    var response = new EnrollStudentResponse()
                    {
                        lastName  = request.lastName,
                        semester  = 1,
                        startDate = DateTime.Now
                    };
                    return(StatusCode(201, response));
                }
        }
Esempio n. 11
0
 public async Task <IActionResult> EnrollStudent(EnrollStudentRequest request)
 {
     return(await _service.EnrollStudent(request));
 }
Esempio n. 12
0
        public EnrollStudentResponse EnrollStudent(EnrollStudentRequest request)
        {
            if (db.Student.Any(s => s.IndexNumber == request.IndexNumber))
            {
                return(null);
            }

            var study = db.Studies.Where(s => s.Name == request.Studies).First();

            if (study == null)
            {
                return(null);
            }

            var enr = db.Enrollment.Where(en => en.StartDate
                                          .Equals(db.Enrollment.Where(e => e.Semester == 1 && e.IdStudy == study.IdStudy)
                                                  .Max(e => e.StartDate))).First();;

            if (enr != null)
            {
                String salt = passwordService.CreateSalt();
                db.Student.Add(new EStudent
                {
                    IndexNumber  = request.IndexNumber,
                    FirstName    = request.FirstName,
                    LastName     = request.LastName,
                    BirthDate    = request.Birthdate,
                    IdEnrollment = enr.IdEnrollment,
                    Pass         = passwordService.HashPassword(request.Password, salt),
                    Salt         = salt
                });
                db.SaveChanges();
                return(new EnrollStudentResponse
                {
                    IdEnrollment = enr.IdEnrollment,
                    Semester = enr.Semester,
                    Study = study.Name,
                    StartDate = enr.StartDate
                });
            }
            else
            {
                db.Enrollment.Add(new EEnrollment
                {
                    IdEnrollment = db.Enrollment.Max(e => e.IdEnrollment),
                    Semester     = 1,
                    IdStudy      = db.Studies.Max(s => s.IdStudy),
                    StartDate    = DateTime.Today
                });
                String salt = passwordService.CreateSalt();
                db.Student.Add(new EStudent
                {
                    IndexNumber  = request.IndexNumber,
                    FirstName    = request.FirstName,
                    LastName     = request.LastName,
                    BirthDate    = request.Birthdate,
                    IdEnrollment = enr.IdEnrollment,
                    Pass         = passwordService.HashPassword(request.Password, salt),
                    Salt         = salt
                });
                db.SaveChanges();
                return(new EnrollStudentResponse
                {
                    IdEnrollment = enr.IdEnrollment,
                    Semester = enr.Semester,
                    Study = study.Name,
                    StartDate = enr.StartDate
                });
            }
        }
Esempio n. 13
0
        public EnrollStudentResponse EnrollStudent(EnrollStudentRequest request)
        {
            using (var con = new SqlConnection(connection))
            {
                using (var com = new SqlCommand())
                {
                    com.Connection = con;

                    con.Open();
                    var tran = con.BeginTransaction();
                    com.Transaction = tran;
                    try
                    {
                        com.CommandText = "select IdStudy from studies where Name=@name";
                        com.Parameters.AddWithValue("@name", request.Studies);


                        var dr = com.ExecuteReader();

                        if (!dr.Read())
                        {
                            dr.Close();
                            tran.Rollback();
                            throw new NotImplementedException("Studia nie istnieją");
                        }
                        int studies = Int32.Parse(dr["IdStudy"].ToString());
                        dr.Close();

                        com.CommandText = "SELECT IdEnrollment FROM Enrollment WHERE IdStudy=@idStudy AND Semester=1";
                        com.Parameters.AddWithValue("idStudy", studies);

                        dr = com.ExecuteReader();

                        int IdEnrollment = 0;

                        //Jesli tak wpis nie istnieje to dodajemy go do bazy danych (StartDate ustawiamyna aktualna date)
                        if (!dr.Read())
                        {
                            dr.Close();
                            com.CommandText = "SELECT MAX(IdEnrollment) FROM Enrollment";
                            dr = com.ExecuteReader();
                            int newID = 0;
                            if (dr.Read())
                            {
                                newID = Int32.Parse(dr[dr.GetName(0)].ToString());
                            }
                            newID++;
                            com.CommandText = "INSERT INTO Enrollment VALUES(@newID, 1, @studies, @date)";
                            com.Parameters.AddWithValue("newID", newID);
                            com.Parameters.AddWithValue("studies", studies);
                            com.Parameters.AddWithValue("date", DateTime.Now);
                            IdEnrollment = newID;
                            dr.Close();
                            com.ExecuteNonQuery();
                        }
                        else
                        {
                            IdEnrollment = Int32.Parse(dr["IdEnrollment"].ToString());
                        }
                        dr.Close();

                        //Pamietamy o tym, aby sprawdzic czy indeks podany przez studenta jest unikalny. W przeciwnym wypadku zgłaszamy bład.
                        com.CommandText = "SELECT COUNT(*) FROM STUDENT WHERE IndexNumber = @IndexNumber";
                        com.Parameters.AddWithValue("IndexNumber", request.IndexNumber);

                        dr = com.ExecuteReader();
                        if (dr.Read())
                        {
                            if (Int32.Parse(dr[dr.GetName(0)].ToString()) > 0)
                            {
                                dr.Close();
                                tran.Rollback();
                                throw new NotImplementedException("Indeks nie jest unikalny");
                            }
                        }
                        else
                        {
                            dr.Close();
                            tran.Rollback();
                            throw new NotImplementedException("Cannot read data");
                        }
                        dr.Close();

                        //Na koncu dodajemy wpis w tabeli Students
                        com.CommandText = "INSERT INTO Student VALUES (\'" + request.IndexNumber + "\',\'" + request.FirstName + "\',\'" + request.LastName + "\',\'" + request.BirthDate.ToString("yyyy-MM-dd") + "\'," + IdEnrollment + ")";

                        com.ExecuteNonQuery();

                        tran.Commit();
                    }
                    catch (SqlException ex)
                    {
                        tran.Rollback();
                        throw new NotImplementedException(ex.ToString());
                    }
                }
            }
            var response = new EnrollStudentResponse();

            response.LastName  = request.LastName;
            response.Semester  = 1;
            response.StartDate = DateTime.Now;

            return(response);
        }
Esempio n. 14
0
        public IEnumerable <EnrollStudentResponse> EnrollStudent(EnrollStudentRequest request)
        {
            //DTOs-Data Transfer Objects
            var st = new EnrollStudentRequest();

            st.FirstName = request.FirstName;

            /*st.LastName = request.LastName;
             * st.BirthDate = request.BirthDate;
             * st.IndexNumber = request.LastName;
             * st.Studies = request.Studies;*/
            //.. cos robie

            using (SqlConnection con = new SqlConnection(ConString))
                using (SqlCommand com = new SqlCommand())
                {
                    com.Connection = con;
                    con.Open();
                    var tran = con.BeginTransaction();

                    try
                    {
                        //czy istnieja?
                        com.CommandText = "select IdStudies from studies where name=@name";
                        com.Parameters.AddWithValue("name", request.Studies);

                        var dr = com.ExecuteReader();
                        if (!dr.Read())
                        {
                            tran.Rollback();
                            //return BadRequestObjectResult(Error.Add"Studia nie istnieja");
                            return(null);


                            //...
                        }
                        int idstudies = (int)dr["IdStudies"];

                        //x.Dodanie studenta
                        com.CommandText = "INSERT INTO Student(IndexNumber, FirstName, LastName, BirthDate, IdEnrollment) VALUES(@Index,@Fname,@Lname,@BDay,@IdEn)";
                        com.Parameters.AddWithValue("index", request.IndexNumber);
                        com.Parameters.AddWithValue("Fname", request.FirstName);
                        com.Parameters.AddWithValue("Lname", request.LastName);
                        com.Parameters.AddWithValue("BDay", request.BirthDate);
                        com.Parameters.AddWithValue("IdEn", 0);

                        //..

                        tran.Commit();
                    }
                    catch (SqlException exc)
                    {
                        tran.Rollback();
                    }
                }


            var response = new EnrollStudentResponse();

            response.LastName = st.LastName;

            //...


            return(new List <EnrollStudentResponse>()); // do zmiany
        }
Esempio n. 15
0
 public void EnrollStudent(EnrollStudentRequest request)
 {
     throw new NotImplementedException();
 }
Esempio n. 16
0
        public EnrollStudentResult EnrollStudent(EnrollStudentRequest request)
        {
            EnrollStudentResult result = new EnrollStudentResult();

            if (string.IsNullOrWhiteSpace(request.FirstName) ||
                string.IsNullOrWhiteSpace(request.LastName) ||
                string.IsNullOrWhiteSpace(request.IndexNumber) ||
                string.IsNullOrWhiteSpace(request.BirthDate) ||
                string.IsNullOrWhiteSpace(request.Studies) ||
                !DateTime.TryParse(request.BirthDate, out DateTime birthDate))
            {
                result.ResultCode = ResultCodes.NieWpisanoWszystkichDanychStudenta;

                return(result);
            }

            var studies = context.Studies.FirstOrDefault(e => e.Name == request.Studies);

            context.SaveChanges();

            if (studies == null)
            {
                result.ResultCode = ResultCodes.NieIstniejaStudia;
                return(result);
            }

            int idStudy = studies.IdStudy;

            var bigSelect = context.Student.Any(x => x.IndexNumber == "" && x.IdEnrollmentNavigation.Semester == 1);

            if (bigSelect)
            {
                result.ResultCode = ResultCodes.StudentJestJuzZapisanyNaSemest;
                return(result);
            }

            var      maxSelect = context.Enrollment.Max(e => e.IdEnrollment);
            int      maxId     = maxSelect + 1;
            DateTime startDate = DateTime.Now;


            context.Enrollment.Add(new Enrollment
            {
                IdEnrollment = maxId,
                Semester     = 1,
                IdStudy      = idStudy,
                StartDate    = startDate,
            });

            var nameSelect = context.Student.Any(e => e.IndexNumber == request.IndexNumber);

            if (nameSelect)
            {
                result.ResultCode = ResultCodes.StudentJuzIstnieje;
                return(result);
            }

            DateTime date = DateTime.Parse(request.BirthDate);

            context.Student.Add(new Student
            {
                IndexNumber  = request.IndexNumber,
                FirstName    = request.FirstName,
                LastName     = request.LastName,
                BirthDate    = date,
                IdEnrollment = maxId
            });

            var response = new EnrollStudentResponse
            {
                IdEnrollment = maxId,
                IdStudy      = idStudy,
                Semester     = 1,
                StartDate    = startDate
            };

            result.ResultCode = ResultCodes.StudentDodany;
            result.Response   = response;
            return(result);
        }
Esempio n. 17
0
        public Enrollment EnrollStudent(EnrollStudentRequest student)
        {
            var st = new Student();

            st.IndexNumber = student.IndexNumber;
            st.FirstName   = student.FirstName;
            st.LastName    = student.LastName;
            st.BirthDate   = student.BirthDate;
            st.Studies     = student.Studies;

            using (var con = new SqlConnection("Data Source=db-mssql; Initial Catalog=s18727;Integrated Security=True"))
                using (var com = new SqlCommand())
                {
                    com.Connection = con;
                    con.Open();
                    var tran       = con.BeginTransaction();
                    var enrollment = new Enrollment();

                    try
                    {
                        com.CommandText = "SELECT 1 FROM Studies WHERE Name = @name";
                        com.Parameters.AddWithValue("name", st.Studies);

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

                        var studies = new EnrollStudiesResponse();
                        studies.IdStudy = Int16.Parse(dr["IdStudy"].ToString());
                        studies.Name    = dr["Name"].ToString();

                        com.CommandText = "SELECT 1 FROM Enrollments WHERE IdStudy = @idStudy AND Semester = 1 ORDER BY StartDate DESC";
                        com.Parameters.AddWithValue("idStudy", studies.IdStudy);

                        dr = com.ExecuteReader();
                        if (!dr.Read())
                        {
                            var enrollmentReq = new EnrollEnrollmentRequest();

                            enrollmentReq.Semester  = 1;
                            enrollmentReq.IdStudy   = studies.IdStudy;
                            enrollmentReq.StartDate = DateTime.Now;

                            com.CommandText = "INSERT INTO Enrollment (Semester, IdStudy, StartDate) VALUES (@semester, @idStudy, @startDate)";
                            com.Parameters.AddWithValue("semester", enrollmentReq.Semester);
                            com.Parameters.AddWithValue("idStudy", enrollmentReq.IdStudy);
                            com.Parameters.AddWithValue("startDate", enrollmentReq.StartDate);

                            com.CommandText = "SELECT 1 FROM Enrollments WHERE IdStudy = @idStudy AND Semester = 1 ORDER BY StartDate DESC";
                            com.Parameters.AddWithValue("idStudy", studies.IdStudy);

                            dr = com.ExecuteReader();

                            enrollment.IdEnrollment = Int16.Parse(dr["IdEnrollment"].ToString());
                            enrollment.IdStudy      = Int16.Parse(dr["IdStudy"].ToString());
                            enrollment.Semester     = Int16.Parse(dr["Semester"].ToString());
                            enrollment.StartDate    = DateTime.Parse(dr["StartDate"].ToString());
                        }
                        else if (dr.Read())
                        {
                            enrollment.IdEnrollment = Int16.Parse(dr["IdEnrollment"].ToString());
                            enrollment.IdStudy      = Int16.Parse(dr["IdStudy"].ToString());
                            enrollment.Semester     = Int16.Parse(dr["Semester"].ToString());
                            enrollment.StartDate    = DateTime.Parse(dr["StartDate"].ToString());
                        }

                        com.CommandText = "Select 1 From Student Where IndexNumber = @index";
                        com.Parameters.AddWithValue("index", st.IndexNumber);

                        if (dr.Read())
                        {
                        }

                        com.CommandText = "INSERT INTO Student(IndexNumber, FirstName, LastName, BirthDate, IdEnrollment) VALUES (@index, @fname, @lname, @birthDate, @idEnrollment";
                        com.Parameters.AddWithValue("index", st.IndexNumber);
                        com.Parameters.AddWithValue("fname", st.FirstName);
                        com.Parameters.AddWithValue("lname", st.LastName);
                        com.Parameters.AddWithValue("birthDate", st.BirthDate);
                        com.Parameters.AddWithValue("idEnrollment", enrollment.IdEnrollment);

                        tran.Commit();
                    }
                    catch (SqlException exc)
                    {
                        tran.Rollback();
                    }
                    return(enrollment);
                }
        }
Esempio n. 18
0
        public IActionResult EnrollStudent(EnrollStudentRequest request)
        {
            var s = _context.EnrollStudent(request);

            return(Ok(s));
        }
        public IActionResult EntrollStudent(EnrollStudentRequest request)
        {
            var result = service.EnrollStudent(request);

            return(Ok("Student został zapisany"));
        }
Esempio n. 20
0
        public void EnrollStudent(EnrollStudentRequest request)
        {
            using (SqlConnection con = new SqlConnection(ConString))
                using (SqlCommand com = new SqlCommand())
                {
                    com.Connection = con;

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

                    try
                    {
                        //1. Czy studia istnieja
                        com.CommandText = "select IdStudy from studies where name=@name";
                        com.Parameters.AddWithValue("name", request.Studies);

                        com.Transaction = tran;

                        SqlDataReader dr = com.ExecuteReader();
                        if (!dr.Read())
                        {
                            dr.Close();
                            request.Studies = null;
                            tran.Rollback();
                        }
                        else
                        {
                            int idStudies = (int)dr["IdStudy"];
                            dr.Close();

                            com.CommandText = "select IdStudy from enrollment where idstudy=@idstudies AND semester=1";
                            com.Parameters.AddWithValue("idstudies", idStudies);
                            dr = com.ExecuteReader();

                            if (!dr.Read())
                            {
                                dr.Close();
                                com.CommandText = "select TOP 1 * from Enrollment ORDER BY IdEnrollment DESC";
                                dr = com.ExecuteReader();

                                if (dr.Read())
                                {
                                    int nextIdEnrollment = (int)dr["IdEnrollment"];
                                    nextIdEnrollment += 1;
                                    dr.Close();
                                    com.CommandText = "Insert into Enrollment values(@idEnrollment,@semester,@idStudy,@startDate)";
                                    com.Parameters.AddWithValue("idEnrollment", nextIdEnrollment);
                                    com.Parameters.AddWithValue("semester", 1);
                                    com.Parameters.AddWithValue("idStudy", idStudies);
                                    com.Parameters.AddWithValue("startDate", DateTime.Now);

                                    com.ExecuteNonQuery();
                                }
                            }

                            dr.Close();

                            com.CommandText = "select IndexNumber from Student where IndexNumber=@indexNumber";
                            com.Parameters.AddWithValue("indexNumber", request.IndexNumber);
                            dr = com.ExecuteReader();
                            if (dr.Read())
                            {
                                request.IndexNumber = null;
                                dr.Close();
                                tran.Rollback();
                            }

                            dr.Close();
                            //INSERT STUDENT
                            //CHECK IDENROLLMENT
                            if (request.IndexNumber != null)
                            {
                                com.CommandText = "select TOP 1 * from Enrollment where semester = 1 ORDER BY IdEnrollment DESC";
                                dr = com.ExecuteReader();
                                int lastIdEnrollment = 1;
                                if (dr.Read())
                                {
                                    lastIdEnrollment = (int)dr["IdEnrollment"];
                                }
                                Console.WriteLine("req ind num = " + request.IndexNumber);
                                dr.Close();
                                //INSERT INTO STUDENT TABLE
                                DateTime date = Convert.ToDateTime(request.BirthDate);
                                com.CommandText = "Insert into Student (IndexNumber, FirstName, LastName, BirthDate, IdEnrollment)values(@index,@firstName,@lastName,@birthDate,@idEnrollmentStudent)";
                                com.Parameters.AddWithValue("index", request.IndexNumber);
                                com.Parameters.AddWithValue("firstName", request.FirstName);
                                com.Parameters.AddWithValue("lastName", request.LastName);
                                com.Parameters.AddWithValue("birthDate", date);
                                com.Parameters.AddWithValue("idEnrollmentStudent", lastIdEnrollment);

                                com.ExecuteNonQuery();

                                tran.Commit();
                            }
                        }
                    }
                    catch (SqlException exc)
                    {
                        Console.WriteLine(exc.Message);
                        tran.Rollback();
                    }
                }
        }
Esempio n. 21
0
 public IActionResult EnrollStudent(EnrollStudentRequest request)
 {
     return(_service.EnrollStudent(request));
 }
Esempio n. 22
0
        public EnrollStudentResponse EnrollStudent(EnrollStudentRequest req)
        {
            EnrollStudentResponse resp           = null;
            Enrollment            respEnrollment = new Enrollment();
            SqlTransaction        transaction    = null;

            using (var con = new SqlConnection(SqlConn))
                using (var com = new SqlCommand())
                {
                    com.CommandText = "SELECT * FROM Studies WHERE Name = @StudyName";
                    com.Parameters.AddWithValue("StudyName", req.Studies);
                    com.Transaction = transaction;

                    com.Connection = con;
                    con.Open();
                    transaction = con.BeginTransaction();

                    com.Transaction = transaction;
                    SqlDataReader dr = com.ExecuteReader();
                    if (!dr.Read())
                    {
                        dr.Close();
                        transaction.Rollback();
                        dr.Dispose();
                        throw new ArgumentException("Studies not found");
                    }
                    int idStudy = (int)dr["IdStudy"]; // needed for 3.
                    dr.Close();



                    int idEnrollment = 0;

                    com.CommandText = "SELECT * FROM Enrollment WHERE Semester = 1 AND IdStudy = @IdStudy";
                    com.Parameters.AddWithValue("IdStudy", idStudy);
                    com.Transaction = transaction;
                    dr = com.ExecuteReader();
                    if (dr.Read())
                    {
                        idEnrollment = Int32.Parse(dr["IdEnrollment"].ToString());
                    }
                    else
                    {
                        dr.Close();

                        com.CommandText = "SELECT MAX(IdEnrollment) AS EnrolmentMaxId FROM Enrollment WHERE Semester = 1";
                        com.Transaction = transaction;
                        dr = com.ExecuteReader();

                        idEnrollment = Int32.Parse(dr["EnrolmentMaxId"].ToString());
                        DateTime todayDate = DateTime.Today;
                        com.CommandText = "INSERT INTO Enrollment (IdEnrollment, IdStudy, Semester, StartDate)values (@EnrolmentId, @IdStudies, 1, @TodayDate);";
                        com.Parameters.AddWithValue("@TodayDate", todayDate);
                        com.Parameters.AddWithValue("@EnrolmentId", idEnrollment);
                        com.ExecuteNonQuery();
                    }
                    dr.Close();

                    com.CommandText = "SELECT * FROM Student WHERE IndexNumber = @IndexNumber";
                    com.Parameters.AddWithValue("IndexNumber", req.IndexNumber);
                    com.Transaction = transaction;
                    dr = com.ExecuteReader();
                    if (dr.Read())
                    {
                        dr.Close();
                        transaction.Rollback();
                        dr.Dispose();
                        throw new InvalidOperationException("Niewlasciwy numer studenta");
                    }
                    dr.Close();

                    com.CommandText = "INSERT INTO Student (IndexNumber, FirstName, LastName, BirthDate, IdEnrollment) VALUES (@IndexNumber, @Firstname, @LastName, convert(datetime, @BirthDate, 104), @IdEnrollment)";
                    com.Parameters.AddWithValue("FirstName", req.FirstName);
                    com.Parameters.AddWithValue("LastName", req.LastName);
                    com.Parameters.AddWithValue("BirthDate", req.BirthDate);
                    com.Parameters.AddWithValue("IdEnrollment", idEnrollment);
                    com.Transaction = transaction;
                    com.ExecuteNonQuery();
                    dr.Close();

                    com.CommandText = "SELECT * FROM Enrollment WHERE IdEnrollment = @IdEnrollment";
                    com.Transaction = transaction;
                    dr = com.ExecuteReader();
                    dr.Read();

                    resp = new EnrollStudentResponse();


                    resp.LastName  = req.LastName;
                    resp.Semester  = 1;
                    resp.Studies   = req.Studies;
                    resp.StartDate = dr["StartDate"].ToString();

                    dr.Dispose();
                    transaction.Commit();
                }
            return(resp);
        }
Esempio n. 23
0
        public IActionResult EnrollStudent(EnrollStudentRequest request)
        {
            EnrollStudentResponse esr = new EnrollStudentResponse()
            {
            };

            // if (request.FirstName == null || request.LastName == null)
            // {
            //     return BadRequest("Zadanie jest niepoprawne");
            // }
            using (var con = new SqlConnection("Data Source=db-mssql;Initial Catalog=s18803;Integrated Security=True"))
                using (var com = new SqlCommand())
                {
                    con.Open();
                    var tran = con.BeginTransaction();
                    com.Connection  = con;
                    com.Transaction = tran;
                    try
                    {
                        //1. Czy studia istnieją?
                        com.CommandText = "SELECT IdStudy AS idStudies FROM Studies WHERE Name=@name";
                        com.Parameters.AddWithValue("name", request.Studies);
                        var dr = com.ExecuteReader();
                        if (!dr.Read())
                        {
                            dr.Close();
                            tran.Rollback();
                            return(NotFound("Nie ma takich studiów"));
                        }

                        int idStudies = (int)dr["idStudies"];
                        dr.Close();

                        //2. Sprawdzenie czy nie występuje konflikt indeksów
                        com.CommandText = "SELECT IndexNumber FROM Student WHERE IndexNumber = " + request.IndexNumber; // ' '
                        dr = com.ExecuteReader();
                        if (dr.Read())
                        {
                            dr.Close();
                            tran.Rollback();
                            return(BadRequest("Student z takim indeksem już istnieje"));
                        }
                        dr.Close();

                        //3. Nadanie IdEnrollment
                        int idEnrollment;
                        com.CommandText = "SELECT IdEnrollment FROM Enrollment JOIN Studies ON " +
                                          "Enrollment.IdStudy = Studies.IdStudy WHERE Semester = 1 and IdStudy = " + idStudies;
                        dr = com.ExecuteReader();
                        if (dr.Read())
                        {
                            dr.Close();
                            com.CommandText = "SELECT MAX(IdEnrollment)+1 AS idEnroll from Enrollment";
                            dr           = com.ExecuteReader();
                            idEnrollment = (int)dr["idEnroll"];
                        }
                        else
                        {
                            idEnrollment = 1;
                            dr.Close();
                        }

                        //4. Wstawienie Enrollment
                        com.CommandText = "INSERT INTO Enrollment(IdEnrollment,Semester,IdStudy,StartDate)" +
                                          "  VALUES(" + idEnrollment + ", 1, " + idStudies + ",GetDate())";
                        com.ExecuteNonQuery();



                        //5. Wstawienie studenta
                        com.CommandText = "INSERT INTO Student(IndexNumber, FirstName, LastName, BirthDate, IdEnrollment) " +
                                          "VALUES (" + request.IndexNumber + ", " + request.FirstName + ", " + request.LastName + ", " +
                                          request.BirthDate + ", " + idEnrollment + ") ";
                        com.ExecuteNonQuery();
                        esr.IdEnrollment = idEnrollment;
                        esr.IdStudy      = idStudies;
                        esr.Semester     = 1;
                        esr.StartDate    = DateTime.Now;
                        tran.Commit();
                        tran.Dispose();
                        return(StatusCode((int)HttpStatusCode.Created, esr));
                    }
                    catch (SqlException exc)
                    {
                        tran.Rollback();
                        return(BadRequest(exc.Message));
                    }
                }
        }
        public void EnrollStudent(EnrollStudentRequest request)
        {
            string connstring =
                "Data Source=10.1.1.36,1433;Initial Catalog=s18588;User ID=apbds18588;Password=admin";
            var response = new EnrollStudentResponse();
            var cl       = new HttpClient();

            cl.BaseAddress = new Uri("http://*****:*****@IdEnrollment, 1, @IdStudies, @StartDate)";
                        com.Parameters.AddWithValue("IdStudies", IdStudies);
                        com.Parameters.AddWithValue("IdEnrollment", IdEnrollment);
                        com.Parameters.AddWithValue("StartDate", StartDate);
                        com.ExecuteNonQuery();
                    }
                    dr.Close();
                    com.CommandText = "Select * From Student Where IndexNumber=@Id";
                    com.Parameters.AddWithValue("Id", request.IndexNumber);
                    dr = com.ExecuteReader();
                    var Enrollment = IdEnrollment;
                    com.Parameters.Clear();
                    if (!dr.Read())
                    {
                        dr.Close();
                        com.CommandText = "Insert Into Student(IndexNumber, FirstName, LastName, Birthdate, IdEnrollment) Values( @IndexNumber, @FirstName, @LastName, @Birthdate, @IdEnrollment)";
                        com.Parameters.AddWithValue("IndexNumber", request.IndexNumber);
                        com.Parameters.AddWithValue("FirstName", request.FirstName);
                        com.Parameters.AddWithValue("LastName", request.LastName);
                        com.Parameters.AddWithValue("BirthDate", request.BirthDate);
                        com.Parameters.AddWithValue("IdEnrollment", Enrollment);
                        com.ExecuteNonQuery();
                        response.Semester = "1";
                        response.LastName = request.LastName;
                        Console.WriteLine("Student inserted.");
                    }
                    else
                    {
                        dr.Close();
                        transaction.Rollback();
                    }
                    transaction.Commit();
                }
        }
Esempio n. 25
0
        public EnrollStudentResponse EnrollStudent(EnrollStudentRequest request)
        {
            var result = new EnrollStudentResponse();

            using (var client = new SqlConnection(CONNECTION_STRING))
                using (var command = new SqlCommand())
                {
                    client.Open();
                    var tran = client.BeginTransaction();

                    command.Connection  = client;
                    command.Transaction = tran;
                    command.CommandText = "SELECT IdStudy FROM Studies where Name = @Name;";
                    command.Parameters.AddWithValue("Name", request.Studies);


                    try
                    {
                        var CheckStudyReader = command.ExecuteReader();

                        //check if studies exist else rollback + 404
                        if (!CheckStudyReader.Read())
                        {
                            //tran.Rollback();
                            //studies does not exist
                            return(null);
                        }
                        int idStudy = int.Parse(CheckStudyReader["IdStudy"].ToString());
                        // Note that the assignment asks to search for values where semester = 1; However, our tables have
                        // years as semesters so for example 2020 , for that reason I just assumed 2020 as the default semester
                        //instead of 1
                        CheckStudyReader.Close();

                        int enrollId = 0;
                        command.Parameters.Clear();
                        command.CommandText = "SELECT IdEnrollment FROM Enrollment  where Semester = 1 AND IdStudy=@IdStudy";
                        command.Parameters.AddWithValue("IdStudy", idStudy);

                        var CheckEnrollmentReader = command.ExecuteReader();

                        //check if enrollment already exists , else insert one

                        if (!CheckEnrollmentReader.Read())
                        {
                            CheckEnrollmentReader.Close();
                            command.CommandText = "Select Top 1 IdEnrollment as id from Enrollment Order By IdEnrollment DESC";
                            var GetEnrollmentIdReader = command.ExecuteReader();
                            GetEnrollmentIdReader.Read();
                            enrollId = int.Parse(GetEnrollmentIdReader["id"].ToString());
                            GetEnrollmentIdReader.Close();
                            command.Parameters.Clear();
                            command.CommandText = "insert into Enrollment(IdEnrollment,IdStudy, Semester, StartDate) values (@enroll, @IdStudy, @Semester, @Date)";
                            command.Parameters.AddWithValue("enroll", ++enrollId);
                            command.Parameters.AddWithValue("IdStudy", idStudy);
                            command.Parameters.AddWithValue("Semester", 1);
                            command.Parameters.AddWithValue("Date", DateTime.Parse(DateTime.Now.ToString("yyyy'-'MM'-'dd")));
                        }
                        else
                        {
                            enrollId = int.Parse(CheckEnrollmentReader["IdEnrollment"].ToString());
                            CheckEnrollmentReader.Close();
                        }

                        //check if index number was assigned to any other student , if not insert student
                        command.Parameters.Clear();
                        command.CommandText = "Select count(1) as studentCount from Student where IndexNumber = @index";
                        command.Parameters.AddWithValue("index", request.IndexNumber);

                        var CheckIndexReader = command.ExecuteReader();
                        if (CheckIndexReader.Read() && int.Parse(CheckIndexReader["studentCount"].ToString()) > 0)
                        {
                            tran.Rollback();
                            return(null);
                        }
                        CheckIndexReader.Close();
                        command.Parameters.Clear();
                        command.CommandText = "INSERT INTO Student(IndexNumber, FirstName, LastName, BirthDate, IdEnrollment) VALUES (@index,@FirstName,@LastName,@Birthdate,@enrollId)";
                        command.Parameters.AddWithValue("index", request.IndexNumber);
                        command.Parameters.AddWithValue("FirstName", request.FirstName);
                        command.Parameters.AddWithValue("LastName", request.LastName);
                        command.Parameters.AddWithValue("BirthDate", request.BirthDate);
                        command.Parameters.AddWithValue("enrollId", enrollId);
                        command.ExecuteNonQuery();

                        result.IdEnrollment = enrollId;
                        result.IndexNumber  = request.IndexNumber;
                        result.Semester     = 1;
                        tran.Commit();
                        client.Close();
                    }
                    catch (Exception e)
                    {
                        tran.Rollback();
                        return(null);
                    }

                    return(result);
                }
        }
Esempio n. 26
0
        public EnrollStudentResult EnrollStudent(EnrollStudentRequest request)
        {
            EnrollStudentResult result = new EnrollStudentResult();

            if (string.IsNullOrWhiteSpace(request.FirstName) ||
                string.IsNullOrWhiteSpace(request.LastName) ||
                string.IsNullOrWhiteSpace(request.IndexNumber) ||
                string.IsNullOrWhiteSpace(request.BirthDate) ||
                string.IsNullOrWhiteSpace(request.Studies) ||
                !DateTime.TryParse(request.BirthDate, out DateTime birthDate))
            {
                result.ResultCode = ResultCodes.NieWpisanoWszystkichDanychStudenta;

                return(result);
            }

            using (var con = new SqlConnection("Data Source=db-mssql;Initial Catalog=s16703;Integrated Security=True"))
                using (var com = new SqlCommand())
                {
                    com.Connection = con;
                    con.Open();

                    var tran = con.BeginTransaction();
                    com.Transaction = tran;

                    com.CommandText = "select IdStudy from Studies where Name = @name";
                    com.Parameters.AddWithValue("name", request.Studies);

                    var dr = com.ExecuteReader();

                    if (!dr.Read())
                    {
                        dr.Close();
                        tran.Rollback();
                        result.ResultCode = ResultCodes.NieIstniejaStudia;
                        return(result);
                    }

                    int idStudy = (int)dr["IdStudy"];

                    dr.Close();
                    com.Parameters.Clear();

                    com.CommandText = "select e.StartDate, e.IdEnrollment from Enrollment e join Student s on e.IdEnrollment = s.IdEnrollment " +
                                      "where e.Semester = 1 and s.IndexNumber = @IndexNumber " +
                                      "order by StartDate desc";

                    com.Parameters.AddWithValue("IndexNumber", request.IndexNumber);

                    dr = com.ExecuteReader();
                    if (dr.Read())
                    {
                        dr.Close();
                        tran.Rollback();
                        result.ResultCode = ResultCodes.StudentJestJuzZapisanyNaSemest;
                        return(result);
                    }
                    dr.Close();
                    com.Parameters.Clear();

                    com.CommandText = "select max(IdEnrollment) from Enrollment";
                    int      maxId     = (int)com.ExecuteScalar() + 1;
                    DateTime startDate = DateTime.Now;

                    com.CommandText = "Insert into Enrollment (IdEnrollment, Semester, IdStudy, StartDate) values (@IdEnrollment, @Semester, @IdStudy, @StartDate)";
                    com.Parameters.AddWithValue("IdEnrollment", maxId);
                    com.Parameters.AddWithValue("Semester", 1);
                    com.Parameters.AddWithValue("IdStudy", idStudy);
                    com.Parameters.AddWithValue("StartDate", startDate);

                    com.ExecuteNonQuery();
                    com.Parameters.Clear();

                    //----------------------//

                    com.CommandText = "select FirstName from Student where IndexNumber = @IndexNumber";
                    com.Parameters.AddWithValue("IndexNumber", request.IndexNumber);

                    dr = com.ExecuteReader();
                    if (dr.Read())
                    {
                        dr.Close();
                        tran.Rollback();
                        result.ResultCode = ResultCodes.StudentJuzIstnieje;
                        return(result);
                    }
                    dr.Close();
                    com.Parameters.Clear();

                    com.CommandText = "Insert into Student (IndexNumber, FirstName, LastName, BirthDate, IdEnrollment) values (@Index, @Fname, @LName, @Date, @IdEnroll)";

                    com.Parameters.AddWithValue("Index", request.IndexNumber);
                    com.Parameters.AddWithValue("Fname", request.FirstName);
                    com.Parameters.AddWithValue("Lname", request.LastName);
                    com.Parameters.AddWithValue("Date", request.BirthDate);
                    com.Parameters.AddWithValue("IdEnroll", maxId);

                    com.ExecuteNonQuery();

                    tran.Commit();

                    var response = new EnrollStudentResponse
                    {
                        IdEnrollment = maxId,
                        IdStudy      = idStudy,
                        Semester     = 1,
                        StartDate    = startDate
                    };

                    result.ResultCode = ResultCodes.StudentDodany;
                    result.Response   = response;
                    return(result);
                }
        }
Esempio n. 27
0
        public IActionResult EnrollStudent(EnrollStudentRequest request)
        {
            var response = _service.EnrollStudent(request);

            return(Ok(response));
        }
Esempio n. 28
0
        public string EnrollStudent(EnrollStudentRequest req)
        {
            using (SqlConnection connection = new SqlConnection(ConnectionString))
            {
                StringBuilder result = new StringBuilder();
                connection.Open();

                SqlTransaction trans = connection.BeginTransaction("Samp");

                using (SqlCommand command = new SqlCommand("SELECT * FROM Studies WHERE name = @name", connection))
                {
                    command.Parameters.AddWithValue("name", req.Studies);
                    command.Transaction = trans;

                    using (var reader = command.ExecuteReader())
                    {
                        if (!reader.Read())
                        {
                            reader.Close();
                            trans.Rollback();
                            return("Failed: There is not such " + req.Studies + " in table.");
                        }
                    }
                }
                using (SqlCommand command = new SqlCommand("SELECT * FROM Enrollment e INNER JOIN Studies s ON s.idStudy = e.idStudy WHERE s.name = @name;" +
                                                           " SELECT * FROM Studies WHERE name = @name;" +
                                                           " SELECT MAX(idEnrollment) + 1 FROM Enrollment;", connection))
                {
                    int IdEnrollment = -1;
                    int IdStudy      = -1;
                    command.Parameters.AddWithValue("name", req.Studies);
                    command.Transaction = trans;
                    using (var reader = command.ExecuteReader())
                    {
                        if (!reader.Read())
                        {
                            result.Append("Needed to create table.\n");
                            reader.NextResult();
                            reader.Read();
                            IdStudy = (int)reader[0];
                            reader.NextResult();
                            reader.Read();
                            IdEnrollment = (int)reader[0];
                            String date = DateTime.Now.ToString();
                            command.CommandText = "INSERT INTO Enrollment (IdEnrollment,Semester,IdStudy,StartDate) VALUES (@idenrollment,1,@idstudy,'" + date.Substring(0, date.IndexOf(" ")).ToString() + "')";
                            command.Parameters.AddWithValue("idenrollment", IdEnrollment);
                            command.Parameters.AddWithValue("idstudy", IdStudy);
                            reader.Close();
                            command.ExecuteNonQuery();
                        }
                        DateTime d = Convert.ToDateTime(req.BirthDate);
                        String   sDate;
                        sDate = d.Date.ToString("MM-dd-yyyy").Substring(0, d.Date.ToString().IndexOf(" "));
                        reader.Close();
                        command.CommandText = "INSERT INTO Student (IndexNumber,FirstName,LastName,BirthDate,IdEnrollment) " +
                                              "VALUES (@index,@first_name,@last_name,'" + sDate + "',@id_enrollment)";
                        command.Parameters.AddWithValue("index", req.IndexNumber);
                        command.Parameters.AddWithValue("first_name", req.FirstName);
                        command.Parameters.AddWithValue("last_name", req.LastName);
                        command.Parameters.AddWithValue("id_enrollment", IdEnrollment);
                        try
                        {
                            command.ExecuteNonQuery();
                        }catch (SqlException e)
                        {
                            trans.Rollback();
                            return("Failed: Not unique index.");
                        }
                        trans.Commit();
                        result.Append("ADDED");
                        return(result.ToString());
                    }
                }
            }
        }
Esempio n. 29
0
 public void EnrollStudent(EnrollStudentRequest request)
 {
 }
Esempio n. 30
0
        public EnrollStudentResponse EnrollStudents(EnrollStudentRequest request)
        {
            //Mapowanieroll
            var student = new Student();

            student.IndexNumber = request.IndexNumber;
            student.FirstName   = request.FirstName;
            student.LastName    = request.LastName;
            student.BirthDate   = DateTime.Parse(request.BirthDate);

            var enrolment = new EnrollStudentResponse();

            enrolment.Semester = 1;

            int idStudies        = 0;
            int lastEnrollmentId = 0;

            using (var connection = new SqlConnection(SqlConn))
                using (var command = new SqlCommand())
                {
                    command.Connection = connection;
                    connection.Open();
                    var transaction = connection.BeginTransaction();

                    //Sprawdzamy czy istnieją studia o podanej nazwie
                    command.CommandText = "Select IdStudy from Studies where name = @studyName";
                    command.Parameters.AddWithValue("studyName", request.Studies);
                    command.Transaction = transaction;
                    var dr = command.ExecuteReader();
                    if (!dr.Read())
                    {
                        dr.Close();
                        transaction.Rollback();
                        return(null);
                    }
                    idStudies = (int)dr["IdStudy"];
                    dr.Close();
                    enrolment.studia = request.Studies;

                    //Sprawdzamy czy istnieje już wpis dla danych studiów na dany semestr
                    command.CommandText = "Select top 1 IdEnrollment from Enrollment where IdStudy = @idStudy " +
                                          "and semester = 1 order by StartDate desc";
                    command.Parameters.AddWithValue("idStudy", idStudies);
                    dr = command.ExecuteReader();
                    if (!dr.Read())
                    {
                        //Sprawdzenie ostatniego numeru idEnrollment aby dodać z o 1 większym kolejny wpis
                        dr.Close();
                        command.CommandText = "Select max(IdEnrollment) as IdEnrollment from Enrollment";
                        dr = command.ExecuteReader();
                        if (dr.Read())
                        {
                            lastEnrollmentId = (int)dr["IdEnrollment"];
                        }
                        dr.Close();

                        //Dodanie nowego enrollmentu
                        command.CommandText = "Insert into Enrollment values(@idEnrollment, 1, @idStudies ,@actualDate )";
                        command.Parameters.AddWithValue("idEnrollment", lastEnrollmentId + 1);
                        command.Parameters.AddWithValue("idStudies", idStudies);
                        command.Parameters.AddWithValue("actualDate", DateTime.Now);
                        int dodaneWiersze = command.ExecuteNonQuery();
                        student.IdEnrollment = lastEnrollmentId + 1;
                    }
                    else
                    {
                        lastEnrollmentId     = (int)dr["IdEnrollment"];
                        student.IdEnrollment = lastEnrollmentId;
                        dr.Close();
                    }

                    enrolment.IdEnrollment = student.IdEnrollment;

                    //Sprawdzamy czy indeks studenta jest unikalny
                    command.CommandText = "Select IndexNumber from Student where IndexNumber = @iNumber";
                    command.Parameters.AddWithValue("iNumber", student.IndexNumber);
                    dr = command.ExecuteReader();
                    if (!dr.Read())
                    {
                        dr.Close();

                        //Jeżeli indeks jest unikalny to dodajemy studenta do bazy
                        command.CommandText = "Insert into Student (IndexNumber, firstname, lastname, birthdate, IdEnrollment ) " +
                                              "values (@indexNumber, @firstName, @lastName, @birthDate, @idEnroll)";
                        command.Parameters.AddWithValue("indexNumber", student.IndexNumber);
                        command.Parameters.AddWithValue("firstName", student.FirstName);
                        command.Parameters.AddWithValue("lastName", student.LastName);
                        command.Parameters.AddWithValue("birthDate", student.BirthDate.ToShortDateString());
                        command.Parameters.AddWithValue("idEnroll", student.IdEnrollment);
                        int dodaneWiersze = command.ExecuteNonQuery();
                    }
                    else
                    {
                        dr.Close();
                        transaction.Rollback();
                        return(null);
                    }

                    if (!dr.IsClosed)
                    {
                        dr.Close();
                    }
                    transaction.Commit();
                    connection.Close();
                }
            return(enrolment);
        }