private void ProcessShellAssembly() { IModuleLoaderService loader = rootWorkItem.Services.Get <IModuleLoaderService>(true); Assembly assembly = Assembly.GetEntryAssembly(); if (assembly != null) { loader.Load(rootWorkItem, assembly); } }
/// <summary> /// Loads the application modules into the root container. /// </summary> protected virtual void LoadModules() { IModuleLoaderService loader = RootContainer.Services.Get <IModuleLoaderService>(true); IModuleEnumerator moduleEnumerator = RootContainer.Services.Get <IModuleEnumerator>(true); if (moduleEnumerator != null) { loader.Load(RootContainer, moduleEnumerator.EnumerateModules()); } }
private void LoadModules() { IModuleLoaderService loader = rootWorkItem.Services.Get <IModuleLoaderService>(true); IModuleEnumerator modEnumerator = rootWorkItem.Services.Get <IModuleEnumerator>(true); if (modEnumerator != null) { loader.Load(rootWorkItem, modEnumerator.EnumerateModules()); } }
public ModuleLoaderService( [ServiceDependency] IModuleLoaderService loader, [ServiceDependency] FileCatalogModuleEnumerator modEnumerator, [ServiceDependency] WorkItem workItem ) { _moduleLoaderService = loader; _modEnumerator = modEnumerator; _workItem = workItem; _modules = _modEnumerator.EnumerateModules(); }
public void LoadModulesCallsModuleLoaderService() { TestableWebClientApplication app = new TestableWebClientApplication(); app.SetTestRootCompositionContainer(new TestableRootCompositionContainer()); IModuleLoaderService loaderService = app.RootContainer.Services.AddNew <MockModuleLoaderService, IModuleLoaderService>(); app.RootContainer.Services.AddNew <MockModuleEnumerator, IModuleEnumerator>(); app.TestLoadModules(); Assert.IsTrue(((MockModuleLoaderService)loaderService).LoadCalled); }
/// <summary> /// 初始化框架系统环境 /// </summary> private void InitializeEnvironment() { RemoteServiceRegister register = new RemoteServiceRegister(); Program.Logger.Debug("将远程服务注入到本地容器中"); Program.SetInitialState("检查远程服务……"); Program.IncreaseProgressBar(10); register.RegisterRemoteServices(RootWorkItem, ServiceRepository.Instance); RegisterUserInfo(); // 注册用户信息需要放在其它服务启动之前 //// 注册系统权限管理服务 Program.SetInitialState("注册系统权限管理服务……"); Program.Logger.Debug("加载系统权限管理服务"); Program.IncreaseProgressBar(5); IAuthorizationService authorizationService = new AuthorizationService(RootWorkItem); RootWorkItem.Services.Add <IAuthorizationService>(authorizationService); // 注册自定义的UI组件 Program.SetInitialState("注册自定义UI组件构建服务……"); Program.IncreaseProgressBar(10); RootWorkItem.Services.Add <SmartClientEnvironment>(new SmartClientEnvironment()); RootWorkItem.Services.Add <IBuilderService>(new BuilderService(RootWorkItem)); // 添加系统自定义的默认服务 Program.SetInitialState("注册本地默认服务……"); Program.IncreaseProgressBar(10); RootWorkItem.Services.Add(typeof(log4net.ILog), Program.Logger); RootWorkItem.Services.Remove <IModuleEnumerator>(); // 删除系统默认的模块枚举服务 // 从服务器下载配置模块信息 Program.SetInitialState("从服务器下载客户端配置信息……"); Program.IncreaseProgressBar(10); WebServiceModuleEnumerator ws = new WebServiceModuleEnumerator(); ws.Load(); IModuleLoaderService mls = RootWorkItem.Services.Get <IModuleLoaderService>(); if (mls != null) { mls.ModuleLoaded += new EventHandler <DataEventArgs <LoadedModuleInfo> >(ModuleLoaderService_ModuleLoaded); } RootWorkItem.Services.Add <IModuleEnumerator>(ws); Program.IncreaseProgressBar(10); }
public void ShowCreateLoadCarrierDialog() { if (viewParameters != null && currentItem != null) { CreateLoadCarrierForPackStationViewParameters loadCarrierParameters = new CreateLoadCarrierForPackStationViewParameters(); loadCarrierParameters.ClientId = UserSessionService.ClientId; loadCarrierParameters.DepartureId = viewParameters.DepartureId; loadCarrierParameters.UserId = viewParameters.UserId; loadCarrierParameters.ShipToCustomerId = viewParameters.ShipToCustomerId; loadCarrierParameters.ShipToCustomerType = currentItem.ShipToCustomerType; ShellInteractionService.ShowProgress(); try { Assembly assembly = Assembly.Load("Imi.SupplyChain.Warehouse.UX.Modules.PackStation"); IModuleLoaderService moduleLoaderService = WorkItem.Services.Get <IModuleLoaderService>(); moduleLoaderService.Load(WorkItem.RootWorkItem.WorkItems["Warehouse"], assembly); Type workItemType = typeof(ControlledWorkItem <>).MakeGenericType(assembly.GetType("Imi.SupplyChain.Warehouse.UX.Modules.PackStation.CreateLoadCarrierForPackStation.CreateLoadCarrierForPackStationController")); WorkItem workItem = WorkItem.WorkItems.AddNew(workItemType, "CreateLoadCarrier"); workItem.Terminated += (s, e) => { DialogResult dialogResult = DialogResult.None; if (workItem.Items.Get("DialogResult") != null) { dialogResult = (DialogResult)workItem.Items.Get("DialogResult"); } if ((dialogResult == DialogResult.Ok) && (workItem.Items.FindByType <CreateLoadCarrierForPackStationViewResult>().Count > 0)) { CreateLoadCarrierForPackStationViewResult result = workItem.Items.FindByType <CreateLoadCarrierForPackStationViewResult>().Last(); try { SelectToLoadCarrier(result.LoadCarrierId); } catch (Exception ex) { ShellInteractionService.ShowMessageBox(ex); } } }; object controller = workItem.GetType().GetProperty("Controller").GetValue(workItem, null); controller.GetType().InvokeMember("Run", BindingFlags.InvokeMethod, null, controller, new object[] { loadCarrierParameters }); } finally { ShellInteractionService.HideProgress(); } } }
/// <summary> /// Searches for specific module configuration and configures each module when that configuration is available. /// </summary> protected virtual void ConfigureModules() { IModuleEnumerator moduleEnumerator = RootContainer.Services.Get <IModuleEnumerator>(); IModuleLoaderService moduleLoader = RootContainer.Services.Get <IModuleLoaderService>(); IModuleConfigurationLocatorService moduleConfigurationLocator = RootContainer.Services.Get <IModuleConfigurationLocatorService>(); if (moduleEnumerator != null) { foreach (IModuleInfo moduleInfo in moduleEnumerator.EnumerateModules()) { System.Configuration.Configuration configuraton = moduleConfigurationLocator.FindModuleConfiguration(moduleInfo.Name); if (configuraton != null) { moduleLoader.FindInitializer(moduleInfo.Name).Configure(RootContainer.Services, configuraton); } } } }
public void ShowComboDialog(IWorkspace workspace, bool fromLoadCarrier) { string workItemName; if (fromLoadCarrier) { workItemName = "FromLoadCarrierId"; } else { workItemName = "ToLoadCarrierId"; } if (WorkItem.WorkItems[workItemName] != null) { WorkItem.WorkItems[workItemName].Terminate(); } FindLoadCarrierForPackStationFindViewParameters parameters = new FindLoadCarrierForPackStationFindViewParameters(); if (viewParameters != null) { if (string.IsNullOrEmpty(viewParameters.DepartureId)) { parameters.DepartureId = "%"; } else { parameters.DepartureId = viewParameters.DepartureId; } if (string.IsNullOrEmpty(viewParameters.ShipToCustomerId)) { parameters.ShipToCustomerId = "%"; } else { parameters.ShipToCustomerId = viewParameters.ShipToCustomerId; } parameters.PackedBy = viewParameters.UserId; if (fromLoadCarrier) { parameters.PickRowEmptyStatus = "NOTEMPTY"; } else { parameters.PickRowEmptyStatus = "EMPTY"; } } else { parameters.DepartureId = "%"; parameters.ShipToCustomerId = "%"; parameters.PackedBy = WorkItem.Items.FindByType <PackStationSearchPanelView>().Last().CurrentItem.UserId; if (fromLoadCarrier) { parameters.PickRowEmptyStatus = "NOTEMPTY"; } else { parameters.PickRowEmptyStatus = "EMPTY"; } } parameters.WarehouseId = UserSessionService.WarehouseId; parameters.ClientId = UserSessionService.ClientId; ShellInteractionService.ShowProgress(); try { Assembly assembly = Assembly.Load("Imi.SupplyChain.Warehouse.UX.Modules.PackStation"); IModuleLoaderService moduleLoaderService = WorkItem.Services.Get <IModuleLoaderService>(); moduleLoaderService.Load(WorkItem.RootWorkItem.WorkItems["Warehouse"], assembly); Type workItemType = typeof(ControlledWorkItem <>).MakeGenericType(assembly.GetType("Imi.SupplyChain.Warehouse.UX.Modules.PackStation.FindLoadCarrierForPackStationFind.FindLoadCarrierForPackStationFindController")); object workItem = WorkItem.WorkItems.AddNew(workItemType, workItemName); object controller = workItem.GetType().GetProperty("Controller").GetValue(workItem, null); controller.GetType().InvokeMember("Run", BindingFlags.InvokeMethod, null, controller, new object[] { workspace, parameters }); } finally { ShellInteractionService.HideProgress(); } }