public async Task<IActionResult> Edit(TeamTournament teamTournament)
        {
            if (ModelState.IsValid)
            {
                // Get previous object
                var tt = await db.TeamTournament.SingleAsync(x => x.Id == teamTournament.Id);
                tt.Name = teamTournament.Name;

                await db.SaveChangesAsync(Context.RequestAborted);
                return RedirectToAction("Manage", "Clan");
            }

            return View(teamTournament);
        }
        public async Task<IActionResult> RegisterClan(int id)
        {
            var tournament = await db.Tournaments.FirstOrDefaultAsync(t => t.Id == id);

            if (tournament == null)
            {
                return new HttpStatusCodeResult(404);
            }

            // Get current user's clan details
            var currentUser = await db.Users.Include(x => x.Clan).SingleAsync(x => x.UserName == User.Identity.Name);

            // Make sure the user is part of a clan
            if (currentUser.Clan == null)
            {
                ViewBag.Error = "You must be part of a clan to do this operation";
                return RedirectToAction("Index");
            }

            // Make sure this user is the clan owner
            if (currentUser.Clan.OwnerUserId != currentUser.Id)
            {
                ViewBag.Error = "You must be the leader of your clan to register in a tournament";
                return RedirectToAction("Index");
            }

            var teamTournament = new TeamTournament
            {
                TournamentId = id,
                ClanId = (int)currentUser.ClanId,
                Name = currentUser.Clan.Name
            };

            await db.AddAsync(teamTournament);
            await db.SaveChangesAsync();

            return RedirectToAction("Manage", "Clan");
        }