// public EnrollStudentResponse EnrollStudent(EnrollStudentRequest request) // { // using (var connection = // new SqlConnection("Data Source=db-mssql;Initial Catalog=s18310;Integrated Security=True")) // using (var command = new SqlCommand()) // { // command.Connection = connection; // command.CommandText = "select * from Studies where Name=@Name"; // command.Parameters.AddWithValue("Name", request.Studies); // connection.Open(); // // var reader = command.ExecuteReader(); // if (!reader.Read()) // { // throw new Exception("No such studies: " + request.Studies); // } // // int idStudy = (int) reader["IdStudy"]; // reader.Close(); // if (GetStudent(request.IndexNumber) != null) // { // throw new Exception("Student " + request.IndexNumber + " already exists"); // } // // command.CommandText = "select * from Enrollment where IdStudy=@idStudy and Semester=@Semester"; // command.Parameters.AddWithValue("idStudy", idStudy); // command.Parameters.AddWithValue("Semester", 1); // reader = command.ExecuteReader(); // int enrollmentId = 0; // DateTime startDate = DateTime.Now; // if (!reader.Read()) // { // reader.Close(); // command.CommandText = "select max(IdEnrollment) as currentMax from Enrollment"; // reader = command.ExecuteReader(); // if (!reader.Read()) // { // enrollmentId = 1; // } // else // { // enrollmentId = 1 + (int) reader["currentMax"]; // } // // reader.Close(); // command.CommandText = "insert into Enrollment(IdEnrollment,Semester,IdStudy,StartDate)" + // " values(@newId,@Semester,@IdStudy,@StartDate)"; // command.Parameters.AddWithValue("newId", enrollmentId); // command.Parameters.AddWithValue("IdStudy", idStudy); // command.Parameters.AddWithValue("Semester", 1); // command.Parameters.AddWithValue("StartDate", startDate); // command.ExecuteNonQuery(); // } // else // { // startDate = (DateTime) reader["StartDate"]; // enrollmentId = (int) reader["IdEnrollment"]; // reader.Close(); // } // // Console.WriteLine(enrollmentId); // command.CommandText = // "insert into Student (IndexNumber,FirstName,LastName,BirthDate,IdEnrollment)" + // " values(@IndexNumber,@FirstName,@LastName,@BirthDate,@IdEnrollment)"; // command.Parameters.AddWithValue("IndexNumber", request.IndexNumber); // command.Parameters.AddWithValue("FirstName", request.FirstName); // command.Parameters.AddWithValue("LastName", request.LastName); // command.Parameters.AddWithValue("BirthDate", request.BirthDate); // command.Parameters.AddWithValue("IdEnrollment", enrollmentId); // command.ExecuteNonQuery(); // return new EnrollStudentResponse() // {IdEnrollment = enrollmentId, Semester = 1, IdStudy = idStudy, StartDate = startDate}; // } // } public EnrollStudentResponse EnrollStudent(EnrollStudentRequest request) { var database = new s18310Context(); var studies = database.Studies.First(stud => stud.Name.Equals(request.Studies)); if (studies.Equals(null)) { throw new Exception("No such studies: " + request.Studies); } var student = database.Student.First(stud => stud.IndexNumber == request.IndexNumber); if (!student.Equals(null)) { throw new Exception("Student " + request.IndexNumber + " already exists"); } var enrollment = database.Enrollment.First(enroll => enroll.IdStudy == studies.IdStudy && enroll.Semester == 1); var newStudent = new GeneratedModels.Student { IndexNumber = request.IndexNumber, FirstName = request.FirstName, LastName = request.LastName, BirthDate = request.BirthDate }; var response = new EnrollStudentResponse(); if (enrollment.Equals(null)) { var newEnrollment = new GeneratedModels.Enrollment { IdEnrollment = database.Enrollment.Max(enroll => enroll.IdEnrollment), Semester = 1, IdStudy = studies.IdStudy, StartDate = DateTime.Now, IdStudyNavigation = studies }; database.Enrollment.Add(newEnrollment); newStudent.IdEnrollment = newEnrollment.IdEnrollment; newStudent.IdEnrollmentNavigation = newEnrollment; response.IdEnrollment = newEnrollment.IdEnrollment; response.Semester = newEnrollment.Semester; response.IdStudy = newEnrollment.IdStudy; response.StartDate = newEnrollment.StartDate; } else { newStudent.IdEnrollment = enrollment.IdEnrollment; newStudent.IdEnrollmentNavigation = enrollment; response.IdEnrollment = enrollment.IdEnrollment; response.Semester = enrollment.Semester; response.IdStudy = enrollment.IdStudy; response.StartDate = enrollment.StartDate; } database.Add(newStudent); database.SaveChanges(); return(response); }
public void DeleteStudent(string id) { var database = new s18310Context(); var student = new GeneratedModels.Student { IndexNumber = id }; var roles = database.StudentRoles.Where(studentRoles => studentRoles.IndexNumber.Equals(id)).ToList(); foreach (var role in roles) { database.Remove(role); } database.SaveChanges(); database.Remove(student); }