using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IStation.RedisCache
{
///
/// 对接监测流程记录缓存辅助类
///
public class MonitorDataDockingFlowRecordCacheHelper
{
//标志
private const string _flag = "monitor-datadocking-flow";
//最后一条记录
private const string _lastRecord = "last-record";
//Redis客户端辅助类对象
private readonly RedisClientHelper _redisClient = new RedisClientHelper();
//创建RedisKey
private static string CreateRedisKey(long CorpID, long ConfigureID)
{
return $"{RedisKeyHelper.CreateKey(_flag)}:{CorpID}-{ConfigureID}";
}
#region 最后一条记录
///
/// 设置最后一条记录
///
public void SetLastRecord(Model.MonitorDataDockingFlowRecord model)
{
if (model == null)
return;
var redisKey = CreateRedisKey(model.CorpID, model.ConfigureID);
_redisClient.HashSetJosn(redisKey, _lastRecord, model);
}
///
/// 设置最后一条记录
///
public void SetLastRecord(IEnumerable list)
{
if (list == null || list.Count() < 1)
return;
foreach (var item in list)
{
SetLastRecord(item);
}
}
///
/// 获取最后一条记录
///
public Model.MonitorDataDockingFlowRecord GetLastRecord(long CorpID, long ConfigureID)
{
var redisKey = CreateRedisKey(CorpID, ConfigureID);
return _redisClient.HashGetJson(redisKey, _lastRecord);
}
///
/// 获取最后一条记录
///
public List GetLastRecord(long CorpID, IEnumerable ConfigureIds)
{
if (ConfigureIds == null || ConfigureIds.Count() < 1)
return default;
return ConfigureIds.Select(x => GetLastRecord(CorpID, x)).Where(x => x != null).ToList();
}
#endregion
}
}