// GET: WednesdayTeams/Create
        public ActionResult Create()
        {
            var items = db.WednesdayTeams.ToList();
            int id    = 1;

            if (items.Count > 1)
            {
                items.Sort((a, b) => a.id.CompareTo(b.id));
                id = items[items.Count - 1].id + 1;
            }

            var item = new WednesdayTeam()
            {
                id = id
            };
            var teams = db.WednesdayTeams.OrderBy(x => x.id);
            var list  = new List <Player>();
            var list1 = db.Players.Where(x => x.WednesdayLeague).ToList();

            foreach (var player in list1)
            {
                if (!teams.Any(x => x.Skip == player.id || x.Lead == player.id || x.ViceSkip == player.id))
                {
                    list.Add(player);
                }
            }
            ViewBag.Skip     = new SelectList(list.OrderBy(x => x.LastName), "id", "FullName", " ");
            ViewBag.ViceSkip = new SelectList(list.OrderBy(x => x.LastName), "id", "FullName", " ");
            ViewBag.Lead     = new SelectList(list.OrderBy(x => x.LastName), "id", "FullName", " ");
            ViewBag.Teams    = teams;
            return(View(item));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            WednesdayTeam WednesdayTeam = db.WednesdayTeams.Find(id);

            db.WednesdayTeams.Remove(WednesdayTeam);
            try
            {
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            catch (System.Data.Entity.Infrastructure.DbUpdateException e)
            {
                ErrorSignal.FromCurrentContext().Raise(e);
                Exception ex = e;
                while (ex.InnerException != null)
                {
                    ex = ex.InnerException;
                }
                ViewBag.Error = ex.Message;
            }
            catch (Exception e)
            {
                ErrorSignal.FromCurrentContext().Raise(e);
                ViewBag.Error = "Delete failed";
            }
            return(View(WednesdayTeam));
        }
        public ActionResult Edit([Bind(Include = "id,Skip,Lead,ViceSkip")] WednesdayTeam WednesdayTeam)
        {
            if (ModelState.IsValid)
            {
                db.Entry(WednesdayTeam).State = EntityState.Modified;
                try
                {
                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
                catch (System.Data.Entity.Infrastructure.DbUpdateException e)
                {
                    ErrorSignal.FromCurrentContext().Raise(e);
                    Exception ex = e;
                    while (ex.InnerException != null)
                    {
                        ex = ex.InnerException;
                    }
                    ModelState.AddModelError(string.Empty, e.Message);
                }
                catch (Exception e)
                {
                    ErrorSignal.FromCurrentContext().Raise(e);
                    ModelState.AddModelError(string.Empty, "Edit failed");
                }
            }
            var teams = db.WednesdayTeams.OrderBy(x => x.id);

            var list  = new List <Player>();
            var list1 = db.Players.Where(x => x.WednesdayLeague).ToList();

            foreach (var player in list1)
            {
                if (!teams.Any(x => x.Skip == player.id || x.Lead == player.id || x.ViceSkip == player.id))
                {
                    list.Add(player);
                }
            }
            if (WednesdayTeam.ViceSkip != null)
            {
                list.Add(WednesdayTeam.Player1);
            }
            if (WednesdayTeam.Lead != null)
            {
                list.Add(WednesdayTeam.Player2);
            }
            ViewBag.Lead     = new SelectList(list.OrderBy(x => x.LastName), "id", "FullName", WednesdayTeam.Lead);
            ViewBag.ViceSkip = new SelectList(list.OrderBy(x => x.LastName), "id", "FullName", WednesdayTeam.ViceSkip);
            ViewBag.Teams    = teams;
            return(View(WednesdayTeam));
        }
        // GET: WednesdayTeams/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            WednesdayTeam WednesdayTeam = db.WednesdayTeams.Find(id);

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

            if (WednesdayTeam == null)
            {
                return(HttpNotFound());
            }
            var teams = db.WednesdayTeams.OrderBy(x => x.id);
            var list  = new List <Player>();
            var list1 = db.Players.Where(x => x.WednesdayLeague).ToList();

            foreach (var player in list1)

            {
                if (!teams.Any(x => x.Skip == player.id || x.Lead == player.id || x.ViceSkip == player.id))
                {
                    list.Add(player);
                }
            }
            if (WednesdayTeam.ViceSkip != null)
            {
                list.Add(WednesdayTeam.Player1);
            }
            if (WednesdayTeam.Lead != null)
            {
                list.Add(WednesdayTeam.Player2);
            }
            ViewBag.Lead     = new SelectList(list.OrderBy(x => x.LastName), "id", "FullName", WednesdayTeam.Lead);
            ViewBag.ViceSkip = new SelectList(list.OrderBy(x => x.LastName), "id", "FullName", WednesdayTeam.ViceSkip);
            ViewBag.Teams    = teams;
            return(View(WednesdayTeam));
        }
        public ActionResult RemoveViceSkip(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            WednesdayTeam WednesdayTeam = db.WednesdayTeams.Find(id);

            if (WednesdayTeam == null)
            {
                return(HttpNotFound());
            }
            WednesdayTeam.ViceSkip        = null;
            db.Entry(WednesdayTeam).State = EntityState.Modified;
            try
            {
                db.SaveChanges();
            }
            catch (Exception e)
            {
                ErrorSignal.FromCurrentContext().Raise(e);;
            }
            return(RedirectToAction("Index"));
        }