public async Task <bool> UpdateRosterTierScoreAsync() { var rosters = await _rosterService.GetAllRosters(); foreach (var roster in rosters) { var teamTierScores = new List <int>(); foreach (var player in roster.Players) { var divisionId = _tierDivisionMapper.Map(player.TierDivision); var divisionScore = int.Parse((await _lookupRepository.GetLookupEntity(divisionId)).Value); teamTierScores.Add(divisionScore + player.CurrentLp); } var currentScore = teamTierScores.OrderByDescending(x => x).Take(MinTeamCountRequirement).Sum() / MinTeamCountRequirement; var rosterEntity = await _teamRosterRepository.GetByTeamIdAsync(roster.RosterId); rosterEntity.TeamTierScore = currentScore; try { var rosterUpdate = await _teamRosterRepository.UpdateAsync(rosterEntity); if (!rosterUpdate) { throw new Exception($"Error updating team score for: {roster.TeamName}"); } } catch (Exception e) { _logger.LogError(e, ""); return(false); } } return(true); }