增加了初始弹窗,但是没有成功
更改了CAN和LIN协调 更改了配置程序的名称顺序
This commit is contained in:
160
CapMachine.Wpf/Services/AppStartService.cs
Normal file
160
CapMachine.Wpf/Services/AppStartService.cs
Normal file
@@ -0,0 +1,160 @@
|
||||
using Prism.Regions;
|
||||
using Prism.Services.Dialogs;
|
||||
using Syncfusion.Windows.Shared;
|
||||
using Prism.Ioc;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using CapMachine.Wpf.Views;
|
||||
|
||||
namespace CapMachine.Wpf.Services
|
||||
{
|
||||
/// <summary>
|
||||
/// App启动服务
|
||||
/// 暂时不用
|
||||
/// </summary>
|
||||
public class AppStartService:IAppStartService
|
||||
{
|
||||
/// <summary>
|
||||
/// 退出
|
||||
/// </summary>
|
||||
public void Exit()
|
||||
{
|
||||
if (System.Windows.Application.Current is IAppTaskBar appTaskBar)
|
||||
appTaskBar.Dispose();
|
||||
|
||||
Environment.Exit(0);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 登录退出
|
||||
/// </summary>
|
||||
public void Logout()
|
||||
{
|
||||
App.Current.MainWindow.Hide();
|
||||
SplashScreenInitialized();
|
||||
App.Current.MainWindow.Show();
|
||||
|
||||
if (App.Current.MainWindow.DataContext is INavigationAware navigationAware)
|
||||
navigationAware.OnNavigatedTo(null);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// CreateShell
|
||||
/// </summary>
|
||||
public void CreateShell()
|
||||
{
|
||||
var container = ContainerLocator.Container;
|
||||
|
||||
//var userConfigurationService = container.Resolve<UserConfigurationService>();
|
||||
//userConfigurationService.OnAccessTokenRefresh = OnAccessTokenRefresh;
|
||||
//userConfigurationService.OnSessionTimeOut = OnSessionTimeout;
|
||||
|
||||
//初始的窗户
|
||||
SplashScreenInitialized();
|
||||
|
||||
#region 初版
|
||||
|
||||
//Thread.CurrentThread.CurrentCulture = new CultureInfo("zh-CN");
|
||||
|
||||
//从容器中获取MainView的实例对象,系统运行的主窗体
|
||||
//var container = ContainerLocator.Container;
|
||||
var shell = container.Resolve<object>("MainView");
|
||||
|
||||
//加载种子数据
|
||||
//var SeekData = new SeekData(container.Resolve<IFreeSql>());
|
||||
|
||||
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));
|
||||
regionManager.RequestNavigate("MainViewContentRegion", nameof(MonitorView));
|
||||
|
||||
//调用首页的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 appVersionService12 = ContainerLocator.Container.Resolve<AlarmService>();
|
||||
var appVersionService3 = ContainerLocator.Container.Resolve<MachineRtDataService>();
|
||||
var appVersionService4 = ContainerLocator.Container.Resolve<ProStepConfigPsView>();
|
||||
var appVersionService5 = ContainerLocator.Container.Resolve<ProConfigView>();
|
||||
var appVersionService6 = ContainerLocator.Container.Resolve<HistoryDataView>();
|
||||
var appVersionService7 = ContainerLocator.Container.Resolve<RealTimeChartView>();
|
||||
var appVersionService8 = ContainerLocator.Container.Resolve<CanDriveService>();
|
||||
var appVersionService9 = ContainerLocator.Container.Resolve<DataRecordService>();
|
||||
var appVersionService10 = ContainerLocator.Container.Resolve<HighSpeedDataService>();
|
||||
var appVersionService11 = ContainerLocator.Container.Resolve<PPCService>();
|
||||
var appVersionService15 = ContainerLocator.Container.Resolve<ComActionService>();
|
||||
|
||||
|
||||
|
||||
//给当前的全局异常捕捉服务使用
|
||||
//LogService = ContainerLocator.Container.Resolve<ILogService>();
|
||||
//LogService.Error("ex.ToString()");
|
||||
//base.OnInitialized();
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
//var shell = container.Resolve<object>("MainView");
|
||||
//if (shell is ChromelessWindow view)
|
||||
//{
|
||||
// var regionManager = container.Resolve<IRegionManager>();
|
||||
// RegionManager.SetRegionManager(view, regionManager);
|
||||
// RegionManager.UpdateRegions();
|
||||
|
||||
// if (view.DataContext is INavigationAware navigationAware)
|
||||
// {
|
||||
// navigationAware.OnNavigatedTo(null);
|
||||
// App.Current.MainWindow = (Window)shell;
|
||||
// }
|
||||
//}
|
||||
|
||||
}
|
||||
|
||||
private void SplashScreenInitialized()
|
||||
{
|
||||
var dialogService = ContainerLocator.Container.Resolve<IHostDialogService>();
|
||||
var result = dialogService.ShowWindow("SplashScreenView").Result;
|
||||
|
||||
if (result == ButtonResult.Ignore)
|
||||
{
|
||||
if (!Authorization()) Exit();
|
||||
}
|
||||
else if (result == ButtonResult.No) Exit();
|
||||
}
|
||||
|
||||
private bool Authorization()
|
||||
{
|
||||
var validationResult = Validation();
|
||||
if (validationResult == ButtonResult.Retry)
|
||||
return Authorization();
|
||||
|
||||
return validationResult == ButtonResult.OK;
|
||||
|
||||
static ButtonResult Validation()
|
||||
{
|
||||
var dialogService = ContainerLocator.Container.Resolve<IHostDialogService>();
|
||||
return dialogService.ShowWindow("MainView").Result;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user