public IActionResult PromoteStudents(StudnetsPromotionReq request) { /* * var response = _dbService.PromoteStudnets(request); * if (response == null) * { * return BadRequest(); * } * if (response.Error != null) * { * return NotFound(response.Error); * } * return Created($"api/enrollments/{response.IdEnrollment}", response); */ var idStudy = _studentContext.Studies.Where(s => s.Name == request.Studies).Select(s => s.IdStudy).FirstOrDefault(); if (idStudy == 0) // default { return(BadRequest("Study not found")); } var idEnrollment = _studentContext.Enrollment.Where(e => e.IdStudy == idStudy && e.Semester == request.Semester).Select(e => e.IdEnrollment).FirstOrDefault(); if (idEnrollment == 0) // default { return(BadRequest("No such enrollment")); } var idEnrollmentNext = _studentContext.Enrollment.Where(e => e.IdStudy == idStudy && e.Semester == request.Semester + 1).Select(e => e.IdEnrollment).FirstOrDefault(); if (idEnrollmentNext == 0) // default { idEnrollmentNext = _studentContext.Enrollment.Select(e => e.IdEnrollment).Max() + 1; var enrollment = new Entities.Enrollment { IdEnrollment = idEnrollmentNext, IdStudy = idStudy, Semester = request.Semester + 1, StartDate = DateTime.Now }; _studentContext.Add(enrollment); } var students = _studentContext.Student.Where(s => s.IdEnrollment == idEnrollment) .Select(s => new Entities.Student { IndexNumber = s.IndexNumber, IdEnrollment = idEnrollmentNext }).ToList(); foreach (var student in students) { _studentContext.Attach(student); _studentContext.Entry(student).Property("IdEnrollment").IsModified = true; } _studentContext.SaveChanges(); return(Created($"api/enrollments/{idEnrollmentNext}", idEnrollmentNext)); }
public IActionResult EnrollStudent(EnrollStudentReq request) { /* * var response = _dbService.EnrollStudent(request); * if (response.Error != null) * { * return BadRequest(response.Error); * } */ var idStudy = _studentContext.Studies.Where(s => s.Name == request.Studies).Select(s => s.IdStudy).FirstOrDefault(); if (idStudy == 0) // default { return(BadRequest("Study not found")); } var idEnrollment = _studentContext.Enrollment.Where(e => e.IdStudy == idStudy && e.Semester == 1).Select(e => e.IdEnrollment).FirstOrDefault(); if (idEnrollment == 0) // default { idEnrollment = _studentContext.Enrollment.Select(e => e.IdEnrollment).Max() + 1; var enrollment = new Entities.Enrollment { IdEnrollment = idEnrollment, IdStudy = idStudy, Semester = 1, StartDate = DateTime.Now }; _studentContext.Add(enrollment); } var student = new Entities.Student { IndexNumber = request.IndexNumber, FirstName = request.FirstName, LastName = request.LastName, Password = request.Password, RefreshToken = request.Password, BirthDate = request.BirthDate, IdEnrollment = idEnrollment, IdRole = request.IdRole, }; _studentContext.Add(student); _studentContext.SaveChanges(); var response = new { IdEnrollment = idEnrollment }; return(Ok(response)); }
public int EnrollStudentInCourse(int studentId, int courseId, Entities.Enrollment enrollment) { try { if (context.Enrollments.Any(e => e.Course.Id == courseId && e.Student.Id == studentId)) { return(2); } context.Database.ExecuteSqlCommand ("INSERT INTO Enrollments VALUES (@p0,@p1,@p2)", enrollment.EnrollmentDate, courseId.ToString(), studentId.ToString()); return(1); } catch (DbEntityValidationException dbex) { foreach (var eve in dbex.EntityValidationErrors) { string line = string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { line = string.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } return(0); } catch (Exception ex) { return(0); } }
public EnrollmentResponse EnrollStudent(Models.Student student) { if (student.IndexNumber == null || student.Firstname == null || student.Lastname == null || student.BirthDate == null || student.Studies == null) { return(null); } else { int result1; //int idEnrollment; //client.Open(); //com.Connection = client; //var tran = client.BeginTransaction(); //com.Transaction = tran; //com.CommandText = "select * from Studies where Name=@index"; //com.Parameters.AddWithValue("index", student.Studies); var result = _context.Studies.Select(e => new { e.IdStudy, e.Name }).Where(d => d.Name.Equals(student.Studies)); //var dr = com.ExecuteReader(); if (result == null) { return(null); } int idStudies = result.Select(e => e.IdStudy).First(); //dr.Close(); var fromEnr = _context.Enrollment.Select(e => e).Where(e => e.Semester == 1 && e.IdStudy == idStudies); //com.CommandText = "SELECT * FROM Enrollment WHERE Semester=1 AND IdStudy=@IdStud"; //com.Parameters.AddWithValue("IdStud", idStudies); //var dr2 = com.ExecuteReader(); if (fromEnr == null) { //dr2.Close(); //com.CommandText = "Select max(idenrollment) from enrollment"; result1 = _context.Enrollment.Max(e => e.IdEnrollment); //var dr3 = com.ExecuteReader(); //dr3.Read(); //idEnrollment = dr3.GetInt32(0); //dr3.Close(); var newEnroll = new Entities.Enrollment() { IdEnrollment = result1 + 1, Semester = 1, IdStudy = idStudies, StartDate = DateTime.Now }; _context.Enrollment.Add(newEnroll); _context.SaveChanges(); //com.CommandText = "INSERT INTO Enrollment(idEnrollment, semester, idStudy,StartDate) VALUES (@idE, @Semester,@IdStudy,@sd)"; //com.Parameters.AddWithValue("idE", idEnrollment + 1); //com.Parameters.AddWithValue("Semester", 1); //com.Parameters.AddWithValue("IdStudy", idStudies); //com.Parameters.AddWithValue("sd", DateTime.Now.ToString()); //var dr6 = com.ExecuteNonQuery(); } else { result1 = fromEnr.Select(e => e.IdEnrollment).First(); } var dont2 = _context.Student.Select(e => new { e.IndexNumber }).Where(d => d.IndexNumber.Equals(student.IndexNumber)).FirstOrDefault(); //com.CommandText = "SELECT * FROM Student WHERE IndexNumber =@indexs"; //com.Parameters.AddWithValue("indexs", student.IndexNumber); //var dr5 = com.ExecuteReader(); if (dont2 != null) { return(null); } //com.Parameters.AddWithValue("IdStuds", idStudies); _context.Add(new Entities.Student() { FirstName = student.Firstname, IndexNumber = student.IndexNumber, LastName = student.Lastname, BirthDate = DateTime.Now, IdEnrollment = result1 }); _context.SaveChanges(); //com.CommandText = "INSERT INTO Student(IndexNumber, FirstName, LastName,Birthdate,IdEnrollment) VALUES (@Indexn,@FirstName, @LastName,@Birthdate,@Studies)"; ////... //com.Parameters.AddWithValue("FirstName", student.Firstname); //com.Parameters.AddWithValue("Indexn", student.IndexNumber); //com.Parameters.AddWithValue("LastName", student.Lastname); //com.Parameters.AddWithValue("Birthdate", DateTime.Parse(student.BirthDate)); //com.Parameters.AddWithValue("Studies", idEnrollment); ////... //com.ExecuteNonQuery(); var hello = _context.Enrollment.Select(e => e).Where(e => e.IdStudy == idStudies && e.Semester == 1 && e.StartDate == _context.Enrollment.Where(e => e.IdStudy == idStudies).Max(e => e.StartDate)); //com.CommandText = "Select * from enrollment where idstudy=@iDstuds and semester=1 and StartDate=(select max(StartDate) from Enrollment where IdStudy=@IdStuds)"; //tran.Commit(); //var dr4 = com.ExecuteReader(); var enrollment = new Models.Enrollment(); enrollment.Idenrollment = hello.First().IdEnrollment; enrollment.semester = hello.First().Semester; enrollment.IdStudy = hello.First().IdStudy; enrollment.StartDate = hello.First().StartDate.ToString(); var er = new EnrollmentResponse(enrollment); return(er); } }