示例#1
0
 public PrismicGenericService(ILogger <PrismicGenericService> logger, HttpClient httpClient, PrismicCacheProvider prismicCacheProvider, IConfiguration configuration)
 {
     _logger               = logger;
     _httpClient           = httpClient;
     _prismicCacheProvider = prismicCacheProvider;
     _prismicApiUrl        = configuration.GetValue <string>("Prismic:ApiUrl");
 }
        public async Task UtiliseCacheWithHeroData()
        {
            var cache                = new MemoryCache(new MemoryCacheOptions());
            var cacheProvider        = new CacheProvider(cache);
            var prismicCacheProvider = new PrismicCacheProvider(cacheProvider);
            var prismicService       = new PrismicGenericService(new NullLogger <PrismicGenericService>(), _fixture.HttpClient, TestCacheFactory.BuildPrismicCacheProvider(), _fixture.Configuration);
            var prismicHeroService   = new PrismicHeroService(prismicService, prismicCacheProvider);

            var timer = new Stopwatch();

            timer.Start();
            var result1 = await prismicHeroService.GetHeroes();

            timer.Stop();
            _outputHelper.WriteLine($"Time for first result: { timer.Elapsed }");

            timer.Restart();
            var result2 = await prismicHeroService.GetHeroes();

            timer.Stop();
            _outputHelper.WriteLine($"Time for second result: {timer.Elapsed}");

            var roles = await prismicHeroService.GetRoles();

            var roleCategories = await prismicHeroService.GetRoleCategories();

            var universes = await prismicHeroService.GetUniverses();

            var inGameCategories = await prismicHeroService.GetInGameCategories();

            var firstHero = result1.FirstOrDefault();

            Assert.Same(result1, result2);

            var category = firstHero?.InGameCategories?.FirstOrDefault();

            Assert.NotNull(category);
            Assert.Same(category, inGameCategories.SingleOrDefault(x => x.Id == category.Id));

            var role = firstHero?.Roles?.FirstOrDefault();

            Assert.NotNull(role);
            Assert.Same(role, roles.SingleOrDefault(x => x.Id == role.Id));

            var roleCategory = firstHero?.Roles?.FirstOrDefault()?.RoleCategory;

            Assert.NotNull(roleCategory);
            Assert.Same(roleCategory, roleCategories.SingleOrDefault(x => x.Id == roleCategory.Id));

            var universe = firstHero?.Universe;

            Assert.NotNull(universe);
            Assert.Same(universe, universes.SingleOrDefault(x => x.Id == universe.Id));

            var inGameCategory = firstHero?.InGameCategories?.FirstOrDefault();

            Assert.NotNull(inGameCategory);
            Assert.Same(inGameCategory, inGameCategories.SingleOrDefault(x => x.Id == inGameCategory.Id));
        }
 public WebhooksController(IConfiguration configuration, PrismicCacheProvider cacheProvider)
 {
     _prismicWebhookSecretKey = configuration.GetValue <string>("Prismic:WebhookSecretKey");
     _cacheProvider           = cacheProvider;
 }
 public PrismicHeroService(PrismicGenericService prismicService, PrismicCacheProvider cacheProvider)
 {
     _prismicService       = prismicService;
     _prismicCacheProvider = cacheProvider;
 }