Files
CapMachine/CapMachine.Wpf/Services/AppStartService.cs
Tyrone CT e49a48fb25 增加了初始弹窗,但是没有成功
更改了CAN和LIN协调
更改了配置程序的名称顺序
2025-01-11 12:04:34 +08:00

161 lines
5.9 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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;
}
}
}
}