public string TranslateExtendedErrorNumber()
 {
     return(TranslateExtendedErrorNumber(LocalizationUtility.GetDefaultLanguage()));
 }
Example #2
0
        static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            LocalizationUtility.ApplyLanguage(LocalizationUtility.GetDefaultLanguage());

#if DEBUG
#else
            AppDomain.CurrentDomain.UnhandledException += CurrentDomainOnUnhandledException;
            Application.ThreadException += ApplicationOnThreadException;
#endif
            Application.ApplicationExit += ApplicationOnApplicationExit;

            // Первичная инициализация
            if (string.IsNullOrEmpty(Settings.Default.InstallationReference))
            {
                bool omitPrecompilation;

                if (ApplicationUtility.IsRunningOnMono)
                {
                    omitPrecompilation = true;
                }
                else
                {
                    var omitPrecompilationValue = ConfigurationManager.AppSettings["OmitPrecompilation"];

                    if (null != omitPrecompilationValue)
                    {
                        bool.TryParse(omitPrecompilationValue, out omitPrecompilation);
                    }
                    else
                    {
                        omitPrecompilation = false;
                    }
                }

                var initializationForm = new InitializationForm(omitPrecompilation);

                if (DialogResult.Cancel == initializationForm.ShowDialog())
                {
                    return;
                }
            }

            SplashScreenForm splashScreen = null;

            if (!ApplicationUtility.IsRunningOnMono)
            {
                var autoResetEvent = new AutoResetEvent(false);

                var thread = new Thread(() =>
                {
                    splashScreen = new SplashScreenForm();
                    autoResetEvent.Set();
                    Application.Run(splashScreen);
                })
                {
                    IsBackground = true
                };

                thread.Start();
                autoResetEvent.WaitOne();
            }

            try
            {
                _extensionManager = new ExtensionManager(Application.StartupPath);
            }
            catch (Exception exception)
            {
                // Закрываем SplashScreen
                splashScreen?.SafeClose();

                Logger.Fatal(exception.Message, exception);

                MessageBox.Show(Resources.Program_Main_An_error_occurred_while_trying_to_load_the_extension_manager_,
                                Resources.Program_Main_Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            // CustomAssemblyResolving
            _extensionManager.ApplyCustomAssemblyResolving();

            // WebMoney.Services configuration
            IConfigurationService configurationService;

            try
            {
                configurationService = _extensionManager.CreateExtension <IConfigurationService>();
            }
            catch (Exception)
            {
                // Закрываем SplashScreen
                splashScreen?.SafeClose();

                throw;
            }

            configurationService.InstallationReference = Settings.Default.InstallationReference;

            IUnityContainer unityContainer = new UnityContainer();
            configurationService.RegisterServices(unityContainer);

            // Set session
            var enterContext = new EntranceContext(_extensionManager, unityContainer);

            // Закрываем SplashScreen
            splashScreen?.SafeClose();

            var sessionContextProvider = _extensionManager.GetSessionContextProvider();

            SessionContext sessionContext;

            try
            {
                sessionContext = sessionContextProvider.GetIdentifierContext(enterContext);
            }
            catch (Exception exception)
            {
                Logger.Error(exception.Message, exception);

                MessageBox.Show(Resources.Program_Main_An_error_occurred_while_attempting_to_create_the_new_session_, Resources.Program_Main_Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (null == sessionContext)
            {
                return;
            }

            var session = sessionContext.Session;
            unityContainer.RegisterInstance(session);

            // Language
            var language = session.SettingsService.GetSettings().Language;
            LocalizationUtility.ApplyLanguage(language);

            var translator = new Translator();
            translator.Apply();

            // Run main form.
            var formProvider = _extensionManager.GetTopFormProvider(ExtensionCatalog.Main);
            var mainForm     = formProvider.GetForm(sessionContext);

            Application.Run(mainForm);
        }
 public string GetClientMessage()
 {
     return(GetClientMessage(LocalizationUtility.GetDefaultLanguage()));
 }