Esempio n. 1
0
        public async Task <IHttpActionResult> GetStudentPlacement(int id)
        {
            StudentPreference studentPlacement = await db.StudentPreferences.FindAsync(id);

            if (studentPlacement == null)
            {
                return(NotFound());
            }

            return(Ok(studentPlacement));
        }
Esempio n. 2
0
        public async Task <IHttpActionResult> DeleteStudentPlacement(int id)
        {
            StudentPreference studentPlacement = await db.StudentPreferences.FindAsync(id);

            if (studentPlacement == null)
            {
                return(NotFound());
            }

            db.StudentPreferences.Remove(studentPlacement);
            await db.SaveChangesAsync();

            return(Ok(studentPlacement));
        }
Esempio n. 3
0
        public dynamic DeletePreferenceSIDPID(string sid, int pid, int pref)
        {
            var sps = db.StudentPreferences.Where(p => p.SID == sid && p.PID == pid && p.Preference == pref)
                      .Select(p => p);

            if (sps.Count() == 0)
            {
                return(NoContent(""));
            }
            StudentPreference toDelete = sps.First();

            db.StudentPreferences.Remove(toDelete);
            db.SaveChanges();
            return(Ok(toDelete.PID.ToString() + " was deleted"));
        }
Esempio n. 4
0
        public dynamic PostPreferenceSIDPID(string sid, int pid, int pref)
        {
            if (db.StudentPreferences.Where(p => p.SID == sid && p.PID == pid && p.Preference == pref)
                .Select(p => p).Count() > 0)
            {
                return(BadRequest("Preference already exists for this student placement"));
            }
            StudentPreference sp = new
                                   StudentPreference {
                SID = sid, PID = pid, Preference = pref, Status = 0, TimeStamp = DateTime.Now.Date
            };

            db.StudentPreferences.Add(sp);
            db.SaveChanges();
            return(Ok(sp));
        }
Esempio n. 5
0
        public async Task <IHttpActionResult> PostStudentPlacement(StudentPreference studentPlacement)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            // Check for preferences exceeded
            var currentStudentPlacements = db.StudentPreferences.Select(sp => sp.SID == studentPlacement.SID);

            if (currentStudentPlacements.Count() > 2)
            {
                throw BadRequest("Preferences cannot be more than " +
                                 currentStudentPlacements.Count().ToString());
            }

            db.StudentPreferences.Add(studentPlacement);

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (StudentPlacementExists(studentPlacement.PID, studentPlacement.SID))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(Ok(studentPlacement));
        }
Esempio n. 6
0
        public async Task <IHttpActionResult> PutStudentPlacement(int Pid, string Sid, StudentPreference studentPlacement)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (Pid != studentPlacement.PID && Sid != studentPlacement.SID)
            {
                return(BadRequest());
            }

            db.Entry(studentPlacement).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!StudentPlacementExists(Pid, Sid))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }