You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
2.3 KiB
C#

using Microsoft.Extensions.DependencyInjection;
using SlnMesnac.Model.domain;
using SlnMesnac.Repository.service.@base;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
#region << 版 本 注 释 >>
/*--------------------------------------------------------------------
* (c) 2024 WenJY
* CLR4.0.30319.42000
* LAPTOP-E0N2L34V
* SlnMesnac.Repository.service.Impl
* 50d84911-9088-4fd3-b85a-151411028afc
*
* WenJY
* wenjy@mesnac.com
* 2024-04-08 16:47:57
* V1.0.0
*
*
*--------------------------------------------------------------------
*
*
*
*
* V1.0.0
*--------------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
namespace SlnMesnac.Repository.service.Impl
{
public class BaseConfigInfoServiceImpl : BaseServiceImpl<BaseConfigInfo>, IBaseConfigInfoService
{
private readonly IServiceProvider _serviceProvider;
public BaseConfigInfoServiceImpl(Repository<BaseConfigInfo> rep,IServiceProvider serviceProvider) : base(rep)
{
_serviceProvider = serviceProvider;
}
public void SaveConfigInfo(BaseConfigInfo configInfo)
{
bool isRes = base._rep.Insert(configInfo);
RefreshConfigInfos();
}
public void UpdateConfigInfo(BaseConfigInfo configInfo)
{
bool isRes = base._rep.Update(configInfo);
RefreshConfigInfos();
}
public void DeleteConfigInfo(int configId)
{
bool isRes = base._rep.DeleteById(configId);
RefreshConfigInfos();
}
/// <summary>
/// 更新本地缓存
/// </summary>
private void RefreshConfigInfos()
{
using (var scope = _serviceProvider.CreateScope())
{
var info = scope.ServiceProvider.GetRequiredService<List<BaseConfigInfo>>();
var hashCode = info.GetHashCode();
var infos = base.Query(x => x.IsFlag == 1).ToList();
info.Clear();
info.AddRange(infos);
var hashValue = info.GetHashCode();
}
}
}
}