You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iot/projects/IoTNode/Services/CachedSceneTiggerService.cs

30 lines
1000 B

using Application.Domain.Entities;
using Infrastructure.Extensions;
using Microsoft.Extensions.Caching.Distributed;
using System.Collections.Generic;
namespace IoTNode.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<SceneTigger> GetSceneTiggers()
{
var sceneTiggers = this._cache.Get<IList<SceneTigger>>(CacheKey.SceneTiggerKey);
if (sceneTiggers == null)
{
sceneTiggers = this._sceneTiggerService.GetSceneTiggers();
_cache.Set(CacheKey.SceneTiggerKey, sceneTiggers);
}
return sceneTiggers;
}
}
}