mirror of
https://github.com/snltty/linker.git
synced 2025-10-31 04:26:45 +08:00
133 lines
3.3 KiB
C#
133 lines
3.3 KiB
C#
using cmonitor.client.reports.hijack;
|
|
using cmonitor.client.reports.screen;
|
|
using common.libs.database;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
namespace cmonitor.client
|
|
{
|
|
|
|
[Table("client")]
|
|
public sealed class ClientConfig
|
|
{
|
|
private readonly IConfigDataProvider<ClientConfig> configDataProvider;
|
|
private readonly Config config;
|
|
|
|
public ClientConfig() { }
|
|
public ClientConfig(IConfigDataProvider<ClientConfig> configDataProvider, Config config)
|
|
{
|
|
this.configDataProvider = configDataProvider;
|
|
this.config = config;
|
|
|
|
ClientConfig clientConfig = configDataProvider.Load().Result ?? new ClientConfig();
|
|
LLock = clientConfig.LLock;
|
|
Wallpaper = clientConfig.Wallpaper;
|
|
WallpaperUrl = clientConfig.WallpaperUrl;
|
|
HijackConfig = clientConfig.HijackConfig;
|
|
WindowNames = clientConfig.WindowNames;
|
|
SaveTask();
|
|
}
|
|
|
|
private void SaveTask()
|
|
{
|
|
Task.Factory.StartNew(() =>
|
|
{
|
|
while (true)
|
|
{
|
|
try
|
|
{
|
|
if (updated && config.SaveSetting)
|
|
{
|
|
Save();
|
|
}
|
|
}
|
|
catch (Exception)
|
|
{
|
|
}
|
|
Thread.Sleep(5000);
|
|
}
|
|
}, TaskCreationOptions.LongRunning);
|
|
}
|
|
|
|
private bool updated = false;
|
|
|
|
private bool _llock;
|
|
public bool LLock
|
|
{
|
|
get => _llock; set
|
|
{
|
|
_llock = value;
|
|
updated = true;
|
|
}
|
|
}
|
|
|
|
private bool _wallpaper;
|
|
public bool Wallpaper
|
|
{
|
|
get => _wallpaper; set
|
|
{
|
|
_wallpaper = value;
|
|
updated = true;
|
|
}
|
|
}
|
|
|
|
private string _wallpaperUrl;
|
|
public string WallpaperUrl
|
|
{
|
|
get => _wallpaperUrl; set
|
|
{
|
|
_wallpaperUrl = value;
|
|
updated = true;
|
|
}
|
|
}
|
|
|
|
private HijackConfig _hijackConfig = new HijackConfig();
|
|
public HijackConfig HijackConfig
|
|
{
|
|
get => _hijackConfig; set
|
|
{
|
|
_hijackConfig = value;
|
|
updated = true;
|
|
}
|
|
}
|
|
|
|
private string[] _windowNames = Array.Empty<string>();
|
|
public string[] WindowNames
|
|
{
|
|
get => _windowNames; set
|
|
{
|
|
_windowNames = value;
|
|
updated = true;
|
|
}
|
|
}
|
|
|
|
private ScreenShareStates _screenShareState;
|
|
public ScreenShareStates ScreenShareState
|
|
{
|
|
get => _screenShareState; set
|
|
{
|
|
_screenShareState = value;
|
|
updated = true;
|
|
}
|
|
}
|
|
|
|
|
|
private string _userSid = string.Empty;
|
|
public string UserSid
|
|
{
|
|
get => _userSid; set
|
|
{
|
|
_userSid = value;
|
|
updated = true;
|
|
}
|
|
}
|
|
|
|
public void Save()
|
|
{
|
|
configDataProvider.Save(this).Wait();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|