// GET: Turnering/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            // REPOSITORY !!!
            Turnering turnering = db.Turneringer.Include(h => h.HoldListe).Include(k => k.Kampe).Where(d => d.TurneringId == id).First();

            if (turnering == null)
            {
                return(HttpNotFound());
            }

            // if (turnering.HoldListe.Count >= turnering.MaxAntalHold || turnering.AabenForTilmelding == false)
            if (turnering.AabenForTilmelding == false)
            {
                return(RedirectToAction("Kampprogram", new { turneringsId = turnering.TurneringId }));
            }

            TurneringDetailsViewModel viewModel = OpbygTurneringDetailsViewModel(turnering);

            return(View(viewModel));
        }
        public ActionResult AfmeldHold(int turneringsId, int holdId)
        {
            // REPOSITORY !!!
            Turnering turnering    = db.Turneringer.Include(h => h.HoldListe).Where(t => t.TurneringId == turneringsId).First();
            Hold      holdAtFjerne = db.HoldListe.Find(holdId);

            turnering.HoldListe.Remove(holdAtFjerne);
            db.SaveChanges();

            TurneringDetailsViewModel viewModel = OpbygTurneringDetailsViewModel(turnering);

            return(View("Details", viewModel));
        }
        private TurneringDetailsViewModel OpbygTurneringDetailsViewModel(Turnering turnering)
        {
            List <Hold> tilmeldteHold     = turnering.HoldListe.ToList();
            List <Hold> alleHold          = db.HoldListe.ToList();
            List <Hold> ikkeTilmeldteHold = alleHold.Except(tilmeldteHold).ToList();

            var viewModel = new TurneringDetailsViewModel()
            {
                Turnering         = turnering,
                IkkeTilmeldteHold = ikkeTilmeldteHold
            };

            return(viewModel);
        }
        public ActionResult TilmeldHold(int turneringsId, int holdId) // ActionResult
        {
            // REPOSITORY !!!
            Turnering turnering = db.Turneringer.Include(h => h.HoldListe).Where(t => t.TurneringId == turneringsId).First();

            if (turnering.HoldListe.Count >= turnering.MaxAntalHold)
            {
                return(RedirectToAction("Index"));
            }

            // REPOSITORY !!!
            Hold holdAtTilmelde = db.HoldListe.Find(holdId);

            turnering.HoldListe.Add(holdAtTilmelde);
            db.SaveChanges();

            TurneringDetailsViewModel viewModel = OpbygTurneringDetailsViewModel(turnering);

            return(View("Details", viewModel));
        }