internal string ToQueryString() { var queryParams = new List <string>(); if (KeepNull != null) { queryParams.Add("keepNull=" + KeepNull.ToString().ToLower()); } if (MergeObjects != null) { queryParams.Add("mergeObjects=" + MergeObjects.ToString().ToLower()); } if (WaitForSync != null) { queryParams.Add("waitForSync=" + WaitForSync.ToString().ToLower()); } if (IgnoreRevs != null) { queryParams.Add("ignoreRevs=" + IgnoreRevs.ToString().ToLower()); } if (ReturnOld != null) { queryParams.Add("returnOld=" + ReturnOld.ToString().ToLower()); } if (ReturnNew != null) { queryParams.Add("returnNew=" + ReturnNew.ToString().ToLower()); } return(string.Join("&", queryParams)); }
static void MenuDoMergeObjects() { MergeObjects instance = EditorToolbarLoader.GetInstance <MergeObjects>(); if (instance != null) { UnityEditor.ProBuilder.EditorUtility.ShowNotification(instance.DoAction().notification); } }
public void PostMainConfig([FromBody] JObject data) { try { Global.Configuration = MergeObjects.MergeCsDictionaryAndSave(Global.Configuration, Global.DataPath + "/MainConfig.json", data).ToObject <MainConfig>(); } catch (Exception ex) { Global.Logger.Error(@"Can not save config file: " + ex); } }
/// <summary> /// Add your init code here /// </summary> /// <param name="builder"></param> protected override void Load(ContainerBuilder builder) { Global.Logger.Information("Plugin " + PluginName + " initialized..."); if (!Directory.Exists(Global.DataPath + "/" + PluginName)) { Directory.CreateDirectory(Global.DataPath + "/" + PluginName); } PluginConfig = MergeObjects.MergeCsDictionaryAndSave(new PluginConfig(), Global.DataPath + "/" + PluginName + "/PluginConfig.json").ToObject <PluginConfig>(); }
private static IList Merge( IList list1, IList list2, bool matchesOnly, IComparer comparer, MergeObjects mergeDelegate) { ArrayList arrayList; if (list1 != null && list2 != null) { arrayList = new ArrayList(Math.Min(list1.Count, list2.Count)); Hashtable hashtable = new Hashtable(); int num = 0; for (int index1 = 0; index1 < list1.Count; ++index1) { bool flag = false; for (int index2 = num; index2 < list2.Count; ++index2) { if (!hashtable.ContainsKey(index2) && comparer.Compare(list1[index1], list2[index2]) == 0) { arrayList.Add(mergeDelegate(list1[index1], list2[index2])); hashtable.Add(index2, true); if (num == index2) { ++num; } flag = true; break; } } if (!flag && !matchesOnly) { arrayList.Add(mergeDelegate(list1[index1], null)); } } } else if (!matchesOnly && list1 != null) { arrayList = new ArrayList(list1.Count); foreach (object obj in list1) { arrayList.Add(mergeDelegate(obj, null)); } } else { arrayList = new ArrayList(); } return(arrayList); }
public static IList Merge( IList list1, IList list2, bool matchesOnly, IComparer comparer, MergeObjects mergeDelegate) { ArrayList arrayList = new ArrayList(); if (list1 != null && list2 != null) { for (int index1 = 0; index1 < list1.Count; ++index1) { bool flag = false; for (int index2 = 0; index2 < list2.Count; ++index2) { if (comparer.Compare(list1[index1], list2[index2]) == 0) { arrayList.Add(mergeDelegate(list1[index1], list2[index2])); list2.RemoveAt(index2); flag = true; break; } } if (!flag && !matchesOnly) { arrayList.Add(mergeDelegate(list1[index1], null)); } } if (!matchesOnly) { foreach (object obj in list2) { arrayList.Add(mergeDelegate(obj, null)); } } } else if (!matchesOnly && (list1 != null || list2 != null)) { foreach (object obj in list1 != null ? list1 : list2) { arrayList.Add(mergeDelegate(obj, null)); } } return(arrayList); }
public void CommonFiles() { Global.CoreConfig = MergeObjects.MergeCsDictionaryAndSave(Global.CoreConfig, Global.DataPath + "/CoreConfig.json"); }
public void DefaultCoreSettings() { Global.CoreConfig["coreConfig"] = new JObject { ["enableDebug"] = false, ["enableDevelopment"] = false }; Global.CoreConfig["coreConfig"] = new JObject { ["webPort"] = 8888, ["webLocalHostOnly"] = false, ["webDefaultUsername"] = "******", ["webDefaultUserEmail"] = "admin@localhost", ["webDefaultPassword"] = "******" }; //Read Settings file if (!File.Exists(Global.DataPath + "/MainConfig.json")) { //Init Global Config with default currency array Global.Configuration = MergeObjects.MergeCsDictionaryAndSave(new MainConfig(), Global.DataPath + "/MainConfig.json").ToObject <MainConfig>(); Global.Configuration.TradeOptions.MarketBlackList = new List <string> { }; Global.Configuration.TradeOptions.OnlyTradeList = new List <string> { "ETHBTC", "LTCBTC" }; Global.Configuration.TradeOptions.AlwaysTradeList = new List <string> { "ETHBTC", "LTCBTC" }; var defaultExchangeOptions = new ExchangeOptions { Exchange = Exchange.Binance, ApiKey = "", ApiSecret = "" }; Global.Configuration.ExchangeOptions.Add(defaultExchangeOptions); var defaultDisplayOptions = new DisplayOptions() { DisplayFiatCurrency = "USD" }; Global.Configuration.DisplayOptions = defaultDisplayOptions; Global.Configuration = MergeObjects.MergeCsDictionaryAndSave(Global.Configuration, Global.DataPath + "/MainConfig.json", JObject.FromObject(Global.Configuration)).ToObject <MainConfig>(); } else { Global.Configuration = MergeObjects.MergeCsDictionaryAndSave(new MainConfig(), Global.DataPath + "/MainConfig.json").ToObject <MainConfig>(); } //Create RSA Key for TokenProvider if (string.IsNullOrEmpty(Global.Configuration.SystemOptions.RsaPrivateKey)) { using (RandomNumberGenerator rng = new RNGCryptoServiceProvider()) { byte[] tokenData = new byte[32]; rng.GetBytes(tokenData); Global.Configuration.SystemOptions.RsaPrivateKey = Convert.ToBase64String(tokenData); } Global.Configuration = MergeObjects.MergeCsDictionaryAndSave(Global.Configuration, Global.DataPath + "/MainConfig.json", JObject.FromObject(Global.Configuration)).ToObject <MainConfig>(); } }
static bool MenuVerifyMergeObjects() { MergeObjects instance = EditorToolbarLoader.GetInstance <MergeObjects>(); return(instance != null && instance.enabled); }
public ActionResult Navigation() { JObject pluginMenu = new JObject(); JToken htmlPagesSearchFolders = (Global.CoreRuntime["Plugins"]).DeepClone(); //Add Core Folder htmlPagesSearchFolders["Core"] = new JObject { ["Enabled"] = true, ["WwwRoot"] = Global.AppPath + "/wwwroot" }; foreach (var jToken in htmlPagesSearchFolders) { var plugin = (JProperty)jToken; //string pluginName = (plugin.Name).Replace("MachinaCore.Plugin.", ""); string pluginName = plugin.Name; if (htmlPagesSearchFolders[plugin.Name] == null || (bool)htmlPagesSearchFolders[plugin.Name]["Enabled"] == false) { Global.Logger.Information(plugin.Name + @" not found -> Ignoring"); continue; } if (!Directory.Exists((string)htmlPagesSearchFolders[plugin.Name]["WwwRoot"] + "/pages")) { Global.Logger.Information(plugin.Name + @"has no pages folder -> Ignoring"); continue; } if (htmlPagesSearchFolders[plugin.Name]["WwwRoot"] != null) { JObject pageMenuConfig = new JObject(); String[] pluginHtmlFiles = Directory.GetFiles((string)htmlPagesSearchFolders[plugin.Name]["WwwRoot"] + "/pages", "*.html", SearchOption.TopDirectoryOnly); JObject pluginMenuConfig = new JObject { ["menuTitle"] = (plugin.Name).Replace("MachinaCore.Plugin.", ""), ["menuEnabled"] = true, ["menuFolder"] = true, ["menuAutoOpen"] = false, ["menuIconClass"] = "fas fa-folder", ["menuOrder"] = 99 }; if (System.IO.File.Exists((string)htmlPagesSearchFolders[plugin.Name]["WwwRoot"] + "/pages/__plugin__.json")) { JObject pluginMenuConfigFile = JObject.Parse(System.IO.File.ReadAllText((string)htmlPagesSearchFolders[plugin.Name]["WwwRoot"] + "/pages/__plugin__.json")); pluginMenuConfig = MergeObjects.CombineJObjects(pluginMenuConfig, pluginMenuConfigFile); } if (!(bool)pluginMenuConfig["menuEnabled"]) { continue; } int countPages = 0; string countCurrentName = ""; foreach (string fileName in pluginHtmlFiles) { string shortName = pluginName + "_" + Path.GetFileName(fileName); bool useUserDefinedParent = false; if (System.IO.File.Exists(fileName.Replace(".html", ".json"))) { JObject pluginConfigJsonFile = JObject.Parse(System.IO.File.ReadAllText(fileName.Replace(".html", ".json"))); if (pluginConfigJsonFile["menuEnabled"] == null) { pluginConfigJsonFile["menuEnabled"] = true; } if ((bool)pluginConfigJsonFile["menuEnabled"] == false) { continue; } pageMenuConfig[shortName] = new JObject { ["menuTitle"] = Path.GetFileName(fileName), ["menuHyperlink"] = plugin.Name + "/pages/" + Path.GetFileName(fileName), ["menuEnabled"] = true, ["menuIconClass"] = "fas fa-star", ["menuCustomFolder"] = "", ["menuOrder"] = 99, ["menuAjaxLoad"] = true, ["menuRuntimeIsFolder"] = false }; pageMenuConfig[shortName] = MergeObjects.CombineJObjects((JObject)pageMenuConfig[shortName], pluginConfigJsonFile); if (plugin.Name == "Core") { pageMenuConfig[shortName]["menuHyperlink"] = "pages/" + Path.GetFileName(fileName); pageMenuConfig[shortName]["menuOrder"] = 1; } if ((string)pageMenuConfig[shortName]["menuCustomFolder"] != "") { useUserDefinedParent = true; } if (useUserDefinedParent) { //Create Category of not exist if (pluginMenu[(string)pageMenuConfig[shortName]["menuCustomFolder"]] == null) { pluginMenu[(string)pageMenuConfig[shortName]["menuCustomFolder"]] = new JObject { ["menuOrder"] = 99, ["menuIconClass"] = pluginMenuConfig["menuIconClass"], ["menuTitle"] = (string)pageMenuConfig[shortName]["menuCustomFolder"], ["menuEnabled"] = pluginMenuConfig["menuEnabled"], ["menuRuntimeIsFolder"] = true }; } pluginMenu[(string)pageMenuConfig[shortName]["menuCustomFolder"]][shortName] = pageMenuConfig[shortName]; pageMenuConfig.Remove(shortName); continue; } countPages = countPages + 1; countCurrentName = shortName; if (plugin.Name == "Core") { pluginMenu[shortName] = pageMenuConfig[shortName]; pluginMenu[shortName]["menuOrder"] = 1; pageMenuConfig.Remove(shortName); continue; } if (!(bool)pluginMenuConfig["menuFolder"]) { pluginMenu[shortName] = pageMenuConfig[shortName]; pluginMenu[shortName]["menuRuntimeIsFolder"] = false; pageMenuConfig.Remove(shortName); } } } if (pageMenuConfig.HasValues) { if (countPages == 1) { pluginMenu[countCurrentName] = pageMenuConfig[countCurrentName]; } else { pluginMenu[pluginName] = pageMenuConfig; pluginMenu[pluginName]["menuOrder"] = pluginMenuConfig["menuOrder"]; pluginMenu[pluginName]["menuIconClass"] = pluginMenuConfig["menuIconClass"]; pluginMenu[pluginName]["menuTitle"] = pluginMenuConfig["menuTitle"]; pluginMenu[pluginName]["menuEnabled"] = pluginMenuConfig["menuEnabled"]; pluginMenu[pluginName]["menuRuntimeIsFolder"] = true; } } } } //Sort Inner Nodes foreach (var pluginFolderInner in pluginMenu) { JObject currentValue = (JObject)pluginFolderInner.Value; JObject sortedPluginFolderInner = new JObject(currentValue.Properties() .Where(obj => currentValue[obj.Name].Type == JTokenType.Object) .OrderBy(obj => (int)currentValue[obj.Name]["menuOrder"]) .ThenBy(obj => (string)currentValue[obj.Name]["menuTitle"], StringComparer.OrdinalIgnoreCase) ); if (sortedPluginFolderInner.HasValues) { //We rewrite this after sort -> Save old values int currentMenuOrder = (int)pluginMenu[pluginFolderInner.Key]["menuOrder"]; string currentPluginMenuIconClass = (string)pluginMenu[pluginFolderInner.Key]["menuIconClass"]; string currentName = (string)pluginMenu[pluginFolderInner.Key]["menuTitle"]; bool currentEnableMenu = (bool)pluginMenu[pluginFolderInner.Key]["menuEnabled"]; bool menuRuntimeIsFolder = (bool)pluginMenu[pluginFolderInner.Key]["menuRuntimeIsFolder"]; pluginMenu[pluginFolderInner.Key] = sortedPluginFolderInner; pluginMenu[pluginFolderInner.Key]["menuOrder"] = currentMenuOrder; pluginMenu[pluginFolderInner.Key]["menuIconClass"] = currentPluginMenuIconClass; pluginMenu[pluginFolderInner.Key]["menuTitle"] = currentName; pluginMenu[pluginFolderInner.Key]["menuEnabled"] = currentEnableMenu; pluginMenu[pluginFolderInner.Key]["menuRuntimeIsFolder"] = menuRuntimeIsFolder; } } //Sort by main values JObject pluginMenuSorted = new JObject(pluginMenu.Properties() .OrderBy(obj => (int)pluginMenu[obj.Name]["menuOrder"]) .ThenBy(obj => (string)pluginMenu[obj.Name]["menuTitle"], StringComparer.OrdinalIgnoreCase) ); return(new JsonResult(pluginMenuSorted)); }