public async Task <IViewComponentResult> InvokeAsync(int teamId, int userId)
        {
            ViewData["CurrentUser"] = GetCurrentUser();
            var team = _context.Team.Find(teamId);

            ViewData["TeamOwner"] = _context.User.Where(x => x.UserId == team.FkOwner).FirstOrDefault();
            if (userId > 0)
            {
                var user = _context.TeamMember.FirstOrDefault(x => x.FkUser == userId && x.FkTeam == teamId);

                if (user == null)
                {
                    var invites = _context.TeamInvitation.Where(x => x.FkUser == userId);
                    _context.RemoveRange(invites);
                    _context.TeamMember.Add(new TeamMember {
                        FkTeam = teamId, FkUser = userId
                    });
                    await _context.SaveChangesAsync();
                }
                else
                {
                    _context.TeamMember.Remove(user);
                    await _context.SaveChangesAsync();
                }
            }
            var teamMemberList = _context.TeamMember.Where(p => p.FkTeam == teamId).Include(x => x.FkUserNavigation);

            return(View(teamMemberList));
        }
        public async Task <IViewComponentResult> InvokeAsync(int eventId, int userId)
        {
            ViewData["CurrentUser"] = GetCurrentUser();
            var eventItem = _context.Event.Find(eventId);

            ViewData["EventMax"]  = eventItem.MaxParticipantAmt;
            ViewData["TeamOwner"] = _context.User.Where(x => x.UserId == eventItem.FkOwner).FirstOrDefault();
            var eventMemberList = _context.Participant.Where(p => p.FkEvent == eventId).Include(x => x.FkUserNavigation);

            if (eventItem.MaxParticipantAmt > eventMemberList.Count())
            {
                if (userId > 0)
                {
                    var user = _context.Participant.FirstOrDefault(x => x.FkUser == userId && x.FkEvent == eventId);

                    if (user == null)
                    {
                        var invites = _context.EventInvitation.Where(x => x.FkUser == userId);
                        _context.RemoveRange(invites);
                        _context.Participant.Add(new Participant {
                            FkEvent = eventId, FkUser = userId
                        });
                        await _context.SaveChangesAsync();
                    }
                    else
                    {
                        _context.Participant.Remove(user);
                        await _context.SaveChangesAsync();
                    }
                }
            }


            return(View(eventMemberList));
        }
        public async Task <IActionResult> DeleteConfirmed(int id)
        {
            var teamInvites              = _context.TeamInvitation.Where(x => x.FkTeam == id);
            var teamMembers              = _context.TeamMember.Where(x => x.FkTeam == id);
            var teamParticipations       = _context.Participant.Where(x => x.FkTeam == id);
            var tournamentParticipations = _context.TournamentMember.Where(x => x.FkTeam == id).Include(x => x.FkTournamentNavigation);

            foreach (var item in tournamentParticipations)
            {
                await chall.OnDeleteParticipant(item, item.FkTournamentNavigation.ExternalID);
            }
            var team = await _context.Team.FindAsync(id);

            _context.RemoveRange(teamInvites);
            _context.RemoveRange(teamMembers);
            _context.RemoveRange(teamParticipations);
            _context.RemoveRange(tournamentParticipations);
            _context.Team.Remove(team);
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }