public StudnetsPromotionRes PromoteStudnets(StudnetsPromotionReq req) { using SqlConnection connection = new SqlConnection(ConnectionString); using SqlCommand command = new SqlCommand("PromoteStudents") { Connection = connection, CommandType = System.Data.CommandType.StoredProcedure }; command.Parameters.Add(new SqlParameter("@StudiesName", req.Studies)); command.Parameters.Add(new SqlParameter("@Semester", req.Semester)); connection.Open(); try { SqlDataReader dataReader = command.ExecuteReader(); if (dataReader.Read()) { StudnetsPromotionRes enrollment = new StudnetsPromotionRes { IdEnrollment = int.Parse(dataReader["idenrollment"].ToString()), Studies = dataReader["name"].ToString(), Semester = int.Parse(dataReader["semester"].ToString()), StartDate = DateTime.Parse(dataReader["startdate"].ToString()) }; return(enrollment); } } catch (SqlException e) { return(new StudnetsPromotionRes { Error = e.Message }); } return(null); }
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 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)); }