big refactoring. get rid of static properties and coupled architecture. prepare system for integration tests

This commit is contained in:
Oleksandr Bezdieniezhnykh
2025-11-17 13:14:05 +02:00
parent 22529c26ec
commit e7ea5a8ded
38 changed files with 808 additions and 157 deletions
+12 -16
View File
@@ -1,6 +1,7 @@
using System.IO;
using System.Text;
using Azaion.Common.Extensions;
using Azaion.Common.Services;
using Newtonsoft.Json;
namespace Azaion.Common.DTO.Config;
@@ -40,7 +41,16 @@ public interface IConfigUpdater
public class ConfigUpdater : IConfigUpdater
{
private static readonly Guid SaveConfigTaskId = Guid.NewGuid();
private readonly IConfigurationStore _configStore;
public ConfigUpdater(IConfigurationStore configStore)
{
_configStore = configStore;
}
public ConfigUpdater() : this(new FileConfigurationStore(Constants.CONFIG_PATH, new PhysicalFileSystem()))
{
}
public void CheckConfig()
{
@@ -55,20 +65,6 @@ public class ConfigUpdater : IConfigUpdater
public void Save(AppConfig config)
{
ThrottleExt.Throttle(async () =>
{
var publicConfig = new
{
config.LoaderClientConfig,
config.InferenceClientConfig,
config.GpsDeniedClientConfig,
config.DirectoriesConfig,
config.UIConfig,
config.CameraConfig
};
await File.WriteAllTextAsync(Constants.CONFIG_PATH, JsonConvert.SerializeObject(publicConfig, Formatting.Indented), Encoding.UTF8);
}, SaveConfigTaskId, TimeSpan.FromSeconds(5));
_ = _configStore.SaveAsync(config);
}
}