using DM_Weight.util.TabTip;
using DM_Weight.util;
using DM_Weight.ViewModels;
using DM_Weight.Views.Dialog;
using DM_Weight.Views;
using log4net.Config;
using Prism.Ioc;
using Prism.Services.Dialogs;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using Prism.Unity;
using log4net;
using System.Windows.Interop;
using System.Windows.Threading;
using System.Timers;
using DM_Weight.HIKVISION;
namespace DM_Weight
{
///
/// Interaction logic for App.xaml
///
public partial class App : PrismApplication
{
private readonly ILog logger = LogManager.GetLogger(typeof(App));
public App()
{
TabTipAutomation.IgnoreHardwareKeyboard = HardwareKeyboardIgnoreOptions.IgnoreAll;
TabTipAutomation.BindTo();
TabTipAutomation.BindTo();
}
protected override Window CreateShell()
{
//UI线程未捕获异常处理事件
this.DispatcherUnhandledException += OnDispatcherUnhandledException;
//Task线程内未捕获异常处理事件
TaskScheduler.UnobservedTaskException += OnUnobservedTaskException;
//多线程异常
AppDomain.CurrentDomain.UnhandledException += OnUnhandledException;
return Container.Resolve();
}
void OnDispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
logger.Error($"发生错误:{e.Exception.Message}");
e.Handled = true;
}
void OnUnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e)
{
foreach (Exception item in e.Exception.InnerExceptions)
{
logger.Error($"异常类型:{item.GetType()}{Environment.NewLine}来自:{item.Source}{Environment.NewLine}异常内容:{item.Message}");
}
//将异常标识为已经观察到
e.SetObserved();
}
void OnUnhandledException(object sender, UnhandledExceptionEventArgs e)
{
logger.Error($"Unhandled exception.{e.ToString()}");
}
protected override void InitializeShell(Window shell)
{
base.InitializeShell(shell);
}
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
//日期加时间页面
containerRegistry.RegisterDialog();
containerRegistry.RegisterForNavigation();
// 注入日志
XmlConfigurator.ConfigureAndWatch(new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "log4net.config"));
//containerRegistry.RegisterInstance(LogManager.GetLogger(""));
// 串口工具
//containerRegistry.RegisterSingleton();
// 指纹机工具
//containerRegistry.RegisterSingleton();
// 组态屏工具
//containerRegistry.RegisterSingleton();
// 录像机
//containerRegistry.RegisterSingleton();
containerRegistry.Register();
// 主窗口
containerRegistry.Register();
containerRegistry.RegisterForNavigation();
// 分页
//containerRegistry.Register();
//containerRegistry.Register();
// 登录页面
containerRegistry.RegisterForNavigation();
// 布局页面
containerRegistry.RegisterForNavigation();
// 录入指纹模态框
//containerRegistry.RegisterDialog();
//containerRegistry.RegisterForNavigation();
#region 取药
////交接柜补药
//containerRegistry.RegisterForNavigation();
////交接柜补药页面弹窗
//containerRegistry.RegisterDialog();
//containerRegistry.RegisterForNavigation();
//// 处方取药页面
//containerRegistry.RegisterForNavigation();
//// 处方取药模态框
//containerRegistry.RegisterDialog();
//containerRegistry.RegisterForNavigation();
//// 调拨取药页面
//containerRegistry.RegisterForNavigation();
//// 调拨取药模态框
//containerRegistry.RegisterDialog();
//containerRegistry.RegisterForNavigation();
//// 抽屉取药页面
//containerRegistry.RegisterForNavigation();
//// 自选取药模态框
//containerRegistry.RegisterDialog();
//containerRegistry.RegisterForNavigation();
//// 自选取药页面
//containerRegistry.RegisterForNavigation();
////多处方取药
//containerRegistry.RegisterForNavigation();
//containerRegistry.RegisterDialog();
//containerRegistry.RegisterForNavigation();
#endregion
#region 加药
// 自选加药页面
//containerRegistry.RegisterForNavigation();
//// 调拨加药页面
//containerRegistry.RegisterForNavigation();
//// 调拨取药模态框
//containerRegistry.RegisterDialog();
//containerRegistry.RegisterForNavigation();
//// 抽屉加药页面
//containerRegistry.RegisterForNavigation();
//// 自选加药模态框
//containerRegistry.RegisterDialog();
//containerRegistry.RegisterForNavigation();
////多批次抽屉加药
//containerRegistry.RegisterForNavigation();
////药品请领
//containerRegistry.RegisterForNavigation();
//// 药品请领模态框
//containerRegistry.RegisterDialog();
//containerRegistry.RegisterForNavigation();
////请领列表
//containerRegistry.RegisterForNavigation();
////请领入库
//containerRegistry.RegisterForNavigation();
#endregion
#region 还药
// 还药页面
//containerRegistry.RegisterForNavigation();
//// 按记录归还药品模态框
//containerRegistry.RegisterDialog();
//containerRegistry.RegisterForNavigation();
//// 还药页面2
//containerRegistry.RegisterForNavigation();
//// 按处方归还药品模态框
//containerRegistry.RegisterDialog();
//containerRegistry.RegisterForNavigation();
//// 还空瓶页面
//containerRegistry.RegisterForNavigation();
//// 归还空瓶模态框
//containerRegistry.RegisterDialog();
//containerRegistry.RegisterForNavigation();
//// 空瓶销毁模态框
//containerRegistry.RegisterDialog();
//containerRegistry.RegisterForNavigation();
#endregion
#region 库存管理
// 库存列表页面
//containerRegistry.RegisterForNavigation();
//// 库位绑定模态框
//containerRegistry.RegisterDialog();
//containerRegistry.RegisterForNavigation();
////同一药品多批次库位绑定
//containerRegistry.RegisterForNavigation();
//// 库存盘点页面
//containerRegistry.RegisterForNavigation();
//// 药品列表页面
//containerRegistry.RegisterForNavigation();
////交接班记录
//containerRegistry.RegisterForNavigation();
////交接班弹窗
//containerRegistry.RegisterDialog();
//containerRegistry.RegisterForNavigation();
containerRegistry.RegisterForNavigation();
containerRegistry.RegisterForNavigation();
#endregion
#region 系统设置
// 用户管理页面
//containerRegistry.RegisterForNavigation();
//// 编辑用户模态框
//containerRegistry.RegisterDialog();
//containerRegistry.RegisterForNavigation();
//// 角色管理页面
//containerRegistry.RegisterForNavigation();
//// 系统设置
//containerRegistry.RegisterForNavigation();
//// 调试页面
//containerRegistry.RegisterForNavigation();
////主设置页面
//containerRegistry.RegisterForNavigation();
////两个冰箱抽屉设置页面
//containerRegistry.RegisterForNavigation();
////只有一个冰箱抽屉设置页面
//containerRegistry.RegisterForNavigation();
#endregion
// 设备记录页面
//containerRegistry.RegisterForNavigation();
//containerRegistry.RegisterForNavigation();
}
}
}