public void UpdateFileFromBundle(ref AssetBundle bundle) { if (bundle == null) { return; } for (int i = 0; i < _firstFiles.Count; i++) { ConfigFileInfo info = _firstFiles[i]; string uname = info.fullPath.ToLower(); if (bundle.Contains(uname)) { TextAsset asset = bundle.LoadAsset <TextAsset>(uname); if (asset != null) { info.text = asset.text; } } } for (int i = 0; i < _secondFiles.Count; i++) { ConfigFileInfo info2 = _secondFiles[i]; string uname = info2.fullPath.ToLower(); if (bundle.Contains(uname)) { TextAsset asset = bundle.LoadAsset <TextAsset>(uname); if (asset != null) { info2.text = asset.text; } } } }
public async void Initialize() { if (CreateHsvConfigsFolderIfYeetedByPlayer()) { await SaveConfig(Path.Combine(_hsvConfigsFolderPath, "HitScoreVisualizerConfig-default.json"), Configuration.Default).ConfigureAwait(false); } if (_hsvConfig.ConfigFilePath == null) { return; } var fullPath = Path.Combine(_hsvConfigsFolderPath, _hsvConfig.ConfigFilePath); if (!File.Exists(fullPath)) { _hsvConfig.ConfigFilePath = null; return; } var userConfig = await LoadConfig(_hsvConfig.ConfigFilePath).ConfigureAwait(false); if (userConfig == null) { Plugin.LoggerInstance.Warn($"Couldn't load userConfig at {fullPath}"); return; } var configFileInfo = new ConfigFileInfo(Path.GetFileNameWithoutExtension(_hsvConfig.ConfigFilePath), _hsvConfig.ConfigFilePath) { Configuration = userConfig, State = GetConfigState(userConfig, Path.GetFileNameWithoutExtension(_hsvConfig.ConfigFilePath)) }; await SelectUserConfig(configFileInfo).ConfigureAwait(false); }
public void AddFile(string path, ConfigFileType type, string text, bool first, long parent) { ConfigFileInfo file = new ConfigFileInfo(); file.type = type; string[] arr = path.Split('/'); file.name = arr[arr.Length - 1]; file.fullPath = "Assets/Resources/Config/" + path + ".xml"; file.text = text; file.parent = parent; AddFile(file, first); }
public async void Initialize() { if (CreateHsvConfigsFolderIfYeetedByPlayer()) { await SaveConfig(Path.Combine(_hsvConfigsFolderPath, "HitScoreVisualizerConfig (default).json"), Configuration.Default).ConfigureAwait(false); var oldHsvConfigPath = Path.Combine(UnityGame.UserDataPath, "HitScoreVisualizerConfig.json"); if (File.Exists(oldHsvConfigPath)) { try { var destinationHsvConfigPath = Path.Combine(_hsvConfigsFolderPath, "HitScoreVisualizerConfig (imported).json"); File.Move(oldHsvConfigPath, destinationHsvConfigPath); _hsvConfig.ConfigFilePath = destinationHsvConfigPath; } catch (Exception e) { _siraLog.Warning(e); } } } if (_hsvConfig.ConfigFilePath == null) { return; } var fullPath = Path.Combine(_hsvConfigsFolderPath, _hsvConfig.ConfigFilePath); if (!File.Exists(fullPath)) { _hsvConfig.ConfigFilePath = null; return; } var userConfig = await LoadConfig(_hsvConfig.ConfigFilePath).ConfigureAwait(false); if (userConfig == null) { _siraLog.Warning($"Couldn't load userConfig at {fullPath}"); return; } var configFileInfo = new ConfigFileInfo(Path.GetFileNameWithoutExtension(_hsvConfig.ConfigFilePath), _hsvConfig.ConfigFilePath) { Configuration = userConfig, State = GetConfigState(userConfig, Path.GetFileNameWithoutExtension(_hsvConfig.ConfigFilePath), true) }; await SelectUserConfig(configFileInfo).ConfigureAwait(false); }
public void ParseAllFile() { for (int i = 0; i < _firstFiles.Count; i++) { ConfigFileInfo info1 = _firstFiles[i]; ParseFile(info1.parent, info1.type, info1.text); } for (int i = 0; i < _secondFiles.Count; i++) { ConfigFileInfo info2 = _secondFiles[i]; ParseFile(info2.parent, info2.type, info2.text); } }
public void AddFile(ConfigFileInfo info, bool first) { if (first) { if (HasSameFile(info.name, true) == false) { _firstFiles.Add(info); } } else { if (HasSameFile(info.name, false) == false) { _secondFiles.Add(info); } } }
public void UpdateFileByPath(string path, string text, bool first) { ConfigFileInfo info = GetFileByPath(path, first); if (info.fullPath != path) { info = new ConfigFileInfo(); info.name = path; info.fullPath = path; info.text = text; AddFile(info, first); } else { info.text = text; } }
public ConfigFileInfo GetFileByPath(string path, bool first) { List <ConfigFileInfo> list = null; if (first) { list = _firstFiles; } else { list = _secondFiles; } for (int i = 0; i < list.Count; i++) { ConfigFileInfo info = list[i]; if (info.name == path) { return(info); } } return(new ConfigFileInfo()); }
public bool HasSameFile(string path, bool first) { List <ConfigFileInfo> list = null; if (first) { list = _firstFiles; } else { list = _secondFiles; } for (int i = 0; i < list.Count; i++) { ConfigFileInfo info = list[i]; if (info.name == path) { return(true); } } return(false); }
public MainWindow() { InitializeComponent(); // Log startup logger.Info("App Starting ..."); ResizeMode = System.Windows.ResizeMode.CanResizeWithGrip; _controlToReceiveFocus = this.Settings; // Get configuration using (StreamReader sr = new StreamReader("//macallan/Admin/Config/8DPDevices.json")) { string jsonData = sr.ReadToEnd(); _configFileInfo = JsonConvert.DeserializeObject<ConfigFileInfo>(jsonData); } // Notify icon _notifyIcon = new System.Windows.Forms.NotifyIcon(); Stream iconStream = System.Windows.Application.GetResourceStream(new Uri("pack://*****:*****@"res/locked-large.png", @"res/unlocked-large.png"); doorClosedImages = new EasyButtonImage(@"res/doorclosed-large.png", @"res/dooropen-large.png"); doorBellImages = new EasyButtonImage(@"res/doorbell-large-sq.png", @"res/doorbell-large.png"); // Start getting updates from front door _frontDoorControl.StartUpdates(); // Start update timer for status _dTimer.Tick += new EventHandler(dtimer_Tick); _dTimer.Interval = new TimeSpan(0, 0, 1); _dTimer.Start(); // Log startup logger.Info("App Started"); }
public IHttpActionResult Post([FromBody] ConfigFileInfo cfgInfo) { var newCfg = _ConfigRepository.CreateNewConfig(cfgInfo.User, cfgInfo.Text); return(Ok(newCfg)); }
public void AddFile(ConfigFileInfo info) { AddFile(info, true); }
/// <summary> /// /// </summary> /// <param name="baseDirectory"></param> /// <param name="applicationName"></param> /// <param name="serviceName"></param> /// <param name="hostName"></param> /// <param name="defaultConfiguration">Json configuration sent by the client /// that represents base configuration for the application. It has lower priority. It can be null.</param> /// <param name="defaultParameters">Json configuration sent by the client /// to contain base parameters for the application, it has lower priority. It can be null.</param> /// <returns></returns> internal static ComposedConfiguration GetConfig ( String baseDirectory, String applicationName, String serviceName, String hostName, MissingParametersAction missingParams, JObject defaultConfiguration = null, JObject defaultParameters = null ) { DirectoryInfo baseDir = new DirectoryInfo(baseDirectory); var appDirectory = FileSystem.Instance.RedirectDirectory( Path.Combine(baseDir.FullName, applicationName) ); var systemDirectory = Path.Combine(baseDir.FullName, ".system"); if (!Directory.Exists(systemDirectory)) { Directory.CreateDirectory(systemDirectory); } var baseDirLen = Directory.GetParent(appDirectory).FullName.Length; String baseConfigFileName = Path.Combine(baseDir.FullName, "base.config"); String defaultApplicationBaseConfigFileName = Path.Combine(systemDirectory, applicationName, serviceName, (hostName ?? "") + DateTime.Now.ToString("_yyyyMMdd_hhMMss_fff_") + ".config"); String applicationBaseConfigFileName = Path.Combine(appDirectory, "base.config"); String defaultDirectoryBaseConfigFileName = Path.Combine(appDirectory, "Default", "base.config"); String serviceConfigFileName = Path.Combine(appDirectory, "Default", serviceName + ".config"); //load standard config file List <ConfigFileInfo> configFiles = new List <ConfigFileInfo>(); if (FileSystem.Instance.FileExists(baseConfigFileName)) { configFiles.Add(ConfigFileInfo.ForBase(FileSystem.Instance.GetFileContent(baseConfigFileName), baseConfigFileName.Substring(baseDirLen))); } //check default configuration file if (defaultConfiguration != null) { FileSystem.Instance.WriteFile(defaultApplicationBaseConfigFileName, defaultConfiguration.ToString()); configFiles.Add(ConfigFileInfo.ForBase(FileSystem.Instance.GetFileContent(defaultApplicationBaseConfigFileName), defaultApplicationBaseConfigFileName.Substring(baseDirLen))); _logger.InfoFormat("Default File used. App {0} service {1} host {2} content {3}", applicationName, serviceName, hostName, defaultConfiguration.ToString()); } if (FileSystem.Instance.FileExists(applicationBaseConfigFileName)) { configFiles.Add(ConfigFileInfo.ForBase(FileSystem.Instance.GetFileContent(applicationBaseConfigFileName), applicationBaseConfigFileName.Substring(baseDirLen))); } if (FileSystem.Instance.FileExists(defaultDirectoryBaseConfigFileName)) { configFiles.Add(ConfigFileInfo.ForBase(FileSystem.Instance.GetFileContent(defaultDirectoryBaseConfigFileName), defaultDirectoryBaseConfigFileName.Substring(baseDirLen))); } if (FileSystem.Instance.FileExists(serviceConfigFileName)) { configFiles.Add(ConfigFileInfo.ForBase(FileSystem.Instance.GetFileContent(serviceConfigFileName), serviceConfigFileName.Substring(baseDirLen))); } //load specific machine configuration files if (!String.IsNullOrEmpty(hostName)) { String hostBaseConfigFileName = Path.Combine(appDirectory, hostName, "base.config"); if (FileSystem.Instance.FileExists(hostBaseConfigFileName)) { configFiles.Add(ConfigFileInfo.ForHostSpecific(FileSystem.Instance.GetFileContent(hostBaseConfigFileName), hostBaseConfigFileName.Substring(baseDirLen), hostName)); } String hostConfigFileName = Path.Combine(appDirectory, hostName, serviceName + ".config"); if (FileSystem.Instance.FileExists(hostConfigFileName)) { configFiles.Add(ConfigFileInfo.ForHostSpecific(FileSystem.Instance.GetFileContent(hostConfigFileName), hostBaseConfigFileName.Substring(baseDirLen), hostName)); } } if (configFiles.Count == 0) { throw new ConfigurationErrorsException("There are no valid config at directory: " + baseDirectory); } var baseConfigObject = JsonComposer.ComposeJsonContent(configFiles.ToArray()); String defaultDirectoryBaseParametersFileName = Path.Combine(appDirectory, "Default", "parameters.config"); //then load all parameter files. var parameterObject = GetParameterObject( baseDirectory, applicationName, serviceName, hostName, defaultDirectoryBaseParametersFileName, defaultConfiguration, defaultParameters); //need to return all parameters. baseConfigObject["jarvis-parameters"] = (JObject)JsonConvert.DeserializeObject( JsonConvert.SerializeObject(parameterObject)); //Do the substitution ParameterManager.ReplaceResult replaceResult; ParameterManager parameterManager; if (missingParams == MissingParametersAction.Blank) { parameterManager = new ParameterManager(String.Empty); } else { parameterManager = new ParameterManager(); } while ((replaceResult = parameterManager.ReplaceParameters(baseConfigObject, parameterObject)).HasReplaced) { //do nothing, everything is done by the replace parameters routine } if (replaceResult.MissingParams.Count > 0) { var missingParametersList = replaceResult.MissingParams.Aggregate((s1, s2) => s1 + ", " + s2); switch (missingParams) { case MissingParametersAction.Throw: throw new ConfigurationErrorsException("Missing parameters: " + missingParametersList); case MissingParametersAction.Ignore: baseConfigObject["jarvis-missing-parameters"] = new JArray(replaceResult.MissingParams); _logger.DebugFormat("Missing Parameter List {0} but client ask to ignore", missingParametersList); break; case MissingParametersAction.Blank: baseConfigObject["jarvis-missing-parameters"] = new JArray(replaceResult.MissingParams); break; } } parameterManager.UnescapePercentage(baseConfigObject); //cleanup file if (FileSystem.Instance.FileExists(defaultApplicationBaseConfigFileName)) { FileSystem.Instance.DeleteFile(defaultApplicationBaseConfigFileName); } if (FileSystem.Instance.FileExists(defaultDirectoryBaseParametersFileName)) { FileSystem.Instance.DeleteFile(defaultDirectoryBaseParametersFileName); } return(new ComposedConfiguration(baseConfigObject, replaceResult)); }
public static JObject GetParameterObject ( String baseDirectory, String applicationName, String serviceName, String hostName, String defaultDirectoryBaseParametersFileName, JObject defaultConfiguration = null, JObject defaultParameters = null ) { DirectoryInfo baseDir = new DirectoryInfo(baseDirectory); var appDirectory = FileSystem.Instance.RedirectDirectory( Path.Combine(baseDir.FullName, applicationName) ); var systemDirectory = Path.Combine(baseDir.FullName, ".system"); if (!Directory.Exists(systemDirectory)) { Directory.CreateDirectory(systemDirectory); } var baseDirLen = Directory.GetParent(appDirectory).FullName.Length; //Base file parameters.config String baseParametersFileName = Path.Combine(baseDir.FullName, "parameters.config"); //base file for application, in base directory called parameters.applicationname.config String baseApplicationParametersFileName = Path.Combine(baseDir.FullName, "parameters." + applicationName + ".config"); //parameters.config inside the application directory String applicationBaseParametersFileName = Path.Combine(appDirectory, "parameters.config"); String defaultApplicationBaseParametersFileName = Path.Combine(systemDirectory, applicationName, serviceName, (hostName ?? "") + DateTime.Now.ToString("_yyyyMMdd_hhMMss_fff_") + ".parameters.config"); String serviceParametersFileName = Path.Combine(appDirectory, "Default", serviceName + ".parameters.config"); List <ConfigFileInfo> parametersFiles = new List <ConfigFileInfo>(); //Lower precedence, base parameter file name. if (FileSystem.Instance.FileExists(baseParametersFileName)) { parametersFiles.Add(ConfigFileInfo.ForBase(FileSystem.Instance.GetFileContent(baseParametersFileName), baseParametersFileName.Substring(baseDirLen))); } //check default parameters file passed by the client if (defaultParameters != null) { FileSystem.Instance.WriteFile(defaultApplicationBaseParametersFileName, defaultParameters.ToString()); parametersFiles.Add(ConfigFileInfo.ForBase(FileSystem.Instance.GetFileContent(defaultApplicationBaseParametersFileName), defaultApplicationBaseParametersFileName.Substring(baseDirLen))); _logger.InfoFormat("Default Parameters used. App {0} service {1} host {2} content {3}", applicationName, serviceName, hostName, defaultParameters.ToString()); } //PAY ATTENTION: base application parameters file name should have higher precedence than client //passed parameter file. if (FileSystem.Instance.FileExists(baseApplicationParametersFileName)) { parametersFiles.Add(ConfigFileInfo.ForBase(FileSystem.Instance.GetFileContent(baseApplicationParametersFileName), baseApplicationParametersFileName.Substring(baseDirLen))); } if (FileSystem.Instance.FileExists(applicationBaseParametersFileName)) { parametersFiles.Add(ConfigFileInfo.ForBase(FileSystem.Instance.GetFileContent(applicationBaseParametersFileName), applicationBaseParametersFileName.Substring(baseDirLen))); } if (FileSystem.Instance.FileExists(defaultDirectoryBaseParametersFileName)) { parametersFiles.Add(ConfigFileInfo.ForBase(FileSystem.Instance.GetFileContent(defaultDirectoryBaseParametersFileName), defaultDirectoryBaseParametersFileName.Substring(baseDirLen))); } if (FileSystem.Instance.FileExists(serviceParametersFileName)) { parametersFiles.Add(ConfigFileInfo.ForBase(FileSystem.Instance.GetFileContent(serviceParametersFileName), serviceParametersFileName.Substring(baseDirLen))); } JObject parameterObject; if (parametersFiles.Count > 0) { parameterObject = JsonComposer.ComposeJsonContent(parametersFiles.ToArray()); } else { parameterObject = new JObject(); } //use base parameters JObject sysParams = new JObject(); sysParams.Add("appName", applicationName); sysParams.Add("serviceName", serviceName); sysParams.Add("hostName", hostName); parameterObject.Add("sys", sysParams); return(parameterObject); }