public IActionResult UpdateStudent(ModelsAuto.Student student, string id) { var db = new s16770Context(); var st = new ModelsAuto.Student { IndexNumber = id, FirstName = student.FirstName, LastName = student.LastName, BirthDate = student.BirthDate, Passwd = student.Passwd }; db.Attach(st); db.Entry(st).Property("FirstName").IsModified = true; db.Entry(st).Property("LastName").IsModified = true; db.Entry(st).Property("BirthDate").IsModified = true; db.Entry(st).Property("Passwd").IsModified = true; db.SaveChanges(); return(Ok("Student zaktualizowany")); }
/*public EnrollStudentResponse EnrollStudent(EnrollStudentRequest request) * { * EnrollStudentResponse response = new EnrollStudentResponse(); * * response.IndexNumber = request.IndexNumber; * Enrollment e = new Enrollment(); * * using (var con = new SqlConnection(ConString)) * using (var com = new SqlCommand()) * { * com.Connection = con; * con.Open(); * * var transaction = con.BeginTransaction(); * * try * { * com.CommandText = "SELECT IdStudy FROM Studies where Name=@name"; * com.Parameters.AddWithValue("name", request.Studies); * com.Transaction = transaction; * * var studs = com.ExecuteReader(); * if (!studs.Read()) * { * response.message = "Podanych studiow nie ma w bazie"; * return response; * } * int idstudies = (int)studs["IdStudy"]; * studs.Close(); * * com.CommandText = "SELECT IdEnrollment FROM Enrollment WHERE IdEnrollment >= " + "(SELECT MAX(IdEnrollment) FROM Enrollment)"; + var idenr = com.ExecuteReader(); + if (!idenr.Read()){ } + int idEnroll = (int)idenr["IdEnrollment"] + 10; + idenr.Close(); + + com.CommandText = "SELECT idEnrollment, StartDate from Enrollment WHERE idStudy=@idStudy AND Semester=1" + + "ORDER BY StartDate"; + com.Parameters.AddWithValue("idStudy", idstudies); + + DateTime enrollDate; + + var enrol = com.ExecuteReader(); + if (!enrol.Read()) + { + response.message = "Brak rozpoczetej rekrutacji"; + enrollDate = DateTime.Now; + com.CommandText = "INSERT INTO Enrollment VALUES(@id, @Semester, @IdStud, @StartDate)"; + com.Parameters.AddWithValue("id", idEnroll); + com.Parameters.AddWithValue("Semester", 1); + com.Parameters.AddWithValue("IdStud", idstudies); + com.Parameters.AddWithValue("StartDate", enrollDate); + enrol.Close(); + com.ExecuteNonQuery(); + } + else + { + idEnroll = (int)enrol["IdEnrollment"]; + enrollDate = (DateTime)enrol["StartDate"]; + enrol.Close(); + } + + e.IdEnrollment = idEnroll; + e.Semester = 1; + e.IdStudy = idstudies; + e.StartDate = enrollDate; + + response.enrollment = e; + + com.CommandText = "SELECT IndexNumber FROM Student WHERE IndexNumber=@indexNum"; + com.Parameters.AddWithValue("indexNum", request.IndexNumber); + + DateTime bDate = Convert.ToDateTime(request.Birthdate); + string formattedDate = bDate.ToString("yyyy-MM-dd HH:mm:ss.fff"); + + try + { + com.CommandText = "INSERT INTO Student(IndexNumber, FirstName, LastName, BirthDate, IdEnrollment) VALUES " + + "(@index, @fName, @lName, @birthDate, @idEnrollment)"; + + com.Parameters.AddWithValue("index", request.IndexNumber); + com.Parameters.AddWithValue("fName", request.FirstName); + com.Parameters.AddWithValue("lName", request.LastName); + com.Parameters.AddWithValue("birthDate", formattedDate); + com.Parameters.AddWithValue("idEnrollment", idEnroll); + + response.message = "DONE"; + com.ExecuteNonQuery(); + + transaction.Commit(); + } + catch(SqlException ex) + { + transaction.Rollback(); + response.message = "Student o takim ID jest juz w bazie. " + ex.Message; + } + } + catch (SqlException exc) + { + transaction.Rollback(); + response.message = exc.Message; + } + return response; + } + }*/ public EnrollStudentResponse EnrollStudent(EnrollStudentRequest request) { EnrollStudentResponse response = new EnrollStudentResponse(); ModelsAuto.Enrollment e = new ModelsAuto.Enrollment(); response.IndexNumber = request.IndexNumber; var db = new ModelsAuto.s16770Context(); var studies = db.Studies.Where(s => s.Name == request.Studies); if (studies.Count() == 0) { response.message = "Podanych studiow nie ma w bazie"; return(response); } int idstudies = studies.First().IdStudy; var enrollment = db.Enrollment.Where(e => e.IdStudy == idstudies) .Where(e => e.Semester == 1) .OrderBy(e => e.StartDate); DateTime enrollDate; var newEnrollment = db.Enrollment.OrderBy(e => e.IdEnrollment).Last().IdEnrollment; int newEnrollmentId = newEnrollment + 10; if (enrollment.Count() == 0) { response.message = "Brak rozpoczetej rekrutacji"; enrollDate = DateTime.Now; var enr = new ModelsAuto.Enrollment { IdEnrollment = newEnrollmentId, Semester = 1, IdStudy = idstudies, StartDate = enrollDate }; db.Enrollment.Add(enr); db.SaveChanges(); } else { newEnrollmentId = enrollment.Single().IdEnrollment; enrollDate = (DateTime)enrollment.Single().StartDate; } e.IdEnrollment = newEnrollmentId; e.Semester = 1; e.IdStudy = idstudies; e.StartDate = enrollDate; response.enrollment = e; DateTime bDate = Convert.ToDateTime(request.Birthdate); //string formattedDate = bDate.ToString("yyyy-MM-dd HH:mm:ss.fff"); var student = new ModelsAuto.Student { IndexNumber = request.IndexNumber, FirstName = request.FirstName, LastName = request.LastName, BirthDate = bDate, IdEnrollment = newEnrollmentId }; db.Student.Add(student); try { db.SaveChanges(); } catch (Exception ex) { response.message = "Student o takim ID jest juz w bazie. " + ex.Message; } response.message = "DONE"; return(response); }