AutoDispatching/AutoDispathingWork/Services/SettingServices.cs
2023-11-19 17:06:38 +08:00

42 lines
1.1 KiB
C#

using LiteDB;
using Microsoft.Extensions.Options;
using WorkerService1.Dto.Configuration;
namespace WorkerService1.Services;
public class SettingServices
{
private readonly IOptionsMonitor<ClientOptions> _optionsMonitor;
private readonly LiteDatabase _db;
public SettingServices(IOptionsMonitor<ClientOptions> optionsMonitor, LiteDatabase db)
{
_optionsMonitor = optionsMonitor;
_db = db;
}
public void Reset()
{
SettingClientOptions(_optionsMonitor.CurrentValue);
}
public ClientOptions GetClientOptions()
{
var clientOptions = _db.GetCollection<ClientOptions>();
var dbOptions = clientOptions.FindAll().FirstOrDefault();
if (dbOptions != null)
{
return dbOptions;
}
return _optionsMonitor.CurrentValue;
}
public ClientOptions SettingClientOptions(ClientOptions options)
{
var clientOptions = _db.GetCollection<ClientOptions>();
clientOptions.DeleteAll();
clientOptions.Insert(options);
return options;
}
}