示例#1
0
 public ModulePrintManager(DtoClientPrinterModule module, EnumPolicy.Trigger policyTrigger)
 {
     _moduleResult         = new DtoModuleResult();
     _moduleResult.Name    = module.DisplayName;
     _moduleResult.Guid    = module.Guid;
     _moduleResult.Success = true;
     _module  = module;
     _trigger = policyTrigger;
 }
示例#2
0
        private void PrinterModule(EntityPolicyModules policyModule)
        {
            var clientPrinterModule = new DtoClientPrinterModule();
            var printerModule       = new ServicePrinterModule().GetModule(policyModule.ModuleId);

            clientPrinterModule.Guid               = printerModule.Guid;
            clientPrinterModule.DisplayName        = printerModule.Name;
            clientPrinterModule.PrinterPath        = printerModule.NetworkPath;
            clientPrinterModule.Order              = policyModule.Order;
            clientPrinterModule.IsDefault          = printerModule.IsDefault;
            clientPrinterModule.RestartSpooler     = printerModule.RestartSpooler;
            clientPrinterModule.PrinterAction      = printerModule.Action;
            clientPrinterModule.WaitForEnumeration = printerModule.WaitForEnumeration;

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

            _clientPolicy.PrinterModules.Add(clientPrinterModule);
        }