2025-08-15 16:44:13 +08:00
|
|
|
|
//using Prism.Container.DryIoc;
|
|
|
|
|
using Prism.Services.Dialogs;
|
|
|
|
|
using Prism.Events;
|
|
|
|
|
using SWS.Commons;
|
|
|
|
|
using SWS.Electrical.ViewModels;
|
|
|
|
|
using SWS.Electrical.Views;
|
|
|
|
|
using SWS.Service;
|
|
|
|
|
using SWS.WPF.ViewModels;
|
|
|
|
|
using SWS.WPF.Views;
|
|
|
|
|
using Unity;
|
|
|
|
|
using Prism.Ioc;
|
|
|
|
|
using Prism.DryIoc;
|
|
|
|
|
using DryIoc;
|
2025-09-02 11:21:40 +08:00
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using IniParser;
|
|
|
|
|
using System.Net.Http;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using SWS.Model;
|
2025-08-15 16:44:13 +08:00
|
|
|
|
namespace SWS.Electrical
|
|
|
|
|
{
|
|
|
|
|
public class Start
|
|
|
|
|
{
|
|
|
|
|
public static void RegisterTypes()
|
|
|
|
|
{
|
|
|
|
|
GlobalObject.container = new UnityContainer();
|
|
|
|
|
GlobalObject.container.RegisterSingleton<IEventAggregator, EventAggregator>();
|
|
|
|
|
|
|
|
|
|
GlobalObject.container.RegisterSingleton<HttpService>();
|
|
|
|
|
GlobalObject.container.RegisterSingleton<ConfigService>();
|
|
|
|
|
GlobalObject.container.RegisterSingleton<AnnexesService>();
|
|
|
|
|
GlobalObject.container.RegisterSingleton<DataItemService>();
|
|
|
|
|
GlobalObject.container.RegisterSingleton<DrawingServce>();
|
|
|
|
|
GlobalObject.container.RegisterSingleton<LoginService>();
|
|
|
|
|
GlobalObject.container.RegisterSingleton<NotificationService>();
|
|
|
|
|
GlobalObject.container.RegisterSingleton<ObjectTypeService>();
|
|
|
|
|
GlobalObject.container.RegisterSingleton<ProjectService>();
|
|
|
|
|
GlobalObject.container.RegisterSingleton<TemplateFileService>();
|
|
|
|
|
GlobalObject.container.RegisterSingleton<UserService>();
|
|
|
|
|
GlobalObject.container.RegisterSingleton<EnginedataService>();
|
|
|
|
|
GlobalObject.container.RegisterSingleton<DrawingCatalogueService>();
|
|
|
|
|
GlobalObject.container.RegisterSingleton<WireGroupService>();
|
|
|
|
|
GlobalObject.container.RegisterSingleton<LibraryFileService>();
|
|
|
|
|
GlobalObject.container.RegisterSingleton<PlotLayoutService>();
|
2025-09-22 09:21:04 +08:00
|
|
|
|
GlobalObject.container.RegisterSingleton<PlotBOMService>();
|
|
|
|
|
|
2025-08-15 16:44:13 +08:00
|
|
|
|
|
|
|
|
|
DryIoc.Rules DefaultRules = DryIoc.Rules.Default
|
|
|
|
|
.WithConcreteTypeDynamicRegistrations(null, DryIoc.Reuse.Transient)
|
|
|
|
|
.With(DryIoc.Made.Of(DryIoc.FactoryMethod.ConstructorWithResolvableArguments))
|
|
|
|
|
.WithFuncAndLazyWithoutRegistration()
|
|
|
|
|
.WithTrackingDisposableTransients()
|
|
|
|
|
.WithFactorySelector(DryIoc.Rules.SelectLastRegisteredFactory());
|
|
|
|
|
GlobalObject._prismContainer = new DryIocContainerExtension(new Container(DefaultRules));
|
|
|
|
|
GlobalObject._prismContainer.Register<IDialogService, DialogService>();
|
|
|
|
|
GlobalObject._prismContainer.Register<IDialogWindow, SWSDialogWindow>();
|
|
|
|
|
// GlobalObject._prismContainer.Register<IDialogWindow, CustomDialogWindow>();
|
|
|
|
|
GlobalObject._prismContainer.RegisterDialog<DialogTest, DialogTestViewModel>();
|
|
|
|
|
GlobalObject._prismContainer.RegisterDialog<DialogTest2, DialogTest2ViewModel>();
|
|
|
|
|
GlobalObject._prismContainer.RegisterDialog<DialogInput, DialogInputViewModel>();
|
|
|
|
|
GlobalObject._prismContainer.RegisterDialog<DialogSignalManagement, DialogSignalManagementViewModel>();
|
|
|
|
|
GlobalObject._prismContainer.RegisterDialog<DialogSignalNotice, DialogSignalNoticeViewModel>();
|
|
|
|
|
GlobalObject._prismContainer.RegisterDialog<DialogSignalPropertyhisAndLogs, DialogSignalPropertyhisAndLogsViewModel>();
|
|
|
|
|
GlobalObject._prismContainer.RegisterDialog<DialogSignalSelect, DialogSignalSelectViewModel>();
|
2025-09-04 18:28:02 +08:00
|
|
|
|
GlobalObject._prismContainer.RegisterDialog<DialogAllOutputSignal, DialogAllOutputSignalViewModel>();
|
2025-08-15 16:44:13 +08:00
|
|
|
|
GlobalObject._prismContainer.RegisterDialog<DialogAutoArrangeLayout, DialogAutoArrangeLayoutViewModel>();
|
2025-09-22 09:21:04 +08:00
|
|
|
|
GlobalObject._prismContainer.RegisterDialog<DialogGenerateBOM, DialogGenerateBOMViewModel>();
|
|
|
|
|
|
2025-08-15 16:44:13 +08:00
|
|
|
|
}
|
2025-09-02 11:21:40 +08:00
|
|
|
|
|
|
|
|
|
public static void AutoLogin()
|
|
|
|
|
{
|
|
|
|
|
Task.Run(async () =>
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
FileIniDataParser configIni = new FileIniDataParser();
|
|
|
|
|
var data = configIni.ReadFile(GlobalObject.configPath);
|
|
|
|
|
string token = data["LoginInfo"]["LoginToken"];
|
|
|
|
|
string loginkey = data["LoginInfo"]["LoginMark"];
|
|
|
|
|
string curProjId = data["LoginInfo"]["CurProjId"];
|
|
|
|
|
string address = data["Profile"]["strIPAddress"];
|
|
|
|
|
string port = data["Profile"]["nPort"];
|
|
|
|
|
string dbType = data["Profile"]["nConType"];
|
|
|
|
|
if (dbType == "1")
|
|
|
|
|
{
|
|
|
|
|
string strDomain = data["Profile"]["strDomainName"];
|
|
|
|
|
GlobalObject.client = new HttpClient()
|
|
|
|
|
{
|
|
|
|
|
BaseAddress = new Uri($"{strDomain}/api/"),
|
|
|
|
|
Timeout = TimeSpan.FromSeconds(120)
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
else if (dbType == "0")
|
|
|
|
|
{
|
|
|
|
|
GlobalObject.client = new HttpClient()
|
|
|
|
|
{
|
|
|
|
|
BaseAddress = new Uri($"http://{address}:{port}/api/"),
|
|
|
|
|
Timeout = TimeSpan.FromSeconds(120)
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
GlobalObject.client.DefaultRequestHeaders.Add("logintoken", token);
|
|
|
|
|
GlobalObject.client.DefaultRequestHeaders.Add("loginkey", loginkey);
|
|
|
|
|
var loginService = GlobalObject.container.Resolve<LoginService>();
|
|
|
|
|
var flag = await loginService.ValidateLogin(token, loginkey);
|
|
|
|
|
if (flag && GlobalObject.curProject == null)
|
|
|
|
|
{
|
|
|
|
|
//第一次要在后台初始化一些数据
|
|
|
|
|
var projectService = GlobalObject.container.Resolve<ProjectService>();
|
|
|
|
|
var listProjects = (await projectService.GetProjects(1, 1000)).Rows;
|
|
|
|
|
var p = listProjects.FirstOrDefault(a => a.ProjectId == curProjId);
|
|
|
|
|
GlobalObject.curProject = p;
|
|
|
|
|
var obj = await projectService.InitProjInfo(curProjId, "");
|
|
|
|
|
var treeData = obj.First(x => (string)x["Name"] == "图纸树(按目录)")["data"];
|
|
|
|
|
GlobalObj.treeDrawings = JsonConvert.DeserializeObject<List<TreeModel>>(treeData.ToString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
2025-08-15 16:44:13 +08:00
|
|
|
|
}
|
|
|
|
|
}
|