public async Task <ICollection <Hero> > GetHeroesInRange(int heroId) { var heroFound = await FindById(heroId); var heroPosition = new GeoCoordinate(heroFound.Latitude, heroFound.Longitude); var res = new List <Hero>(); if (!_rewardService.HasBadgeByType(BadgeType.TierCategory5, heroFound)) { var heroes = await _context.Heroes.ToListAsync(); foreach (var hero in heroes) { if (CheckDistance(heroPosition, hero.Latitude, hero.Longitude)) { res.Add(hero); } } } else { var heroes = await _context.Heroes.Where(h => h.IsGod).ToListAsync(); foreach (var hero in heroes) { if (CheckDistance(heroPosition, hero.Latitude, hero.Longitude)) { res.Add(hero); } } } return(res); }