public IActionResult UpdateStudent([FromQuery] String Index, [FromBody] StudentApbd req) { var t1 = Index; var t2 = req; var db = new s17057Context(); try { var stud = db.StudentApbd.Where(stud => stud.IndexNumber.Equals(Index)).First(); //update stud.SetProperty("FirstName", req.FirstName); stud.SetProperty("IndexNumber", req.IndexNumber); stud.SetProperty("LastName", req.LastName); stud.SetProperty("BirthDate", req.BirthDate); stud.SetProperty("IdEnrollment", req.IdEnrollment); if (req.Pswd != null) { var salt = stud.Salt; stud.SetProperty("Pswd", PasswordHelper.GenerateSaltedHash(req.Pswd, salt)); } db.SaveChanges(); return(Ok("Dane zaktualizowane pomyślnie!")); } catch (InvalidOperationException ex) { return(BadRequest("Niepoprawny numer indexu!")); } }
public IActionResult GetStudents() { var db = new s17057Context(); var res = db.StudentApbd.Select(stud => new { IndexNumber = stud.IndexNumber, FirstName = stud.FirstName, LastName = stud.LastName, BirthDate = stud.BirthDate, IdEnrollment = stud.IdEnrollment }).ToList(); return(Ok(res)); }
public IActionResult DeleteStudent([FromQuery] String index) { var db = new s17057Context(); var stud = db.StudentApbd.Where(stud => stud.IndexNumber.Equals(index)).First(); if (stud == null) { return(BadRequest("Niepoprawny numer indexu!")); } else { //delete, db.Remove(stud); db.SaveChanges(); return(Ok("Dane usunięte pomyślnie!")); } }
public IActionResult InsertStudent(StudentApbd req) { var db = new s17057Context(); var stud = new StudentApbd(); stud.SetProperty("FirstName", req.FirstName); stud.SetProperty("IndexNumber", req.IndexNumber); stud.SetProperty("LastName", req.LastName); stud.SetProperty("BirthDate", req.BirthDate); stud.SetProperty("IdEnrollment", req.IdEnrollment); var salt = PasswordHelper.CreateSalt(); stud.SetProperty("Salt", salt); stud.SetProperty("Pswd", PasswordHelper.GenerateSaltedHash(req.Pswd, salt)); db.StudentApbd.Add(req); db.SaveChanges(); return(Ok("Insert zakończony pomyślnie")); }
public PromoteStudentsResponse PromoteStudents(PromoteStudentsRequest request) { var db = new s17057Context(); SqlParameter studiesParam = new SqlParameter("@Studies", request.Studies); SqlParameter semesterParam = new SqlParameter("@Semester", request.Semester); var resp = db.Enrollment.FromSqlRaw("EXEC PromoteStudents @Studies, @Semester", studiesParam, semesterParam).AsEnumerable().First(); if (resp != null) { return(new PromoteStudentsResponse { IdEnrollment = resp.IdEnrollment, IdStudy = resp.IdStudy.Value, Semester = resp.Semester.Value, StartDate = resp.StartDate.Value }); } else { return(null); } }
public EnrollStudentResponse EnrollStudent(EnrollStudentRequest request) { var response = new EnrollStudentResponse(); var db = new s17057Context(); db.Database.BeginTransaction(); int study; try { study = db.Studies.Where(s => s.Name.Equals(request.Studies)).Select(s => s.IdStudy).First(); } catch (InvalidOperationException ex) { db.Database.RollbackTransaction(); throw new ArgumentException("Studia " + request.Studies + " nie isnieją"); } response.IdStudies = study; response.Semester = 1; response.IndexNumber = request.IndexNumber; try { var enrollment = db.Enrollment.Where(e => e.Semester == 1 && e.IdStudy == study).Select(e => new { id = e.IdEnrollment, startDate = e.StartDate }).First(); response.IdEnrollment = enrollment.id; response.StartDate = enrollment.startDate.Value; } catch (InvalidOperationException ex) { response.IdEnrollment = db.Enrollment.Max(e => e.IdEnrollment) + 1; response.StartDate = DateTime.Now; var newEnrollment = new Enrollment() { IdEnrollment = response.IdEnrollment, Semester = 1, IdStudy = study, StartDate = response.StartDate }; } finally { var stud = new StudentApbd(); stud.SetProperty("FirstName", request.FirstName); stud.SetProperty("IndexNumber", request.IndexNumber); stud.SetProperty("LastName", request.LastName); stud.SetProperty("BirthDate", request.BirthDate); stud.SetProperty("IdEnrollment", response.IdEnrollment); var salt = PasswordHelper.CreateSalt(); stud.SetProperty("Salt", salt); stud.SetProperty("Pswd", PasswordHelper.GenerateSaltedHash(request.Password, salt)); try { db.StudentApbd.Add(stud); db.SaveChanges(); db.Database.CommitTransaction(); } catch (Exception exc) { Console.WriteLine(exc.Message); db.Database.RollbackTransaction(); throw new ArgumentException("Duplikat numeru indeksu"); } } return(response); }