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/Platform/Services/CachedSceneTiggerService.cs

31 lines
998 B

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