public IActionResult EnrollStudent(string IndexNumber, string FirstName, string LastName, string BirthDate, string Studies) { if (string.IsNullOrEmpty(IndexNumber) || string.IsNullOrEmpty(FirstName) || string.IsNullOrEmpty(LastName) || string.IsNullOrEmpty(BirthDate) || string.IsNullOrEmpty(Studies)) { Console.WriteLine("Parametry żądania mają niepoprawną wartość"); return(StatusCode(400)); } else { try { Request_EnrollStudent request = new Request_EnrollStudent(); request.IndexNumber = IndexNumber; request.FirstName = FirstName; request.LastName = LastName; request.BirthDate = DateTime.ParseExact(BirthDate, "yyyy-MM-dd", CultureInfo.InvariantCulture); request.Studies = Studies; Response_Enrollment response = _dbService.EnrollStudent(request); return(Ok(response)); } catch (Exception ex) { Console.WriteLine("Blad przy wywolaniu db.EnrollStudent : " + ex.Message.ToString()); return(StatusCode(400)); } } }
public Response_Enrollment EnrollStudent(Request_EnrollStudent request) { var myContext = new s17975Context(); Response_Enrollment response = new Response_Enrollment(); var studies = request.Studies; var student = new Student(); int idstudies = 0; student.FirstName = request.FirstName; student.LastName = request.LastName; student.IndexNumber = request.IndexNumber; student.BirthDate = request.BirthDate; //1. Czy studia istnieja? try { idstudies = myContext.Studies .Where(idstudies => idstudies.Name.Equals(studies)) .FirstOrDefault() .IdStudy; } catch (Exception ex) { throw new Exception("Wybrene studia nie istnieją !"); } Console.WriteLine("IDStudy :" + idstudies); //2. Obecne ID Enrollment? try { student.IdEnrollment = myContext.Enrollment .Max(e => e.IdEnrollment) + 1; } catch (Exception ex) { student.IdEnrollment = 1; } Console.WriteLine("IDEnr :" + student.IdEnrollment); //3. IndexNumer unikalny? try { var indexExists = myContext.Student .Where(d => d.IndexNumber.Equals(student.IndexNumber)) .FirstOrDefault() .IndexNumber; throw new Exception("IndexNumber już istnieje !"); } catch (Exception ex) { Console.WriteLine("index nie istnieje"); } //4. Wpis już istnieje? Boolean exists_Enrollment = false; try { student.IdEnrollment = myContext.Enrollment .Where(d => d.IdStudy.Equals(idstudies) && d.Semester == 1) .FirstOrDefault() .IdEnrollment; exists_Enrollment = true; } catch (Exception ex) { Console.WriteLine("wpis nie istnieje"); } //5. Dodanie enrollment jeżeli nie istnieje if (!exists_Enrollment) { var newEnrollments = new Enrollment(); newEnrollments.IdEnrollment = student.IdEnrollment; newEnrollments.Semester = 1; newEnrollments.IdStudy = idstudies; newEnrollments.StartDate = DateTime.Now; myContext.Add(newEnrollments); myContext.SaveChanges(); } //6. Dodanie studenta var newStudent = new Student(); newStudent.IndexNumber = student.IndexNumber; newStudent.FirstName = student.FirstName; newStudent.LastName = student.LastName; newStudent.BirthDate = student.BirthDate; newStudent.IdEnrollment = student.IdEnrollment; response.Semester = 1; response.IdEnrollment = student.IdEnrollment; response.IdStudy = idstudies; response.StartDate = DateTime.Now; return(response); }