2025-08-15 15:36:40 +08:00
|
|
|
|
using IniParser;
|
|
|
|
|
using SWS.Commons;
|
|
|
|
|
using System;
|
|
|
|
|
using System.IO;
|
2025-09-10 10:57:20 +08:00
|
|
|
|
using static System.Collections.Specialized.BitVector32;
|
2025-08-15 15:36:40 +08:00
|
|
|
|
|
|
|
|
|
namespace SWS.Service
|
|
|
|
|
{
|
|
|
|
|
public class ConfigService
|
|
|
|
|
{
|
|
|
|
|
public string path = Environment.ExpandEnvironmentVariables(@"%USERPROFILE%\AppData\Roaming\BricsCAD Electrical\Config\AppConfig.ini");
|
|
|
|
|
public FileIniDataParser parser = new FileIniDataParser();
|
|
|
|
|
public HttpService _httpService;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// config.ini 给默认值,且创建出来
|
|
|
|
|
/// </summary>
|
|
|
|
|
void SetDefaultConfigValue()
|
|
|
|
|
{
|
|
|
|
|
if (!File.Exists(path))
|
2025-09-10 10:57:20 +08:00
|
|
|
|
{
|
|
|
|
|
//默认值
|
2025-08-15 15:36:40 +08:00
|
|
|
|
var data = parser.Parser.Parse("");
|
|
|
|
|
data["Profile"]["strIPAddress"] = "1.117.161.11";
|
|
|
|
|
data["Profile"]["nPort"] = "8080";
|
|
|
|
|
string userProfilePath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
|
|
|
|
|
data["Profile"]["strLocalWorkDir"] = $"{userProfilePath}\\AppData\\Roaming\\BricsCAD Electrical";
|
|
|
|
|
Directory.CreateDirectory(Path.GetDirectoryName(path));
|
|
|
|
|
parser.WriteFile(path, data);
|
|
|
|
|
GlobalObject.isConfigIniCreateBySys = true;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
GlobalObject.isConfigIniCreateBySys = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public ConfigService(HttpService httpService)
|
|
|
|
|
{
|
|
|
|
|
_httpService = httpService;
|
|
|
|
|
SetDefaultConfigValue();
|
|
|
|
|
string address;
|
|
|
|
|
int port;
|
|
|
|
|
string locDrawingPath;
|
2025-09-10 10:57:20 +08:00
|
|
|
|
Read(out address, out port, out locDrawingPath);
|
2025-08-15 15:36:40 +08:00
|
|
|
|
_httpService.Init(address, port);
|
2025-09-10 10:57:20 +08:00
|
|
|
|
}
|
2025-08-15 15:36:40 +08:00
|
|
|
|
public void Read(out string address, out int port, out string directory)
|
|
|
|
|
{
|
2025-09-10 10:57:20 +08:00
|
|
|
|
//var data = parser.ReadFile(path);
|
|
|
|
|
//address = data["Profile"]["strIPAddress"];
|
|
|
|
|
//port = int.Parse(data["Profile"]["nPort"]);
|
|
|
|
|
//directory = data["Profile"]["strLocalWorkDir"];
|
|
|
|
|
|
|
|
|
|
address = IniHelper.ReadValueFromIniFile("Profile", "strIPAddress");
|
2025-09-15 18:35:41 +08:00
|
|
|
|
string portString = IniHelper.ReadValueFromIniFile("Profile", "nPort");
|
|
|
|
|
int.TryParse(portString?.Trim(), out port);
|
|
|
|
|
//port = int.Parse(IniHelper.ReadValueFromIniFile("Profile", "nPort"));
|
2025-09-10 10:57:20 +08:00
|
|
|
|
directory = IniHelper.ReadValueFromIniFile("Profile", "strLocalWorkDir");
|
2025-08-15 15:36:40 +08:00
|
|
|
|
}
|
2025-09-10 10:57:20 +08:00
|
|
|
|
|
2025-08-15 15:36:40 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// 查询某个
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="keyName"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public string Read(string keyName)
|
|
|
|
|
{
|
2025-09-10 10:57:20 +08:00
|
|
|
|
//var data = parser.ReadFile(path);
|
|
|
|
|
//return data["Profile"][keyName];
|
|
|
|
|
|
|
|
|
|
var data = IniHelper.ReadValueFromIniFile("Profile", keyName);
|
|
|
|
|
return data;
|
2025-08-15 15:36:40 +08:00
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 查询某个
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="session">节点</param>
|
|
|
|
|
/// <param name="keyName">key名称</param>
|
|
|
|
|
/// <returns></returns>
|
2025-09-10 10:57:20 +08:00
|
|
|
|
public string Read(string session, string keyName)
|
2025-08-15 15:36:40 +08:00
|
|
|
|
{
|
|
|
|
|
try
|
2025-09-10 10:57:20 +08:00
|
|
|
|
{
|
|
|
|
|
//var data = parser.ReadFile(path);
|
|
|
|
|
//return data[session][keyName];
|
|
|
|
|
|
|
|
|
|
var data = IniHelper.ReadValueFromIniFile(session, keyName);
|
|
|
|
|
return data;
|
2025-08-15 15:36:40 +08:00
|
|
|
|
}
|
2025-09-10 10:57:20 +08:00
|
|
|
|
catch
|
2025-08-15 15:36:40 +08:00
|
|
|
|
{
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 保存某个
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="keyName"></param>
|
|
|
|
|
/// <param name="value"></param>
|
|
|
|
|
public void Save(string keyName, string value)
|
|
|
|
|
{
|
2025-09-10 10:57:20 +08:00
|
|
|
|
//var data = parser.ReadFile(path);
|
|
|
|
|
//data["Profile"][keyName] = value;
|
|
|
|
|
//parser.WriteFile(path, data);
|
|
|
|
|
IniHelper.WriteValueFromIniFile("Profile", keyName, value);
|
2025-08-15 15:36:40 +08:00
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 保存某个值
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="session">节点</param>
|
|
|
|
|
/// <param name="keyName">key名称</param>
|
|
|
|
|
/// <param name="value">值</param>
|
|
|
|
|
public void Save(string session, string keyName, string value)
|
|
|
|
|
{
|
2025-09-10 10:57:20 +08:00
|
|
|
|
//var data = parser.ReadFile(path);
|
|
|
|
|
//data[session][keyName] = value;
|
|
|
|
|
//parser.WriteFile(path, data);
|
|
|
|
|
|
|
|
|
|
IniHelper.WriteValueFromIniFile(session, keyName, value);
|
2025-08-15 15:36:40 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|