Ejemplo n.º 1
0
        public ApplicationManageImpl(IMapper mapper, IApplicationInfoRepository applicationInfoRepository)
        {
            _applicationHandlerContext = new DotNetCoreApplicationHandlerContext();
            var pm2ApplicationHandlerContext = new PM2ApplicationHandlerContext();

            _applicationHandlerContext.SetNext(pm2ApplicationHandlerContext);
            var exeApplicationHandlerContext = new ExeApplicationHandlerContext();

            pm2ApplicationHandlerContext.SetNext(exeApplicationHandlerContext);
            var staticDocumentApplicationHandlerContext = new StaticDocumentApplicationHandlerContext();

            exeApplicationHandlerContext.SetNext(staticDocumentApplicationHandlerContext);
            Task initTask = Task.Run(async() =>
            {
                List <ApplicationInfo> applicationInfos = await applicationInfoRepository.FindAsync(m => true);
                var applicationInfoModels = mapper.Map <List <ApplicationInfoModel> >(applicationInfos);
                foreach (ApplicationInfoModel applicationInfoModel in applicationInfoModels)
                {
                    applicationInfoModel.ApplicationStatus = ApplicationStatusEnum.Stop;
                    Add(applicationInfoModel);
                }
                foreach (KeyValuePair <Guid, ApplicationRuntimeModel> item in _allApplicationInfos)
                {
                    _applicationHandlerContext.KillProcess(item.Value);
                }
            });

            Task.WaitAll(initTask);
        }