public IHttpActionResult PutGuardian(int id, GuardianEntry guard) { if (!ModelState.IsValid) { return(BadRequest()); } var guardian = db.Guardian.Find(id); if (guardian == null) { return(NotFound()); } // If new values are passed then it will update the db, otherwise it will leave the values as their originals guardian.guardianFirstName = guard.GuardianFirstName ?? guardian.guardianFirstName; guardian.guardianLastName = guard.GuardianLastName ?? guardian.guardianLastName; guardian.guardianContactEmail = guard.GuardianContactEmail ?? guardian.guardianContactEmail; guardian.guardianContactNumber = guard.GuardianContactNumber ?? guardian.guardianContactNumber; db.Entry(guardian).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException e) { if (!GuardianExists(id)) { return(NotFound()); } else { return(BadRequest("The update failed due to a DbUpdateConcurrencyException: " + e.InnerException)); } } var guardianDetails = new { guardian.guardianFirstName, guardian.guardianLastName, guardian.guardianID, guardian.guardianContactEmail, guardian.guardianContactNumber }; return(Ok(guardianDetails)); }
public IHttpActionResult PostGuardian(GuardianEntry guard) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } //get the next ID var nextId = (db.Guardian .OrderByDescending(g => g.guardianID) .Select(g => g.guardianID) .First()) + 1; //compare against DB to make sure sure it exceeds the last number //probably better to store some app settings in a separate table foreach (var g in db.Guardian) { if (g.guardianID > nextId) { nextId = g.guardianID; } } //create new guardian from passed object var guardian = new Guardian() { guardianID = nextId, guardianFirstName = guard.GuardianFirstName, guardianLastName = guard.GuardianLastName, guardianContactNumber = guard.GuardianContactNumber, guardianContactEmail = guard.GuardianContactEmail }; db.Guardian.Add(guardian); var studentGuardianController = new StudentGuardianController(); var studentGuardian = new StudentGuardian() { guardianId = guardian.guardianID, studentId = guard.NewStudentId }; try { db.SaveChanges(); } catch (DbUpdateException e) { if (GuardianExists(guardian.guardianID)) { return(BadRequest("That guardian already exists in the system")); } else { return(BadRequest("Update failed with a DbUpdateException: " + e.InnerException)); } } studentGuardianController.PostStudentGuardian(studentGuardian); return(Ok("Guardian created and linked to student successfully")); }