public async Task <bool> CreateNewTeamAsync(IEnumerable <Guid> summonerIds)
        {
            var seasonInfo = await _seasonInfoRepository.GetCurrentSeasonAsync();

            summonerIds = summonerIds.ToList();
            var result = false;

            try
            {
                var summonerIdsList = summonerIds.ToList();
                var temp            = new List <Guid>(summonerIds);
                foreach (var summonerId in temp)
                {
                    var playerRecord = await _teamPlayerRepository.GetRosterIdForExistingGroupAsync(
                        new List <Guid>
                    {
                        summonerId
                    },
                        seasonInfo.Id);

                    if (playerRecord != null)
                    {
                        summonerIdsList.Remove(summonerId);
                    }
                }
                var summoners = (await _summonerInfoRepository.GetAllForSummonerIdsAsync(summonerIdsList)).ToList();



                if (summoners.Count < MinTeamCountRequirement)
                {
                    throw new Exception("Cannot make a team with less than 5 players");
                }


                var teamTierScores = new List <int>();
                var teamPlayers    = new List <TeamPlayerEntity>();
                foreach (var summoner in summoners)
                {
                    teamPlayers.Add(new TeamPlayerEntity
                    {
                        SummonerId   = summoner.Id,
                        SeasonInfoId = seasonInfo.Id
                    });
                    var currentTierScore  = int.Parse((await _lookupRepository.GetLookupEntity(summoner.Tier_DivisionId)).Value);
                    var previousTierScore = summoner.PreviousSeasonRankId != null
                        ? int.Parse((await _lookupRepository.GetLookupEntity(summoner.Tier_DivisionId)).Value)
                        : 0;

                    var tierScore = Math.Max(currentTierScore, previousTierScore);
                    teamTierScores.Add(tierScore + summoner.CurrentLp);
                }

                var teamsCount = (await _teamRosterRepository.GetAllTeamsAsync(seasonInfo.Id)).Count();

                var teamTierScore = teamTierScores.OrderByDescending(x => x).Take(MinTeamCountRequirement).Sum();
                var team          = new TeamRosterEntity
                {
                    Id            = Guid.NewGuid(),
                    TeamName      = $"Team{teamsCount+1}",
                    TeamTierScore = teamTierScore / MinTeamCountRequirement,
                    SeasonInfoId  = seasonInfo.Id
                };

                var createTeamResult = await _teamRosterRepository.CreateAsync(team);

                if (!createTeamResult)
                {
                    throw new Exception("Failed to create team entity");
                }

                teamPlayers.ForEach(x => x.TeamRosterId = team.Id);

                result = await _teamPlayerRepository.InsertAsync(teamPlayers);
            }
            catch (Exception e)
            {
                _logger.LogError(e, "Error for Admin Create Team process.");
            }

            return(result);
        }