/// /// Copyright (c) 2018 Sensus Slovensko a.s. /// using System; using System.IO; using System.Collections.Generic; using System.Windows.Forms; using Statistics.Resources; namespace Statistics { static class Program { /// Program information public static string Version; /// version string public static DateTime BuildDateTime; /// date and time of program build /// Local settings public static readonly string ExecutableDirectory; public static readonly string ConfigDirectory; public static readonly string LocalSettingsFileName; public static readonly string LocalSettingsBackupName; public static LocalSettings LocalSettings; static Program() { /// Program version string System.Reflection.Assembly thisAssembly = System.Reflection.Assembly.GetExecutingAssembly(); Version ver = thisAssembly.GetName().Version; Version = string.Format("{0}.{1}.{2}", ver.Major, ver.Minor, ver.Build); BuildDateTime = new System.IO.FileInfo(thisAssembly.Location).LastWriteTime; /// Local program configuration directory including the trailing backslash ExecutableDirectory = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); ConfigDirectory = Path.Combine(ExecutableDirectory, "..\\Cfg\\"); LocalSettingsFileName = ConfigDirectory + "config.xml"; LocalSettingsBackupName = ConfigDirectory + "config.backup.xml"; } /// /// The main entry point for the application. /// [STAThread] static void Main() { /// /// Load the local settings /// LocalSettings = LocalSettings.Load(Program.LocalSettingsFileName); if (LocalSettings == null) { /// Loading local seetings from regular config file failed. Use the backup LocalSettings = LocalSettings.Load(Program.LocalSettingsBackupName); if (LocalSettings == null) { MessageBox.Show(Strings.No_program_settings_found + Strings.Using_default_settings, string.Empty, MessageBoxButtons.OK, MessageBoxIcon.Information); /// Create new default settings and save them LocalSettings = new LocalSettings(); Directory.CreateDirectory(ConfigDirectory); LocalSettings.Save(); } else { LocalSettings.Save(); /// Save the settings to overwrite the wrong file } } else { /// Loading local seetings from the regular config file was successful. Update the backup File.Copy(Program.LocalSettingsFileName, Program.LocalSettingsBackupName, true); } try { string culture = LocalSettings.Language.Replace('_', '-'); System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(culture); } catch (Exception e) { string msg = e.Message; MessageBox.Show(Strings.Selected_language_not_supported + Environment.NewLine + Strings.Using_English, Strings.Warning, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en"); } Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new StatisticsDlg()); } } }