async Task <IReadOnlyList <HeroGuide> > GetGuides(IReadOnlyList <Hero> heroes) { return((await Task.WhenAll(heroes.Select(TryGetHeroGuideAsync))) .WhereNotNull() .ToList()); async Task <HeroGuide?> TryGetHeroGuideAsync(Hero hero) { try { var result = await repository.GetHeroGuideAsync(hero, applicationHostLifetime.ApplicationStopping); logger.LogInformation("Hero guide for found for : {Id}", hero.Id); return(result); } catch (Exception exception) { logger.LogError(exception, "Failed loading hero guide of {Id}", hero.Id); return(null); } } }