public static void LoadConfig(string configFilePathName) { var ser = new XmlSerializer(typeof(MonitWindowsAgentConfig)); if (!File.Exists(configFilePathName)) { Config = WriteDefaultConfig(configFilePathName); return; } using (var str = new FileStream(configFilePathName, FileMode.Open, FileAccess.Read)) { Config = ser.Deserialize(str) as MonitWindowsAgentConfig; } // set period to ms if (Config.Period < 1000) { Config.Period *= 1000; } }
public static MonitWindowsAgentConfig WriteDefaultConfig(string configFilePathName) { var conf = new MonitWindowsAgentConfig(); var ser = new XmlSerializer(typeof(MonitWindowsAgentConfig)); using (var str = new FileStream(configFilePathName, FileMode.CreateNew, FileAccess.ReadWrite)) { // standard value 30 sec conf.Period = 30; conf.MMonitCollectorUrl = "http://*****:*****@localhost:8080/collect"; conf.MMonitCollectorPassword = "******"; conf.MMonitCollectorUsername = "******"; conf.FailedStarts = 5; conf.DisplayName = "foo-{COMPUTER_NAME}-bar"; conf.HttpdPort = 2812; conf.HttpdBindIp = "127.0.0.1"; conf.HttpdPassword = "******"; conf.HttpdUsername = "******"; conf.Services = new List <Service>(); conf.Services.Add(new Service() { DependentServiceNames = new List <string> { "DEPENDENT_SERVICE_HERE" }, ServiceName = "YOUR_SERVICENAME_HERE" }); conf.Services.Add(new Service() { DependentServiceNames = new List <string> { "DEPENDENT_SERVICE_HERE" }, ServiceName = "YOUR_SERVICENAME_HERE" }); ser.Serialize(str, conf); } return(conf); }
public static void LoadConfig(string path, string configFileName, string serviceConfigFileNameMasks) { var configFilePathName = Path.Combine(path, configFileName); var ser = new XmlSerializer(typeof(MonitWindowsAgentConfig)); if (!File.Exists(configFilePathName)) { Config = WriteDefaultConfig(configFilePathName); return; } using (var str = new FileStream(configFilePathName, FileMode.Open, FileAccess.Read)) { Config = ser.Deserialize(str) as MonitWindowsAgentConfig; } var serviceConfigFilePathNames = Directory.GetFiles(path, serviceConfigFileNameMasks); foreach (var serviceConfigFilePathName in serviceConfigFilePathNames) { using (var str = new FileStream(serviceConfigFilePathName, FileMode.Open, FileAccess.Read)) { var serviceConfig = ser.Deserialize(str) as MonitWindowsAgentConfig; foreach (var service in serviceConfig.Services) { Config.Services.Add(service); } } } // set period to ms if (Config.Period < 1000) { Config.Period *= 1000; } }