using Aitex.Core.RT.Log;
using Aitex.Core.Util;
using Prism.Ioc;
using Prism.Modularity;
using Prism.Services.Dialogs;
using Prism.Unity;
using System;
using System.Threading;
using System.Windows;
using Venus_MainPages.Roles;
using Venus_MainPages.Views;
using Venus_UI.Views;
using WPF.Themes.UserControls;
namespace Venus_UI
{
    /// 
    /// App.xaml 的交互逻辑
    /// 
    public partial class App : PrismApplication
    {
        System.Threading.Mutex mutex;
        protected override void OnStartup(StartupEventArgs e)
        {
            bool ret;
            mutex = new System.Threading.Mutex(true, "Venus_UI", out ret);
            if (!ret)
            {
                WPFMessageBox.ShowError("Only One Venus_UI is allowed");
                Environment.Exit(0);
            }
            FrameworkCompatibilityPreferences.KeepTextBoxDisplaySynchronizedWithTextProperty = false;
            DispatcherUnhandledException += App_DispatcherUnhandledException;
            Singleton.Instance.Initialize();
            //LoginView loginView = new LoginView();
            //loginView.ShowDialog();
            //CurrentUser = loginView.CurrentUser;
            //if (!loginView.IsLoginSuccess)
            //{
            //    Current.Shutdown();
            //    return;
            //}
            base.OnStartup(e);
        }
        void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
        {
            //MessageBox.Show("程序异常." + Environment.NewLine + e.Exception.Message);
            e.Handled = true;
        }
        protected override Window CreateShell()
        {
            return Container.Resolve();
        }
        protected override void RegisterTypes(IContainerRegistry containerRegistry)
        {
        }
        protected override IModuleCatalog CreateModuleCatalog()
        {
            return new ConfigurationModuleCatalog();
        }
    }
}