public PromoteStudentsResponse PromoteStudents(PromoteStudentsRequest request) { var response = new PromoteStudentsResponse(); response.setStatus(400, "Unknown Error"); // domyślnie - błąd var _studies = _context.Studies.Where(s => s.Name == request.Studies).FirstOrDefault(); if (_studies == null) { response.setStatus(404, "ERROR: nie znaleziono studiów"); return(response); } ; var _enrollment = _context.Enrollment .Where(a => a.IdStudy == _studies.IdStudy && a.Semester == request.Semester) .OrderByDescending(s => s.StartDate).FirstOrDefault(); if (_enrollment == null) { response.setStatus(404, "ERROR: nie znaleziono semestru i studiów"); return(response); } ; Console.WriteLine("tutaj:" + _enrollment.IdEnrollment); var _enrollment_next = _context.Enrollment.Where(p => p.Semester == _enrollment.Semester + 1).FirstOrDefault(); if (_enrollment_next == null) { _enrollment_next = new Enrollment() { IdEnrollment = _context.Enrollment.Max(p => p.IdEnrollment) + 1, Semester = _enrollment.Semester + 1, IdStudy = _enrollment.IdStudy, StartDate = DateTime.Now.Date }; _context.Add(_enrollment_next); _context.SaveChanges(); } var _students = _context.Student.Where(s => s.IdEnrollment == _enrollment.IdEnrollment); foreach (var s in _students) { s.IdEnrollment = _enrollment_next.IdEnrollment; } _context.SaveChanges(); response.Semester = _enrollment_next.Semester; response.StartDate = _enrollment_next.StartDate.ToString(); response.StudiesName = _studies.Name; response.setStatus(201, "Studenci zostali promowani na następny semestr"); return(response); }
public PromoteStudentsResponse PromoteStudents(PromoteStudentsRequest request) { var response = new PromoteStudentsResponse(); response.setStatus(400, "Error"); var _studies = _context.Studies.Where(s => s.Name == request.Studies).FirstOrDefault(); if (_studies == null) { response.setStatus(404, "ERROR: studies do not exist"); return(response); } ; var _enrollment = _context.Enrollment .Where(a => a.IdStudy == _studies.IdStudy && a.Semester == request.Semester) .OrderByDescending(s => s.StartDate).FirstOrDefault(); if (_enrollment == null) { response.setStatus(404, "ERROR: semester and studies do not exist in database"); return(response); } ; Console.WriteLine("here:" + _enrollment.IdEnrollment); var _enrollment_next = _context.Enrollment.Where(p => p.Semester == _enrollment.Semester + 1).FirstOrDefault(); if (_enrollment_next == null) { _enrollment_next = new Enrollment() { IdEnrollment = _context.Enrollment.Max(p => p.IdEnrollment) + 1, Semester = _enrollment.Semester + 1, IdStudy = _enrollment.IdStudy, StartDate = DateTime.Now.Date }; _context.Add(_enrollment_next); _context.SaveChanges(); } var _students = _context.Student.Where(s => s.IdEnrollment == _enrollment.IdEnrollment); foreach (var s in _students) { s.IdEnrollment = _enrollment_next.IdEnrollment; } _context.SaveChanges(); response.Semester = _enrollment_next.Semester; response.StartDate = _enrollment_next.StartDate.ToString(); response.StudiesName = _studies.Name; response.setStatus(201, "Students are promoted on the next semester"); return(response); }
public PromoteStudentsResponse PromoteStudents(PromoteStudentsRequest request) { var response = new PromoteStudentsResponse(); response.setStatus(400, "Unknown Error"); // domyślnie - błąd using (var connection = new SqlConnection(CONN_STR)) { connection.Open(); var command = connection.CreateCommand(); var transaction = connection.BeginTransaction(); command.Connection = connection; command.Transaction = transaction; command.CommandText = "select e.IdEnrollment from dbo.Enrollment e inner join dbo.Studies s on e.IdStudy = s.IdStudy where s.Name = @studyName and e.Semester = @semesterNumber"; command.Parameters.AddWithValue("studyName", request.Studies); command.Parameters.AddWithValue("semesterNumber", request.Semester); var reader = command.ExecuteReader(); if (!reader.Read()) { reader.Close(); response.setStatus(404, "ERROR: nie znaleziono semestru i/lub studiów"); transaction.Rollback(); } else { reader.Close(); using (SqlConnection conn = new SqlConnection(CONN_STR)) { conn.Open(); SqlCommand cmd = new SqlCommand("Promote", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(new SqlParameter("@studies", request.Studies)); cmd.Parameters.Add(new SqlParameter("@semester", request.Semester)); cmd.ExecuteReader(); conn.Close(); } response.Semester = request.Semester + 1; response.StartDate = DateTime.Now.ToString("dd.MM.yyyy"); response.StudiesName = request.Studies; transaction.Commit(); response.setStatus(201, "Studenci zostali promowani na następny semestr"); } } return(response); }