public ActionResult Edit([Bind(Include = "SignupID,PlayerID,EventID,IsApproved,CommentGM,CommentPlayer")] PlayerSignup playerSignup)
        {
            if (ModelState.IsValid)
            {
                db.Entry(playerSignup).State = EntityState.Modified;
                db.SaveChanges();
                var evt = db.Events.Find(playerSignup.EventID);
                if (evt.HostID != User.Identity.GetUserId())
                {
                    var    subject  = $"Alert for {evt.Location} sign up";
                    string Username = db.GMs.Find(User.Identity.GetUserId()).Username;
                    string decision; if (playerSignup.IsApproved)
                    {
                        decision = "Approved";
                    }
                    else
                    {
                        decision = "Declined";
                    }

                    var messageBody = $"{Username} {decision} your application : \n {playerSignup.CommentGM}";
                    var player      = db.Players.Find(playerSignup.PlayerID);
                    MessageSender.SendEmail(subject, messageBody, player.Email);
                }
                return(RedirectToAction("Details", "Events", new { id = playerSignup.EventID }));
            }
            ViewBag.EventID  = new SelectList(db.Events, "EventID", "HostID", playerSignup.EventID);
            ViewBag.PlayerID = new SelectList(db.Players, "PlayerID", "Username", playerSignup.PlayerID);
            return(View(playerSignup));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            PlayerSignup playerSignup = db.PlayerSignups.Find(id);

            db.PlayerSignups.Remove(playerSignup);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public ActionResult Create(int?id)
        {
            var playerSignup = new PlayerSignup {
                EventID = id.Value, PlayerID = User.Identity.GetUserId()
            };

            ViewBag.Event = db.Events.Find(id);
            return(View(playerSignup));
        }
        // GET: PlayerSignups/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PlayerSignup playerSignup = db.PlayerSignups.Find(id);

            if (playerSignup == null)
            {
                return(HttpNotFound());
            }
            return(View(playerSignup));
        }
        // GET: PlayerSignups/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PlayerSignup playerSignup = db.PlayerSignups.Find(id);

            if (playerSignup == null)
            {
                return(HttpNotFound());
            }
            ViewBag.EventID  = new SelectList(db.Events, "EventID", "HostID", playerSignup.EventID);
            ViewBag.PlayerID = new SelectList(db.Players, "PlayerID", "Username", playerSignup.PlayerID);
            return(View(playerSignup));
        }
        public ActionResult Create([Bind(Include = "SignupID,PlayerID,EventID,IsApproved,CommentGM,CommentPlayer")] PlayerSignup playerSignup)
        {
            if (ModelState.IsValid)
            {
                db.PlayerSignups.Add(playerSignup);
                db.SaveChanges();
                var evt = db.Events.Find(playerSignup.EventID);
                if (evt.HostID != User.Identity.GetUserId())
                {
                    var    subject  = $"Alert for {evt.Location}";
                    string Username = db.Players.Find(User.Identity.GetUserId()).Username;

                    var messageBody = $"{Username} submitted a sign-up attempt : \n {playerSignup.CommentPlayer}";
                    MessageSender.SendEmail(subject, messageBody, evt.GM.Email);
                }
                return(RedirectToAction("Details", "Events", new { id = playerSignup.EventID }));
            }

            ViewBag.Event = db.Events.Find(playerSignup.EventID);
            return(View(playerSignup));
        }