//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; 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; namespace SWS.Electrical { public class Start { public static void RegisterTypes() { GlobalObject.container = new UnityContainer(); GlobalObject.container.RegisterSingleton(); GlobalObject.container.RegisterSingleton(); GlobalObject.container.RegisterSingleton(); GlobalObject.container.RegisterSingleton(); GlobalObject.container.RegisterSingleton(); GlobalObject.container.RegisterSingleton(); GlobalObject.container.RegisterSingleton(); GlobalObject.container.RegisterSingleton(); GlobalObject.container.RegisterSingleton(); GlobalObject.container.RegisterSingleton(); GlobalObject.container.RegisterSingleton(); GlobalObject.container.RegisterSingleton(); GlobalObject.container.RegisterSingleton(); GlobalObject.container.RegisterSingleton(); GlobalObject.container.RegisterSingleton(); GlobalObject.container.RegisterSingleton(); GlobalObject.container.RegisterSingleton(); GlobalObject.container.RegisterSingleton(); 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(); GlobalObject._prismContainer.Register(); // GlobalObject._prismContainer.Register(); GlobalObject._prismContainer.RegisterDialog(); GlobalObject._prismContainer.RegisterDialog(); GlobalObject._prismContainer.RegisterDialog(); GlobalObject._prismContainer.RegisterDialog(); GlobalObject._prismContainer.RegisterDialog(); GlobalObject._prismContainer.RegisterDialog(); GlobalObject._prismContainer.RegisterDialog(); GlobalObject._prismContainer.RegisterDialog(); GlobalObject._prismContainer.RegisterDialog(); GlobalObject._prismContainer.RegisterDialog(); GlobalObject._prismContainer.RegisterDialog(); } 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(); var flag = await loginService.ValidateLogin(token, loginkey); if (flag && GlobalObject.curProject == null) { //第一次要在后台初始化一些数据 var projectService = GlobalObject.container.Resolve(); 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>(treeData.ToString()); } } catch { } }); } } }