164 lines
6.7 KiB
C#
164 lines
6.7 KiB
C#
using AutoMapper;
|
||
using CapMachine.Core.IService;
|
||
using CapMachine.Wpf.MapperProfile;
|
||
using CapMachine.Wpf.Services;
|
||
using CapMachine.Wpf.ViewModels;
|
||
using CapMachine.Wpf.Views;
|
||
using FreeSql;
|
||
using Prism.DryIoc;
|
||
using Prism.Ioc;
|
||
using Prism.Regions;
|
||
using System.Windows;
|
||
|
||
namespace CapMachine.Wpf
|
||
{
|
||
/// <summary>
|
||
/// Interaction logic for App.xaml
|
||
/// </summary>
|
||
public partial class App : PrismApplication
|
||
{
|
||
public App()
|
||
{
|
||
try
|
||
{
|
||
//24.2.7
|
||
//Syncfusion.SfSkinManager.SfSkinManager.ApplyStylesOnApplication = true;
|
||
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("MzEyMzM3NkAzMjM0MmUzMDJlMzBHdjVKNUNpNWZxYXQwR05ZbVYvUEtzbGxXMnVxRjYvRGtLSlZUOGpjQW44PQ==");
|
||
|
||
// 授权 a717c797-59e3-48de-b6b4-574a4e03dc79
|
||
if (!HslCommunication.Authorization.SetAuthorizationCode("a717c797-59e3-48de-b6b4-574a4e03dc79"))
|
||
{
|
||
//active failed
|
||
//MessageBox.Show("授权失败!当前程序只能使用8小时!");
|
||
//return;
|
||
|
||
}
|
||
else
|
||
{
|
||
//IsActive = true;
|
||
}
|
||
|
||
//SfSkinManager.ApplyStylesOnApplication = true;
|
||
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
MessageBox.Show(ex.Message);
|
||
}
|
||
}
|
||
|
||
protected override Window CreateShell() => null;
|
||
|
||
|
||
protected override void RegisterTypes(IContainerRegistry containerRegistry)
|
||
{
|
||
////注册日志服务
|
||
containerRegistry.RegisterSingleton<ILogService, LogService>();
|
||
containerRegistry.RegisterSingleton<SysService>();
|
||
containerRegistry.RegisterSingleton<ConfigService>();
|
||
|
||
////注册设备服务
|
||
//containerRegistry.RegisterSingleton<MachineDataService>();
|
||
containerRegistry.RegisterSingleton<MachineRtDataService>();
|
||
|
||
//注册AutoMapper 将IAutoMapperProvider注入IOC容器,并对外提供IMapper注入类型。
|
||
containerRegistry.RegisterSingleton<IMapperProvider, MapperConfig>();
|
||
containerRegistry.Register(typeof(IMapper), GetMapper);
|
||
|
||
//注册IFreeSql实例 单例
|
||
containerRegistry.RegisterSingleton<IFreeSql>(() =>
|
||
{
|
||
IFreeSql Fsql = new FreeSqlBuilder()
|
||
//.UseConnectionString(DataType.SqlServer, "Data Source=CT-PC;user instance=false;Initial Catalog=KylinEMS;Encrypt=True;TrustServerCertificate=True;User ID=sa;Password=12345678")
|
||
.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=CT-PC;user instance=false;Initial Catalog=CapMachine;Encrypt=True;TrustServerCertificate=True;User ID=sa;Password=12345678")
|
||
.UseAutoSyncStructure(true)
|
||
.Build();
|
||
return Fsql;
|
||
});
|
||
|
||
containerRegistry.RegisterSingleton<INavigationMenuService, NavigationMenuService>();
|
||
containerRegistry.RegisterForNavigation<MainView, MainViewModel>();
|
||
containerRegistry.RegisterForNavigation<MonitorView, MonitorViewModel>();
|
||
containerRegistry.RegisterForNavigation<ProConfigView, ProConfigViewModel>();
|
||
containerRegistry.RegisterForNavigation<RealTimeChartView, RealTimeChartViewModel>();
|
||
containerRegistry.RegisterForNavigation<UserManageView, UserManageViewModel>();
|
||
containerRegistry.RegisterForNavigation<ActionLogView, ActionLogViewModel>();
|
||
containerRegistry.RegisterForNavigation<FooterView, FooterViewModel>();
|
||
containerRegistry.RegisterForNavigation<ProStepConfigPsView, ProStepConfigPsViewModel>();
|
||
containerRegistry.RegisterForNavigation<ProStepConfigMainView, ProStepConfigMainViewModel>();
|
||
|
||
//注册Dialog视图时绑定VM
|
||
containerRegistry.RegisterDialog<DialogCreateProView, DialogCreateProViewModel>();
|
||
containerRegistry.RegisterDialog<DialogEditProView, DialogEditProViewModel>();
|
||
containerRegistry.RegisterDialog<DialogChartRtConfigView, DialogChartRtConfigViewModel>();
|
||
|
||
//注册AutoMapper
|
||
//containerRegistry.RegisterSingleton<IAutoMapperProvider, AutoMapperProvider>();
|
||
//containerRegistry.Register(typeof(IMapper), GetMapper);
|
||
}
|
||
|
||
|
||
|
||
//private IMapper GetMapper(IContainerProvider container)
|
||
//{
|
||
// var provider = container.Resolve<IAutoMapperProvider>();
|
||
// return provider.GetMapper();
|
||
|
||
//}
|
||
|
||
/// <summary>
|
||
/// 将IAutoMapperProvider注入IOC容器,并对外提供IMapper注入类型。
|
||
/// </summary>
|
||
/// <param name="container"></param>
|
||
/// <returns></returns>
|
||
private IMapper GetMapper(IContainerProvider container)
|
||
{
|
||
var provider = container.Resolve<IMapperProvider>();
|
||
return provider.GetMapper();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 系统初始化
|
||
/// </summary>
|
||
protected override void OnInitialized()
|
||
{
|
||
//从容器中获取MainView的实例对象
|
||
var container = ContainerLocator.Container;
|
||
var shell = container.Resolve<object>("MainView");
|
||
|
||
if (shell is Window view)
|
||
{
|
||
//更新Prism注册区域信息
|
||
var regionManager = container.Resolve<IRegionManager>();
|
||
RegionManager.SetRegionManager(view, regionManager);
|
||
RegionManager.UpdateRegions();
|
||
|
||
//给MainView的MainViewFooterContentRegion区域设置FooterView具体的信息
|
||
regionManager.RequestNavigate("MainViewFooterContentRegion", nameof(FooterView));
|
||
|
||
|
||
//调用首页的INavigationAware 接口做一个初始化操作
|
||
if (view.DataContext is INavigationAware navigationAware)
|
||
{
|
||
navigationAware.OnNavigatedTo(null);
|
||
//呈现首页
|
||
App.Current.MainWindow = view;
|
||
}
|
||
|
||
}
|
||
|
||
//先加载服务,防止在ViewModel中使用时速度慢
|
||
var appVersionService = ContainerLocator.Container.Resolve<IFreeSql>();
|
||
//var appVersionService1 = ContainerLocator.Container.Resolve<MachineDataService>();
|
||
//var appVersionService2 = ContainerLocator.Container.Resolve<ILogService>();
|
||
var appVersionService3 = ContainerLocator.Container.Resolve<MachineRtDataService>();
|
||
var appVersionService4 = ContainerLocator.Container.Resolve<ProStepConfigPsView>();
|
||
|
||
base.OnInitialized();
|
||
|
||
|
||
}
|
||
}
|
||
|
||
}
|