public void LoadConfigs() { AboutToLoadConfigs?.Invoke(this, new EventArgs()); PlcServiceList = _configManager.LoadConfigs(); ConfigsLoaded?.Invoke(this, new EventArgs()); }
/// <summary> /// Loads the default configurations in to memory, replacing the old configs. /// This change is temporary, until they are saved to disk; when they become permanent. /// </summary> public void LoadDefaults() { #if USE_YAMLDOTNET var deserializer = new DeserializerBuilder() .WithNamingConvention(new UnderscoredNamingConvention()) .Build(); using (var reader = cfgFile.OpenText()) { cfgHashMap = deserializer.Deserialize <Dictionary <string, object> >(reader); } #else cfgHashMap = JsonConvert.DeserializeObject <Dictionary <string, object> >(File.ReadAllText(defCfgFile.FullName)); #endif ConfigsLoaded?.Invoke(this); }
public void LoadConfigs() { using (var stream = cfgFile.OpenText()) { var deserializedConfig = new DeserializerBuilder().WithNamingConvention(new UnderscoredNamingConvention()).Build().Deserialize <MPConfig>(stream); SearchInterval = deserializedConfig.SearchInterval; MaxEmailsPerRun = deserializedConfig.MaxEmailsPerRun; UseMultithreading = deserializedConfig.UseMultithreading; CoreUse = deserializedConfig.CoreUse; PreIndexFext = deserializedConfig.PreIndexFext; PostIndexFext = deserializedConfig.PostIndexFext; SearchDirectories = deserializedConfig.SearchDirectories; DomainPattern = deserializedConfig.DomainPattern; UsernamePattern = deserializedConfig.UsernamePattern; } ConfigsLoaded?.Invoke(this); }
void LoadDefaults(string defaults, bool overwrite = false) { #if USE_YAMLDOTNET defCfgHashMap = deserializer.Deserialize <Dictionary <string, object> >(defaults); if (overwrite) { cfgHashMap = defCfgHashMap; } #else defCfgHashMap = JsonConvert.DeserializeObject <Dictionary <string, object> >(defaults); if (overwrite) { cfgHashMap = defCfgHashMap; } #endif ConfigsLoaded?.Invoke(this); }
public void LoadDefaults() { if (!defCfgFile.Exists) { using (var cfgFile = defCfgFile.Create()) using (var resourceStream = GetType().Assembly.GetManifestResourceStream("Samarium.MailProcessor.Resources.ConfigDefaults.mailproc.yml")) { resourceStream.CopyTo(cfgFile); } } using (var stream = defCfgFile.OpenText()) { var deserializedConfig = new DeserializerBuilder().WithNamingConvention(new UnderscoredNamingConvention()).Build().Deserialize <MPConfig>(stream); SearchInterval = deserializedConfig.SearchInterval; MaxEmailsPerRun = deserializedConfig.MaxEmailsPerRun; UseMultithreading = deserializedConfig.UseMultithreading; CoreUse = deserializedConfig.CoreUse; PreIndexFext = deserializedConfig.PreIndexFext; PostIndexFext = deserializedConfig.PostIndexFext; SearchDirectories = deserializedConfig.SearchDirectories; DomainPattern = deserializedConfig.DomainPattern; UsernamePattern = deserializedConfig.UsernamePattern; } ConfigsLoaded?.Invoke(this); }
public List <PlcService> LoadConfigs(string path = "") { log.Info($"LoadConfigs - path {path}"); var plcServiceList = new List <PlcService>(); int totalFilesToLoadCount = 0; List <ICpuConfigFile> cpuConfigFiles = _configParser.LoadConfigFiles(path); foreach (var jsonConfig in cpuConfigFiles) { totalFilesToLoadCount += jsonConfig.SignalLists.Count; } var configsProgressEventArgs = new ConfigsProgressEventArgs(); configsProgressEventArgs.ProgressTotal = totalFilesToLoadCount; ConfigsLoadingProgressChanged?.Invoke(this, configsProgressEventArgs); foreach (var config in cpuConfigFiles) { ICpuConfig cpuConfig = new CpuConfig(config); List <IDatablockModel> datablocks = new List <IDatablockModel>(); foreach (var dbNumberDbNameString in config.SignalLists) { DatablockModel datablock = new DatablockModel(); // signal should contain db number and db name, format : "number:name" e.g "3201:DbName" List <string> dbNumberDbName = dbNumberDbNameString.Split(':').ToList(); int dbNumber = 0; bool isParsable = false; if (dbNumberDbName.Count > 0) { isParsable = Int32.TryParse(dbNumberDbName.First(), out dbNumber); } if (dbNumberDbName.Count != 2 || !isParsable) { string errorStr = "Invalid file format in Json config!SignalsList must use : as separator between db number and name."; log.Error(errorStr); throw new FormatException(errorStr); } var signals = new List <SignalModel>(); string filePath = AppDomain.CurrentDomain.BaseDirectory + Constants.BaseDirectorySubDirs + dbNumberDbName.Last(); try { var fileLines = _dbParser.ReadS7DbFile(filePath); var signalContextList = _dbParser.ParseDb(fileLines, config.DiscardKeywords); for (int i = 0; i < signalContextList.Count; i++) { signalContextList[i].CpuIndex = plcServiceList.Count; signalContextList[i].DbIndex = datablocks.Count; signalContextList[i].Index = i; signalContextList[i].DbNumber = dbNumber; signals.Add(SignalFactory.Create(signalContextList[i])); } } catch (Exception) { // TODO - Handle throw; } if (signals?.Count > 0) { datablock.CpuIndex = plcServiceList.Count; datablock.Index = datablocks.Count; datablock.Signals = signals; datablock.Name = dbNumberDbName.Last(); datablock.Number = dbNumber; datablock.FirstByte = signals.First().DbByteIndex(); datablock.ByteCount = signals.Last().DbByteIndex() - datablock.FirstByte; datablocks.Add(datablock); } configsProgressEventArgs.ProgressInput += 1; ConfigsLoadingProgressChanged?.Invoke(this, configsProgressEventArgs); Thread.Sleep(250); } PlcService plcService = PlcServiceFactory.Create(plcServiceList.Count, cpuConfig, datablocks); plcServiceList.Add(plcService); } Thread.Sleep(2500); ConfigsLoaded?.Invoke(this, new EventArgs()); return(plcServiceList); }