コード例 #1
0
ファイル: PolicyExecutor.cs プロジェクト: cocoon/Toec
        private bool CheckCondition(DtoClientModuleCondition condition)
        {
            _conditionNextOrder = null;
            if (condition.Guid == null)
            {
                //no condition
                Logger.Debug($"No Conditions Found For Module");
                return(true);
            }
            //treat condition as script module
            var conditionJson = JsonConvert.SerializeObject(condition);
            var scriptModule  = JsonConvert.DeserializeObject <DtoClientScriptModule>(conditionJson);

            var conditionResult = new ModuleScriptManager(scriptModule).Run();

            if (conditionResult.Success)
            {
                if (conditionResult.ScriptOutput != null)
                {
                    _policyResult.ScriptOutputs.Add(conditionResult.ScriptOutput);
                }

                Logger.Debug($"Condition Evaluation Completed Successfully");
                return(true);
            }

            Logger.Debug("Condition Evaluation Was Not Satisfied");
            return(false);
        }
コード例 #2
0
 public DtoClientPolicy()
 {
     CommandModules  = new List <DtoClientCommandModule>();
     FileCopyModules = new List <DtoClientFileCopyModule>();
     PrinterModules  = new List <DtoClientPrinterModule>();
     ScriptModules   = new List <DtoClientScriptModule>();
     SoftwareModules = new List <DtoClientSoftwareModule>();
     WuModules       = new List <DtoClientWuModule>();
     MessageModules  = new List <DtoClientMessageModule>();
     Condition       = new DtoClientModuleCondition();
 }
コード例 #3
0
        private bool CacheCondition(DtoClientModuleCondition condition)
        {
            if (condition.Guid == null)
            {
                //no condition
                return(true);
            }
            //treat condition as script module
            var conditionJson = JsonConvert.SerializeObject(condition);
            var scriptModule  = JsonConvert.DeserializeObject <DtoClientScriptModule>(conditionJson);

            var moduleResult = new DtoModuleResult();

            moduleResult.Success = true;

            moduleResult.Name = scriptModule.DisplayName;
            moduleResult.Guid = scriptModule.Guid;

            if (!CreateDirectory(scriptModule.Guid))
            {
                moduleResult.ErrorMessage = "Could Not Create Cache Directory";
                if (IsStopError(moduleResult))
                {
                    return(false);
                }
            }
            if (!DownloadScriptFile(scriptModule))
            {
                moduleResult.ErrorMessage = "Could Not Download Script";
                if (IsStopError(moduleResult))
                {
                    return(false);
                }
            }
            return(true);
        }