Esempio n. 1
0
        private void WuModule(EntityPolicyModules policyModule)
        {
            var clientWuModule = new DtoClientWuModule();
            var wuModule       = new ServiceWuModule().GetModule(policyModule.ModuleId);

            clientWuModule.Guid           = wuModule.Guid;
            clientWuModule.DisplayName    = wuModule.Name;
            clientWuModule.Arguments      = wuModule.AdditionalArguments;
            clientWuModule.Order          = policyModule.Order;
            clientWuModule.Timeout        = wuModule.Timeout;
            clientWuModule.RedirectOutput = wuModule.RedirectStdOut;
            clientWuModule.RedirectError  = wuModule.RedirectStdError;
            foreach (var successCode in wuModule.SuccessCodes.Split(','))
            {
                clientWuModule.SuccessCodes.Add(successCode);
            }

            if (policyModule.ConditionId != -1)
            {
                var conditionScript = new ServiceScriptModule().GetModule(policyModule.ConditionId);
                if (conditionScript != null)
                {
                    clientWuModule.ConditionFailedAction    = policyModule.ConditionFailedAction;
                    clientWuModule.ConditionNextOrder       = policyModule.ConditionNextModule;
                    clientWuModule.Condition                = new DtoClientModuleCondition();
                    clientWuModule.Condition.Arguments      = conditionScript.Arguments;
                    clientWuModule.Condition.DisplayName    = conditionScript.Name;
                    clientWuModule.Condition.Guid           = conditionScript.Guid;
                    clientWuModule.Condition.RedirectError  = conditionScript.RedirectStdError;
                    clientWuModule.Condition.RedirectOutput = conditionScript.RedirectStdOut;
                    if (conditionScript.ImpersonationId != -1)
                    {
                        var scriptImpersonationGuid = new ServiceImpersonationAccount().GetGuid(conditionScript.ImpersonationId);
                        if (!string.IsNullOrEmpty(scriptImpersonationGuid))
                        {
                            clientWuModule.Condition.RunAs = scriptImpersonationGuid;
                        }
                    }
                    clientWuModule.Condition.ScriptType = conditionScript.ScriptType;
                    foreach (var successCode in conditionScript.SuccessCodes.Split(','))
                    {
                        clientWuModule.Condition.SuccessCodes.Add(successCode);
                    }
                    clientWuModule.Condition.Timeout          = conditionScript.Timeout;
                    clientWuModule.Condition.WorkingDirectory = conditionScript.WorkingDirectory;
                }
            }

            var moduleFiles = new ServiceModule().GetModuleFiles(wuModule.Guid);

            foreach (var file in moduleFiles.OrderBy(x => x.FileName))
            {
                var clientFile = new DtoClientFileHash();
                clientFile.FileName = file.FileName;
                clientFile.FileHash = file.Md5Hash;
                clientWuModule.Files.Add(clientFile);
            }

            _clientPolicy.WuModules.Add(clientWuModule);
        }
Esempio n. 2
0
 public ModuleWuManager(DtoClientWuModule module)
 {
     _moduleResult         = new DtoModuleResult();
     _moduleResult.Name    = module.DisplayName;
     _moduleResult.Guid    = module.Guid;
     _moduleResult.Success = true;
     _module = module;
 }