public static void ProcessRecordEx(PrtgOperationCmdlet cmdlet, Action <Action, string> executeOperation, TriggerParameters parameters, Action executeAndResolve = null, string whatIfAction = null, string whatIfTarget = null)
        {
            if (whatIfAction == null)
            {
                whatIfAction = cmdlet.MyInvocation.MyCommand.Name;
            }

            if (whatIfTarget == null)
            {
                whatIfTarget = $"Object ID: {parameters.ObjectId} (Type: {parameters.Type}, Action: {parameters.OnNotificationAction})";
            }

            if (cmdlet.ShouldProcess(whatIfTarget, whatIfAction))
            {
                if (cmdlet is AddNotificationTrigger)
                {
                    executeOperation(() =>
                    {
                        if (executeAndResolve == null)
                        {
                            PrtgSessionState.Client.AddNotificationTrigger(parameters, false);
                        }
                        else
                        {
                            executeAndResolve();
                        }
                    }, $"Adding notification trigger '{parameters.OnNotificationAction?.Name ?? "None"}' to object ID {parameters.ObjectId}");
                }
                else
                {
                    executeOperation(() => PrtgSessionState.Client.SetNotificationTrigger(parameters), $"Updating notification trigger with ID {parameters.ObjectId} (Sub ID: {parameters.SubId})");
                }
            }
        }
示例#2
0
 internal InternalSetSubObjectPropertyCmdlet(
     PrtgOperationCmdlet cmdlet,
     string objectTypeDescription,
     string subObjectTypeDescription,
     Func <TProperty, object, TParameter> createParameter,
     Action <TObject, TParameter[]> setObjectProperty,
     Action <List <TObject>, TParameter[]> setObjectPropertyList,
     Action <int, int, TParameter[]> setObjectPropertyManual,
     Func <Enum, Type> getPropertyType)
 {
     this.cmdlet = cmdlet;
     this.objectTypeDescription    = objectTypeDescription;
     this.subObjectTypeDescription = subObjectTypeDescription;
     this.createParameter          = createParameter;
     this.setObjectProperty        = setObjectProperty;
     this.setObjectPropertyList    = setObjectPropertyList;
     this.setObjectPropertyManual  = setObjectPropertyManual;
     this.getPropertyType          = getPropertyType;
 }