static void RandomlyAssignStudents(int activityId, int numberOfStudents) { using (WebhostEntities db = new WebhostEntities()) { List <int> studentIds = db.Students.Where(s => s.GraduationYear > DateTime.Now.Year).Select(s => s.ID).ToList(); Random rand = new Random(); for (int i = 0; i < numberOfStudents; i++) { int sid = studentIds[rand.Next(studentIds.Count)]; studentIds.Remove(sid); StudentSignup newSignup = new StudentSignup() { ActivityId = activityId, StudentId = sid, IsBanned = false, IsRescended = false, TimeStamp = DateTime.Now.AddMinutes(rand.Next(30)) }; Console.WriteLine("Added {0} to {1}", sid, activityId); db.StudentSignups.Add(newSignup); } db.SaveChanges(); } }
/// <summary> /// Initialize information about a student's signup. /// </summary> /// <param name="activity_id"></param> /// <param name="student_id"></param> public StudentSignupInfo(int activity_id, int student_id) { using (WebhostEntities db = new WebhostAPI.WebhostEntities()) { StudentSignup signup = db.StudentSignups.Find(activity_id, student_id); if (signup == null) { throw new ArgumentException("Invalid Signup Id."); } ActivityId = activity_id; Student = new RequestHandlers.StudentInfo(student_id); IsRescended = signup.IsRescended; IsBanned = signup.IsBanned; Timestamp = signup.TimeStamp; } }
public IHttpActionResult PutSignupRequest(int activity_id, [FromUri] bool isRescend = false) { if (!DateRange.WeekendSignupsAreOpen) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.NotAcceptable, new MethodAccessException("Weekend Signups will be available at 11:30 on Friday.")))); } using (WebhostEntities db = new WebhostAPI.WebhostEntities()) { WebhostUserPrinciple principal = (WebhostUserPrinciple)ActionContext.RequestContext.Principal; int id = ((WebhostIdentity)principal.Identity).User.Id; WeekendActivity activity = db.WeekendActivities.Find(activity_id); if (activity == null) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.BadRequest, new InvalidOperationException("Invalid Activity Id.")))); } StudentSignup signup = db.StudentSignups.Find(activity_id, id); if (signup == null) // New Signup! { signup = new WebhostAPI.StudentSignup() { ActivityId = activity_id, Attended = false, IsBanned = false, IsRescended = isRescend, StudentId = id, TimeStamp = DateTime.Now }; db.StudentSignups.Add(signup); db.SaveChanges(); return(ResponseMessage(Request.CreateResponse(HttpStatusCode.Created, new StudentSignupInfo(activity_id, id), "text/json"))); } signup.IsRescended = isRescend; signup.TimeStamp = DateTime.Now; db.SaveChanges(); return(ResponseMessage(Request.CreateResponse(HttpStatusCode.OK, new StudentSignupInfo(activity_id, id), "text/json"))); } }
public IHttpActionResult PutOverrideSignup(int activity_id, int student_id, [FromBody] StudentSignupInfo info) { using (WebhostEntities db = new WebhostAPI.WebhostEntities()) { WeekendActivity activity = db.WeekendActivities.Find(activity_id); if (activity == null) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.BadRequest, new InvalidOperationException("Invalid Activity Id.")))); } Student student = db.Students.Find(student_id); if (student == null) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.BadRequest, new InvalidOperationException("Invalid Student Id.")))); } StudentSignup signup = db.StudentSignups.Find(activity_id, student_id); if (signup == null) // Create a new one. { signup = new WebhostAPI.StudentSignup() { ActivityId = activity_id, StudentId = student_id, IsBanned = info.IsBanned, IsRescended = info.IsRescended, Attended = false, TimeStamp = DateTime.Now }; db.StudentSignups.Add(signup); db.SaveChanges(); return(ResponseMessage(Request.CreateResponse(HttpStatusCode.Created, new StudentSignupInfo(activity_id, student_id), "text/json"))); } signup.IsBanned = info.IsBanned; signup.IsRescended = info.IsRescended; signup.TimeStamp = DateTime.Now; db.SaveChanges(); return(ResponseMessage(Request.CreateResponse(HttpStatusCode.OK, new StudentSignupInfo(activity_id, student_id), "text/json"))); } }