Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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"));
        }