コード例 #1
0
        private void ProcessShellAssembly()
        {
            IModuleLoaderService loader   = rootWorkItem.Services.Get <IModuleLoaderService>(true);
            Assembly             assembly = Assembly.GetEntryAssembly();

            if (assembly != null)
            {
                loader.Load(rootWorkItem, assembly);
            }
        }
コード例 #2
0
        /// <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());
            }
        }
コード例 #3
0
        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());
            }
        }
コード例 #4
0
ファイル: ModuleLoaderService.cs プロジェクト: Ejik/Acotwin
        public ModuleLoaderService(
                [ServiceDependency] IModuleLoaderService loader,
                [ServiceDependency] FileCatalogModuleEnumerator modEnumerator,
                [ServiceDependency] WorkItem workItem
			)
        {
            _moduleLoaderService = loader;
            _modEnumerator = modEnumerator;
            _workItem = workItem;

            _modules = _modEnumerator.EnumerateModules();
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        /// <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();
         }
     }
 }
コード例 #8
0
        /// <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();
            }
        }