Beispiel #1
0
        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);
                }
            }
        }