Files
egwcapp/EgwControlCenter.Core/ConfigManager.cs
T
2024-10-02 16:14:15 +02:00

81 lines
2.1 KiB
C#

using EgwControlCenter.Core.DTO;
using Newtonsoft.Json;
using NLog;
using RestSharp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwControlCenter.Core
{
public class ConfigManager
{
#region Public Constructors
public ConfigManager(string appDir, string confName)
{
AppDir = appDir;
ConfName = confName;
// verifico path...
if (string.IsNullOrEmpty(AppDir))
{
AppDir = AppDomain.CurrentDomain.BaseDirectory;
}
if (File.Exists(ConfPath))
{
var rawData = File.ReadAllText(ConfPath);
if (!string.IsNullOrEmpty(rawData))
{
CurrPatrolCont = JsonConvert.DeserializeObject<PatrolSettings>(rawData) ?? new PatrolSettings();
}
}
}
#endregion Public Constructors
#region Public Properties
/// <summary>
/// Configurazione degli oggetti da monitorare
/// </summary>
public PatrolSettings CurrPatrolCont { get; set; } = new PatrolSettings();
#endregion Public Properties
#region Public Methods
public void SaveConfig()
{
var rawData = JsonConvert.SerializeObject(CurrPatrolCont, Formatting.Indented);
if (rawData != null && rawData.Length > 2)
{
File.WriteAllText(ConfPath, rawData);
}
}
/// <summary>
/// Classe logger
/// </summary>
private static Logger Log = LogManager.GetCurrentClassLogger();
#endregion Public Methods
#region Private Properties
private string AppDir { get; set; } = "";
private string ConfName { get; set; } = "";
/// <summary>
/// Path file di conf check
/// </summary>
private string ConfPath
{
get => Path.Combine(AppDir, ConfName);
}
#endregion Private Properties
}
}