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; }