using Application.Domain.Entities; using Infrastructure.Extensions; using Microsoft.Extensions.Caching.Distributed; using System.Collections.Generic; namespace IoTCenter.Services { public class CachedSceneTiggerService : ISceneTiggerService { private readonly IDistributedCache _cache; private readonly SceneTiggerService _sceneTiggerService; public CachedSceneTiggerService(IDistributedCache cache, SceneTiggerService sceneTiggerService) { this._cache = cache; this._sceneTiggerService = sceneTiggerService; } public IList GetSceneTiggers() { var sceneTiggers = this._cache.Get>(CacheKey.SceneTiggerKey); if (sceneTiggers == null) { sceneTiggers = this._sceneTiggerService.GetSceneTiggers(); _cache.Set(CacheKey.SceneTiggerKey, sceneTiggers); } return sceneTiggers; } } }