public IActionResult PutStudent(ChangeStudentRequest studento) { var student = _context.Student.Where(stu => stu.IndexNumber == studento.IndexNumber); Student studenta = new Student { IndexNumber = studento.IndexNumber, FirstName = studento.FirstName, LastName = studento.LastName }; _context.Attach(studenta); _context.Entry(studenta).Property("FirstName").IsModified = true; _context.Entry(studenta).Property("LastName").IsModified = true; _context.SaveChanges(); return(Ok("Aktualizacja dokonczona")); }
public Enrollment EnrollStudent(EnrollStudentRequest request) { using (var db = new s18291Context()) { var st = new Enrollment(); st.Semester = 1; st.StartDate = DateTime.Parse(DateTime.Now.ToShortTimeString()); var studies = db.Studies.Where(studies => studies.Name == request.Studies).FirstOrDefault(); if (studies == null) { throw new Exception("Bad Request"); } st.IdStudy = studies.IdStudy; var en = db.Enrollment.Any(en => en.IdStudy == studies.IdStudy && en.Semester == 1 && en.StartDate == db.Enrollment.Max(enp => enp.StartDate)); if (!en) { var stude = db.Student.Any(stu => stu.IndexNumber == request.IndexNumber); if (stude) { throw new Exception("Nie unikalny student"); } var enrollments = db.Enrollment.Max(emp => emp.IdEnrollment); db.Enrollment.Add(new Enrollment { IdEnrollment = enrollments + 1, Semester = 1, IdStudy = studies.IdStudy, StartDate = DateTime.Now }); db.Student.Add(new Student { IndexNumber = request.IndexNumber, FirstName = request.FirstName, LastName = request.LastName, BirthDate = DateTime.Parse(request.Birthdate), IdEnrollment = enrollments + 1 }); db.SaveChanges(); } else { var enroll = db.Enrollment.Where(en => en.IdStudy == studies.IdStudy && en.Semester == 1 && en.StartDate == db.Enrollment.Max(enp => enp.StartDate)).SingleOrDefault(); db.Student.Add(new Student { IndexNumber = request.IndexNumber, FirstName = request.FirstName, LastName = request.LastName, BirthDate = DateTime.Parse(request.Birthdate), IdEnrollment = enroll.IdEnrollment + 1 }); db.SaveChanges(); } //var st = new Enrollment(); //st.Semester = 1; //st.StartDate = DateTime.Parse(DateTime.Now.ToShortTimeString()); //using (var con = new SqlConnection("Data Source = db-mssql; Initial Catalog = s18291; Integrated Security = True")) //using (var com = new SqlCommand()) //{ // com.Connection = con; // con.Open(); // var tran = con.BeginTransaction(); // com.Transaction = tran; // try // { // //1 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()) // { // tran.Rollback(); // //return BadRequest("Studia nie istnieja"); // throw new Exception(); // //Zglloszenie bledu // } // int idstudies = (int)dr["IdStudy"]; // dr.Close(); // st.IdStudy = idstudies; // com.CommandText = "Select IdEnrollment From Enrollment WHERE IdStudy = @IdStudy AND SEMESTER = 1 AND StartDAte = (SELECT MAX(StartDate) FROM Enrollment WHERE @IdStudy = @IdStudy)"; // com.Parameters.AddWithValue("IdStudy", idstudies); // dr = com.ExecuteReader(); // if (!dr.Read()) // { // dr.Close(); // com.CommandText = "Select IndexNumber From Student Where IndexNumber = @index"; // com.Parameters.AddWithValue("index", request.IndexNumber); // dr = com.ExecuteReader(); // if (dr.Read()) // { // throw new Exception("NIEUNIKALNY STUDENT"); // } // dr.Close(); // com.CommandText = "SELECT MAX(IdEnrollment) as 'Maximum' from Enrollment"; // dr = com.ExecuteReader(); // dr.Read(); // var nextValue = (int)dr["Maximum"] + 1; // st.IdEnrollment = nextValue; // dr.Close(); // com.CommandText = "Insert into Enrollment(IdEnrollment, Semester, IdStudy, StartDate) VALUES(@next, 1, @IdStudy, GETDATE())"; // com.Parameters.AddWithValue("next", nextValue); // //com.Parameters.AddWithValue("IdStudy", idstudies); // Console.WriteLine(nextValue); // com.ExecuteNonQuery(); // Console.WriteLine("CO?"); // //x dodanie studenta // com.CommandText = "Insert Into Student(IndexNumber, FirstName, LastName, BirthDate,IdEnrollment) VALUES (@Index, @FName, @LastName, @BirthDate,@nexte)"; // com.Parameters.AddWithValue("Index", request.IndexNumber); // com.Parameters.AddWithValue("Fname", request.FirstName); // com.Parameters.AddWithValue("LastName", request.LastName); // com.Parameters.AddWithValue("BirthDate", request.Birthdate); // com.Parameters.AddWithValue("nexte", nextValue); // com.ExecuteNonQuery(); // tran.Commit(); // } // else // { // var nexte = (int)dr["IdEnrollment"]; // st.IdEnrollment = nexte; // dr.Close(); // com.CommandText = "Insert Into Student(IndexNumber, FirstName, LastName, BirthDate,IdEnrollment) VALUES (@Index, @FName, @LastName, @BirthDate,@nexte)"; // com.Parameters.AddWithValue("Index", request.IndexNumber); // com.Parameters.AddWithValue("Fname", request.FirstName); // com.Parameters.AddWithValue("LastName", request.LastName); // com.Parameters.AddWithValue("BirthDate", request.Birthdate); // CZY ENROLLMENTS TEZ? // com.Parameters.AddWithValue("nexte", nexte); // com.ExecuteNonQuery(); // tran.Commit(); // } // } // catch (SqlException e) // { // Console.WriteLine(e.Message); // tran.Rollback(); // } // catch (Exception e) // { // Console.WriteLine(e.Message); // // return BadRequest(400); // } return(st); } }