using BaseModule;
using Prism.Ioc;
using Prism.Modularity;
using Prism.Services.Dialogs;
using Prism.Unity;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Threading;
using Txgy.EWS.Client.BLL;
using Txgy.EWS.Client.Common;
using Txgy.EWS.Client.Common.Helpers;
using Txgy.EWS.Client.DAL;
using Txgy.EWS.Client.IBLL;
using Txgy.EWS.Client.IDAL;
using Txgy.EWS.Client.ILog;
using Txgy.EWS.Client.Log;
using Txgy.EWS.Client.MainModule;
using Txgy.EWS.Client.PageModule;
using Txgy.EWS.Client.Start.ViewModels;
using Txgy.EWS.Client.Start.Views;
using Txgy.EWS.Client.SysModule;
namespace Txgy.EWS.Client.Start
{
///
/// App.xaml 的交互逻辑
///
public partial class App : PrismApplication
{
public App()
{
// 日志Log4Net初始化
LogConfiguration log = new LogConfiguration();
log.Initialize();
this.Exit += App_Exit;
//this.DispatcherUnhandledException += App_DispatcherUnhandledException;
}
private void App_Exit(object sender, ExitEventArgs e)
{
try
{
GlobalData.IsRunning = false;
Task.WaitAll(GlobalData.TaskList.ToArray());
//RealtimeViewModel.GetInstance().Dispose();
}
catch { }
}
private void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
//CommonLogHelper.Fatal(e.Exception);//添加系统全局抓取日志记录
//e.Handled = true;
}
protected override Window CreateShell()
{
//bool.TryParse(System.Configuration.ConfigurationManager.AppSettings["IsDesign"].ToString(), out GlobalConfig.IsDesign);
//Console.WriteLine(System.Configuration.ConfigurationManager.AppSettings["IsDesign"].ToString());
GlobalConfig.IsDesign = bool.Parse(System.Configuration.ConfigurationManager.AppSettings["IsDesign"].ToString());
return Container.Resolve();
}
protected override void InitializeShell(Window shell)
{
GlobalConfig.ReadConfig();
//if (GlobalData.IsDesign)
//{
// base.InitializeShell(shell);
//}
//else
{
//GlobalConfig.ReadConfig();
// 通信容器来获取对象 可以进行相关对象的注入
if (Container.Resolve().ShowDialog() == false)
{
//GlobalConfig.ReadConfig();
Application.Current?.Shutdown();
}
else
{
//CommonLogHelper.Debug("====Start=====>");
//Console.WriteLine(System.Configuration.ConfigurationManager.AppSettings["IsDesign"].ToString());
base.InitializeShell(shell);
}
}
}
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
/// 全局对象注册
containerRegistry.Register(() => Application.Current.Dispatcher);
//注册View
containerRegistry.RegisterDialog();
//注册DAL
containerRegistry.Register();
containerRegistry.Register();
containerRegistry.Register();
containerRegistry.Register();
containerRegistry.Register();
containerRegistry.Register();
containerRegistry.Register();
containerRegistry.Register();
containerRegistry.RegisterSingleton();
//containerRegistry.RegisterSingleton();
//注册BLL
containerRegistry.Register();
containerRegistry.Register();
containerRegistry.Register();
containerRegistry.Register();
containerRegistry.Register();
containerRegistry.Register();
//containerRegistry.Register();
//注册对话框
containerRegistry.Register();
//注册日志
containerRegistry.RegisterSingleton();
//containerRegistry.RegisterDialog();
//throw new NotImplementedException();
}
protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog)
{
base.ConfigureModuleCatalog(moduleCatalog);
// 自动扫描目录
// 手动添加
moduleCatalog.AddModule();
moduleCatalog.AddModule();
moduleCatalog.AddModule();
moduleCatalog.AddModule();
//moduleCatalog.AddModule();
//moduleCatalog.AddModule();
//moduleCatalog.AddModule();
//moduleCatalog.AddModule();
}
}
}