コード例 #1
0
ファイル: Program.cs プロジェクト: Fruity-Grebbles/webhost
        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();
            }
        }
コード例 #2
0
        /// <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;
            }
        }
コード例 #3
0
        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")));
            }
        }
コード例 #4
0
        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")));
            }
        }