public static void MainMenu() { int StackReference = Stack.Add("UI.MainMenu()"); LDGraphicsWindow.ExitButtonMode(GraphicsWindow.Title, "Enabled"); GraphicsWindow.CanResize = true; LDGraphicsWindow.State = 2; GraphicsWindow.Title = GlobalStatic.Title + " "; Primitive Sorts = $"1={Language.Localization["Table"]};2={Language.Localization["View"]};3={Language.Localization["Index"]};4={Language.Localization["Master Table"]};"; if (Engines.CurrentDatabase != null && Engines.CurrentDatabase != null) { Engines.GetSchema(Engines.CurrentDatabase); } GraphicsWindow.FontSize = GlobalStatic.DefaultFontSize + 8; int UIx = GlobalStatic.Listview_Width - 380; string Menu = LDControls.AddMenu(Desktop.Width * 1.5, 30, MenuList, IconList, null); Shapes.Move(Shapes.AddText(Language.Localization["Sort"] + ":"), UIx, 1); int TextWidth = LDText.GetHeight(Language.Localization["Sort"] + ":"); GraphicsWindow.FontSize = GlobalStatic.DefaultFontSize; try { GlobalStatic.ComboBox["Table"] = LDControls.AddComboBox(Engines.Tables.ToPrimitiveArray(), 100, 100); } catch (Exception ex) { Events.LogMessage(ex.ToString(), "System"); } GlobalStatic.ComboBox["Sorts"] = LDControls.AddComboBox(Sorts, 100, 100); GlobalStatic.ComboBox["Database"] = LDControls.AddComboBox(Engines.DB_ShortName.ToPrimitiveArray(), 100, 100); Controls.Move(GlobalStatic.ComboBox["Database"], UIx + TextWidth + 35, 5); Controls.Move(GlobalStatic.ComboBox["Sorts"], UIx + TextWidth + 150, 5); Controls.Move(GlobalStatic.ComboBox["Table"], UIx + TextWidth + 260, 5); //Virtual Call to Handler Events.MC(Language.Localization["View"]); Title(); Controls.ButtonClicked += Events.BC; LDControls.MenuClicked += Events.MC; LDControls.ComboBoxItemChanged += Events.CB; LDControls.ContextMenuClicked += Events.MI; Stack.Exit(StackReference); }
public static void ShowDisplayResults() { int StackPointer = Stack.Add("UI.ShowDisplayResults()"); DisplayHelper(); GraphicsWindow.FontSize = GlobalStatic.DefaultFontSize; for (int i = 0; i < _HideDisplay.Count; i++) { Controls.ShowControl(_HideDisplay[i]); } Stack.Exit(StackPointer); }
/// <summary> /// Converts a text settings file to XML. /// </summary> static string ConverttoXML(Primitive Settings) { int StackPointer = Stack.Add("Settings.ConvertToXML"); StringBuilder SB = new StringBuilder(); SB.AppendLine("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); SB.AppendLine("<root>"); SB.AppendLine("\t<!-- Details whether or not a transaction is stored in the transaction database -->"); SB.AppendLine("\t<Transactions>"); SB.AppendFormat("\t\t<Query>{0}</Query>\n", (bool?)Settings["Transactions"]["Query"] ?? Settings["Transaction_Query"]); SB.AppendFormat("\t\t<Commands>{0}</Commands>\n", (bool?)Settings["Transactions"]["Commands"] ?? Settings["Transaction_Commands"]); SB.AppendLine("\t</Transactions>\n"); SB.AppendLine("\t<!-- List of all paths that the Program uses.-->"); SB.AppendLine("\t<!-- Warning: Change this at your own risk! It may break the application!-->"); SB.AppendLine("\t<Paths>"); SB.AppendFormat("\t\t<OS>{0}</OS>\n", (string)Settings["Paths"]["OS"] ?? Settings["OS_Dir"]); SB.AppendFormat("\t\t<LastFolder>{0}</LastFolder>\n", (string)Settings["Paths"]["LastFolder"] ?? Settings["LastFolder"]); SB.AppendFormat("\t\t<Assets>{0}</Assets>\n", (string)Settings["Paths"]["Assets"] ?? Settings["Asset_Dir"]); SB.AppendFormat("\t\t<Log>{0}</Log>\n", (string)Settings["Paths"]["Log"] ?? Settings["Log_DB_Path"]); SB.AppendFormat("\t\t<Transaction>{0}</Transaction>\n", (string)Settings["Paths"]["Transaction"] ?? Settings["Transaction_DB"]); SB.AppendLine("\t</Paths>\n"); SB.AppendLine("\t<!-- Set AutoUpdate to False if Internet Access is restricted or unavailable.-->"); SB.AppendLine("\t<Updates>"); SB.AppendFormat("\t\t<LastCheck>{0}</LastCheck>\n", (string)Settings["Updates"]["LastCheck"] ?? Settings["LastUpdateCheck"]); SB.AppendFormat("\t\t<AutoUpdate>{0}</AutoUpdate>\n", (string)Settings["Updates"]["AutoUpdate"] ?? Settings["AutoUpdate"]); SB.AppendLine("\t</Updates>\n"); SB.AppendLine("\t<EULA>"); SB.AppendFormat("\t\t<Signer>{0}</Signer>\n", (string)Settings["EULA"]["Signer"] ?? Settings["EULA_By"]); SB.AppendFormat("\t\t<Signed>{0}</Signed>\n", (string)Settings["EULA"]["Signed"] ?? Settings["EULA"]); SB.AppendLine("\t</EULA>\n"); SB.AppendFormat("\t<Deliminator>{0}</Deliminator>\n", Settings["Deliminator"]); SB.AppendFormat("\t<VersionID>{0}</VersionID>\n", Settings["VersionID"]); SB.AppendFormat("\t<Extensions>{0}</Extensions>\n", Settings["Extensions"]); SB.AppendLine(" <!-- UI Related Stuff -->"); SB.AppendFormat("\t<fontsize>{0}</fontsize>\n", (string)Settings["fontsize"] ?? Settings["Font_Size"]); SB.AppendFormat("\t<language>{0}</language>\n", (string)Settings["language"] ?? Settings["Language"]); SB.AppendLine("\t<listview>"); SB.AppendFormat("\t\t<width>{0}</width>\n", (int?)Settings["listview"]["width"] ?? Settings["Listview_Width"]); SB.AppendFormat("\t\t<height>{0}</height>\n", (int?)Settings["listview"]["height"] ?? Settings["Listview_Height"]); SB.AppendLine("\t</listview>"); SB.AppendLine("\t<Intervals>"); SB.AppendFormat($"\t\t<CSV>{Settings["Intervals"]["CSV"]}</CSV>\n"); SB.AppendFormat($"\t\t<SQL>{Settings["Intervals"]["SQL"]}</SQL>\n"); SB.AppendLine("\t</Intervals>"); SB.Append("</root>"); Stack.Exit(StackPointer); return(SB.ToString()); }
public static string SQLServer(string Server, string Database) { int StackPointer = Stack.Add($"Engines.Load.SQLServer({Server},{Database})"); Dictionary <string, string> Data = new Dictionary <string, string> { ["Server"] = Server, ["Database"] = Database }; Stack.Exit(StackPointer); return(DB(EnginesMode.SQLSERVER, Data)); }
public static Primitive ToPrimitiveArray <T>(this ReadOnlyCollection <T> List) { int StackPointer = Stack.Add("Transform.ReadOnlyCollectionToPrimitiveArray"); Primitive _return = null; for (int i = 0; i < List.Count; i++) { _return[i + 1] = List[i].ToString(); } Stack.Exit(StackPointer); return(_return); }
public static Primitive ToPrimitiveArray <T>(this IDictionary <T, T> Dictionary) { int StackPointer = Stack.Add("Transform.DictionaryToPrimitiveArray"); StringBuilder Exporter = new StringBuilder(); foreach (KeyValuePair <T, T> entry in Dictionary) { Exporter.Append(entry.Key + "=" + entry.Value + ";"); } Stack.Exit(StackPointer); return(Exporter.ToString()); }
static void ColumnsChanged(object sender, EventArgs e) { int StackPointer = Stack.Add("ColumnsChanged"); if (GlobalStatic.SortBy != 0) { LDControls.ComboBoxContent(GlobalStatic.ComboBox["Sort"], Engines.Schema); LDControls.ComboBoxContent(GlobalStatic.ComboBox["Search"], Engines.Schema); LDControls.ComboBoxContent(GlobalStatic.ComboBox["ColumnList"], Engines.Schema); } Stack.Exit(StackPointer); }
public static void AddOrReplace <T>(this IDictionary <T, T> Dictionary, T Key, T Value) { int StackPointer = Stack.Add("Transform.AddorReplaceDictionary"); if (Dictionary.ContainsKey(Key) == true) { Dictionary[Key] = Value; Stack.Exit(StackPointer); return; } Dictionary.Add(Key, Value); Stack.Exit(StackPointer); }
public static string OLEDB(string Server, string Database, string Provider) { int StackPointer = Stack.Add($"Engines.Load.OLEDB({Server},{Database},{Provider})"); Dictionary <string, string> Data = new Dictionary <string, string> { ["Provider"] = Provider, ["Server"] = Server, ["Database"] = Database }; Stack.Exit(StackPointer); return(DB(EnginesMode.OLEDB, Data)); }
public static string[] ConvertSchema(Primitive Schema) { int StackPointer = Stack.Add("Export.ConvertSchema()"); int SchemaCount = Schema.GetItemCount(); string[] SchemaArray = new string[SchemaCount]; for (int i = 1; i <= SchemaCount; i++) { SchemaArray[i - 1] = Schema[i]; } Stack.Exit(StackPointer); return(SchemaArray); }
/// <summary> /// For Wikipedia Tables. Currently does not deal with Pipe characters. /// </summary> public static string MarkUp(Primitive Data, Primitive Schema) { int StackPointer = Stack.Add("Export.MarkUp"); Primitive Index = Schema.GetAllIndices(); int DataCount = Data.GetItemCount(); int SchemaCount = Schema.GetItemCount(); string[] SchemaArray = ConvertSchema(Schema); string[,] DataArray = ConvertData(Schema, Data); StringBuilder SB = new StringBuilder(); SB.AppendLine("{| class=\"wikitable sortable\""); SB.AppendLine("|-"); SB.Append("! "); //Headers for (int i = 0; i < SchemaCount; i++) { if (i > 0) { SB.AppendFormat("!! {0}", SchemaArray[i]); } else { SB.AppendFormat("{0}", SchemaArray[i]); } } SB.AppendLine(); for (int i = 0; i < DataCount; i++) { SB.Append("|-\n|"); for (int ii = 0; ii < SchemaCount; ii++) { if (ii < (SchemaCount - 1)) { SB.AppendFormat("{0} ||", DataArray[i, ii]); } else { SB.Append(DataArray[i, ii]); } } SB.AppendLine(); } SB.AppendLine("|}"); Stack.Exit(StackPointer); return(SB.ToString()); }
public static string DB(EnginesMode Mode, Dictionary <string, string> Data) //Tasked with connecting to a Database and adding the DB Connection Name to a list. { int StackEntry = Stack.Add($"Engines.Load.DB({Mode})"); switch (Mode) { case EnginesMode.SQLITE: Stack.Exit(StackEntry); return(DB(Mode, Data, Path.GetFileNameWithoutExtension(Data["URI"]))); default: throw new NotImplementedException(); } }
public static void HideDisplayResults() { int StackPointer = Stack.Add("UI.HideDisplayResults()"); string Default_Brush = GraphicsWindow.BrushColor; GraphicsWindow.BrushColor = "WHITE"; GraphicsWindow.FillRectangle(GlobalStatic.UIx - 5, 45, 320, 350); GraphicsWindow.BrushColor = Default_Brush; for (int i = 0; i < _HideDisplay.Count; i++) { Controls.HideControl(_HideDisplay[i]); } Stack.Exit(StackPointer); }
public static void Save() { int StackReference = Stack.Add("Settings.SaveSettings()"); try { ConverttoXML(GlobalStatic.Settings, GlobalStatic.SettingsPath.Replace(".txt", ".xml")); } catch (Exception) //Settings could not be saved for some reason! { Events.LogMessage(Language.Localization["Failed Save Settings"], Language.Localization["UI"]); } Stack.Exit(StackReference); }
public static int LatestUpdate() { int StackReference = Stack.Add("Updater.LatestUpdate()"); if (string.IsNullOrWhiteSpace(UpdaterDB)) { UpdaterDB = LDDataBase.ConnectSQLite(GlobalStatic.UpdaterDBpath); } Primitive QueryItems = LDDataBase.Query(UpdaterDB, $"SELECT * FROM updates WHERE PRODUCTID = '{ GlobalStatic.ProductID }';", null, true); int.TryParse(QueryItems[1]["VERSION"], out int LatestVersion); Stack.Exit(StackReference); return(LatestVersion); }
public static string MySQL(string Server, string Database, string User, string Password) { int StackPointer = Stack.Add($"Engines.Load.MySQL({Server},{Database}"); Dictionary <string, string> Data = new Dictionary <string, string> { ["Server"] = Server, ["User"] = User, ["Password"] = Password, ["Database"] = Database }; Stack.Exit(StackPointer); return(DB(EnginesMode.MySQL, Data)); }
/// <summary> /// Converts a text settings file to an XML settings file. /// </summary> static void ConverttoXML(Primitive Settings, string URI) { int StackPointer = Stack.Add("Settings.ConvertToXML"); try { System.IO.File.WriteAllText(URI, ConverttoXML(Settings)); } catch (Exception) { GraphicsWindow.ShowMessage(Language.Localization["Failed Save Settings"], Language.Localization["Error"]); } Stack.Exit(StackPointer); }
public static void Load(string File, string DataPath) { int StackReference = Stack.Add($"Language.Load({File},{DataPath})"); if (System.IO.File.Exists(File) == false && System.IO.File.Exists(DataPath) == false) { throw new FileNotFoundException("Localization File not found!"); //DO NOT LOCALIZE } string XMLDoc = LDxml.Open(File); _Localization.Clear(); LDxml.FirstNode(); LDxml.FirstChild(); LDxml.LastChild(); Primitive XML_Array; XML_Array = Utilities.XMLAttributes(); Add( ((string)XML_Array[4]).Replace("_", " "), XML_Array[6]); while (LDxml.PreviousSibling() == "SUCCESS") { XML_Array = Utilities.XMLAttributes(); Add( ((string)XML_Array[4]).Replace("_", " "), XML_Array[6]); } Primitive Localization_Temp = System.IO.File.ReadAllText(DataPath); string[] LocalizationFiles = Directory.GetFiles(Path.GetDirectoryName(File)); _ISO_Text.Clear(); _ISO_LangCode.Clear(); foreach (string FilePath in LocalizationFiles) { string LanguageFile = Path.GetFileNameWithoutExtension(FilePath); _ISO_LangCode.Add(LanguageFile); _ISO_Text.Add(Localization_Temp[LanguageFile]); } Stack.Exit(StackReference); }
public static string Sqlite(string FilePath, string ShortName) { int StackPointer = Stack.Add($"Engines.Load.Sqlite({FilePath},{ShortName})"); Dictionary <string, string> _Data = new Dictionary <string, string> { ["URI"] = FilePath }; Stack.Exit(StackPointer); if (string.IsNullOrWhiteSpace(ShortName)) { return(DB(EnginesMode.SQLITE, _Data)); } return(DB(EnginesMode.SQLITE, _Data, ShortName)); }
static string[] FetchLinks() { int StackPointer = Stack.Add("Updater.DownloadLinks"); if (string.IsNullOrWhiteSpace(UpdaterDB)) { UpdaterDB = LDDataBase.ConnectSQLite(GlobalStatic.UpdaterDBpath); } Primitive QueryItems = LDDataBase.Query(UpdaterDB, $"SELECT * FROM updates WHERE PRODUCTID = '{ GlobalStatic.ProductID }';", null, true); string[] Locations = new string[2]; Locations[0] = QueryItems[1]["URL"]; Locations[1] = QueryItems[1]["URL2"]; Stack.Exit(StackPointer); return(Locations); }
public static Dictionary <string, string> SQL_Fetch_Type(Primitive SchemaQuery, Primitive Schema, Engines.EnginesMode CurrentEngine) { int StackPointer = Stack.Add("Export.SQL_Fetch_Type"); Engines.IEngine engine; switch (CurrentEngine) { case Engines.EnginesMode.SQLITE: engine = new Engines.SQLite(); break; default: throw new PlatformNotSupportedException("Current Engine is not supported"); } return(engine.GetTypes(SchemaQuery, Schema)); }
public static void ContextMenu(string Control, int Index) { int StackPointer = Stack.Add($"Handlers.ContextMenu({Control},{Index})"); if (Control == GlobalStatic.ListView) { if (Index <= 3) { Primitive Schema = Export.GenerateSchemaFromLastQuery(); LDControls.ComboBoxSelect(GlobalStatic.ComboBox["Sort"], LDControls.LastListViewColumn); LDControls.ComboBoxSelect(GlobalStatic.ComboBox["ASCDESC"], Index); Buttons(UI.Buttons["Sort"]); } } Stack.Exit(StackPointer); }
static void LogMessage(string Message, string Type, string Caller) { #if DEBUG Console.WriteLine("Log : Caller was : {0}; Type: {1}; Message: {2} ;", Caller, Type, Message); #endif if (string.IsNullOrWhiteSpace(Type)) { Type = "Unknown"; } if (Type == "Debug" && GlobalStatic.DebugMode == false) { return; } if (Type == "PopUp") { GraphicsWindow.ShowMessage(Message, Caller); } else if (Message.Contains("LDDataBase.Query") == true || Message.Contains("LDDataBase.Command") == true) { if (Message.Contains("logic error")) { Type = "SQL Error"; GraphicsWindow.ShowMessage(Message, Type); } } else if (Message.Contains("Shape not found")) { Type = "Shape"; } int StackPointer = Stack.Add($"Events.LogMessage({Message},{Type},{Caller})"); string LogCMD = "INSERT INTO LOG ([UTC DATE],[UTC TIME],DATE,TIME,USER,ProductID,ProductVersion,Event,Type) VALUES(DATE(),TIME(),DATE('now','localtime'),TIME('now','localtime'),'" + GlobalStatic.UserName + "','" + GlobalStatic.ProductID + "','" + GlobalStatic.VersionID + "','" + Message.Replace("\n", "") + "','" + Type + "');";; var CS = new Engines.CommandSettings() { Database = GlobalStatic.LogDB, SQL = LogCMD, User = Language.Localization["App"], Explanation = Language.Localization["Auto Log"] }; Engines.Command(CS); Stack.Exit(StackPointer); }
public static void Startup() { int StackPointer = Stack.Add("UI.Startup()"); try { DBM.Settings.Load(GlobalStatic.RestoreSettings, GlobalStatic.SettingsPath); DBM.Settings.Paths ( GlobalStatic.AssetPath, GlobalStatic.PluginPath, GlobalStatic.LocalizationFolder, GlobalStatic.AutoRunPluginPath, GlobalStatic.Localization_LanguageCodes_Path, GlobalStatic.AutoRunPluginMessage ); //Makes sure passed paths are valid and creates them if they are not } catch (Exception) { } DBM.Settings.IniateDatabases(); Engines.CreateBindList(); Language.Load( Path.Combine(GlobalStatic.LocalizationFolder, GlobalStatic.LanguageCode + ".xml"), Path.Combine(GlobalStatic.Localization_LanguageCodes_Path, GlobalStatic.LanguageCode + ".txt") ); Events.LogMessage(Language.Localization["PRGM Start"], Language.Localization["Application"]); if (Program.ArgumentCount == 1) { Engines.Load.Sqlite(GetPath(Engines.EnginesMode.SQLITE)); } if (RunProgram) { StartupGUI(); } else { DBM.Settings.Save(); EULA.UI(GlobalStatic.EULA_Text_File, 0, GlobalStatic.Title, GlobalStatic.Copyright, GlobalStatic.ProductID); } StartUpStopWatch.Stop(); Events.LogMessage($"Startup Time : {StartUpStopWatch.ElapsedMilliseconds} (ms).", Language.Localization["UI"]); Stack.Exit(StackPointer); }
public static void StartupGUI() { int StackPointer = Stack.Add("UI.StartupGUI()"); ClearWindow(); LDScrollBars.Add(GlobalStatic.Listview_Width + 370, GlobalStatic.Listview_Height); LDGraphicsWindow.State = 2; PreMainMenu(); MainMenu(); //AutoUpdate Code if (GlobalStatic.AutoUpdate == true && GlobalStatic.LastUpdateCheck + 14 <= GlobalStatic.ISO_Today) { Events.LogMessage("Autoupdate Check", "Updater"); Updater.CheckForUpdates(GlobalStatic.UpdaterDBpath, GlobalStatic.OnlineDB_Refrence_Location, false); } Stack.Exit(StackPointer); }
/// <summary> /// Automatically creates Directories if they do not exist. /// </summary> public static void Paths(string AssetPath, string PluginPath, string LocalizationFolder, string AutoRunPluginPath, string Localization_LanguageCodes_Path, string AutoRunPluginMessage) { int StackPointer = Stack.Add("Settings.Paths()"); if (Directory.Exists(AssetPath) == false || Directory.Exists(LocalizationFolder) == false) //Creates Folders if one is missing { Directory.CreateDirectory(AssetPath); Directory.CreateDirectory(LocalizationFolder); Directory.CreateDirectory(Localization_LanguageCodes_Path); } if (System.IO.File.Exists(AutoRunPluginPath) == false) { System.IO.File.WriteAllText(AutoRunPluginPath, AutoRunPluginMessage); } Stack.Exit(StackPointer); }
public static void Closing() { int StackPointer = Stack.Add("Events.Closing()"); if (string.IsNullOrEmpty(Engines.CurrentDatabase)) { LogMessage("Program Closing", Language.Localization["Application"]); //Localize } else { LogMessage("Program Closing - Closing : " + Engines.DatabaseShortname, Language.Localization["Application"]); //Localize } GraphicsWindow.Clear(); GraphicsWindow.Hide(); Stack.Exit(StackPointer); Environment.Exit(0); }
public static string ODBC(string Server, string Database, string User, string Password, int Port, string Driver, string Option) { int StackPointer = Stack.Add($"Engines.Load.ODBC({Server},{Database})"); Dictionary <string, string> Data = new Dictionary <string, string> { ["Driver"] = Driver, ["Server"] = Server, ["Port"] = Port.ToString(CultureInfo.InvariantCulture), ["User"] = User, ["Password"] = Password, ["Option"] = Option, ["Database"] = Database }; Stack.Exit(StackPointer); return(DB(EnginesMode.ODBC, Data)); }
public static void MemoryDB(EnginesMode Mode) { int StackPointer = Stack.Add($"Engines.Load.MemoryDB({Mode})"); switch (Mode) { case EnginesMode.SQLITE: LDDataBase.Connection = "Data Source=:memory:;Version=3;New=True;"; AddToList("", LDDataBase.ConnectSQLite(""), "SQLITE MEM DB", EnginesMode.SQLITE, "URI=;"); LDDataBase.Connection = string.Empty; break; default: throw new NotImplementedException(); } Stack.Exit(StackPointer); }
public static void CheckForUpdates(string downloadlocation, string URI = GlobalStatic.OnlineDB_Refrence_Location, bool UI = true) { int StackReference = Stack.Add($"Utilities.Updater.CheckForUpdates({UI})"); if (string.IsNullOrWhiteSpace(UpdaterDB) == false || LDNetwork.DownloadFile(downloadlocation, URI) != -1) { int LatestVersion = LatestUpdate(); int.TryParse(GlobalStatic.VersionID, out int CurrentVersion); string[] Locations = FetchLinks(); string DownloadLocation = Locations[0]; string DownloadLocation2 = Locations[1]; if (CurrentVersion == LatestVersion && UI == true) { GraphicsWindow.ShowMessage("There are no updates available", Language.Localization["NoUpdates"] ?? "No Updates"); //TODO LOCALIZE } else if (CurrentVersion > LatestVersion && UI == true) { GraphicsWindow.ShowMessage("You have a more recent edition of the program than that offered to the public.\nYou have version " + CurrentVersion + " while the most recent public release is version " + LatestVersion, Language.Localization["NoUpdates"] ?? "No Updates"); } else if (CurrentVersion < LatestVersion) { if (LDDialogs.Confirm($"Do you wish to download Version {LatestVersion }? You have Version {CurrentVersion}.", "Download Update") == "Yes") //TODO LOCALIZE { if (Download(DownloadLocation) == false) { Download(DownloadLocation2); } } } Primitive Temp = GlobalStatic.Settings["Updates"]; Temp["LastCheck"] = DateTime.Now.ToString("yyyy-MM-dd"); GlobalStatic.Settings["Updates"] = Temp; Settings.Save(); Settings.Load(GlobalStatic.RestoreSettings, GlobalStatic.SettingsPath); } else { GraphicsWindow.ShowMessage( Language.Localization["Check Log"], Language.Localization["Error"]); } Stack.Exit(StackReference); }