private void CreateAndInitializeATeamWithAMember(out LiteDbUser user, out SteamIdentity steamIdentity,
                                                  out Team team)
 {
     user          = ServerSelectedModServiceTests.InsertUserAndSteamIdentity(_steamIdentityService, _userManager);
     steamIdentity = _steamIdentityService.FindAll().GetAwaiter().GetResult().First();
     team          = CreateTeam(_teamService);
     _teamSelectedSteamIdentityService.Insert(new TeamSelectedSteamIdentity
     {
         Team          = team,
         SteamIdentity = steamIdentity,
         RoleOverwrite = ""
     });
 }
        public async Task <IActionResult> SaveTeam(Team team)
        {
            var user = await _userService.getUserFromCp(HttpContext.User);

            var teams = await _teamService.FindAllTeamsWhereTheUserHasRights(HttpContext.User, user);

            if (team.Id != 0)
            {
                if (!teams.Where(x => x.TeamRole == "Admin" || x.TeamRole == "Mod").Select(x => x.Id).Contains(team.Id))
                {
                    return(Forbid());
                }
            }

            if (!ModelState.IsValid)
            {
                return(View("Team", team));
            }

            if (team.Id == 0)
            {
                var tmp = await _teamService.FindOne(team.Name);

                if (tmp == null)
                {
                    var own = await _steamIdentityService.FindOne(user.Id);

                    if (own == null)
                    {
                        ModelState.AddModelError("Name", "You need a steamIdentity to create a team!");
                        return(await EditTeam(team));
                    }
                    await _teamService.Upsert(team);


                    await _teamSelectedSteamIdentityService.Insert(new TeamSelectedSteamIdentity
                    {
                        SteamIdentity = own,
                        RoleOverwrite = "Admin",
                        Team          = team
                    });
                }
                else
                {
                    ModelState.AddModelError("Name", "This name is already used!");
                }
            }
            else
            {
                await _teamService.Upsert(team);
            }


            if (ModelState.ErrorCount > 0)
            {
                return(await EditTeam(team));
            }


            return(await Index());
        }