コード例 #1
0
        /// <summary>
        /// Executes the command.
        /// </summary>
        public override void ExecuteCmdlet()
        {
            base.ExecuteCmdlet();

            var httpJobAction = new PSHttpJobActionParams()
            {
                RequestMethod         = this.Method,
                Uri                   = this.Uri,
                RequestBody           = this.RequestBody,
                RequestHeaders        = this.Headers,
                RequestAuthentication = GetAuthenticationParams(),
            };

            JobActionType jobActionType;

            if (this.Uri.Scheme.Equals(Constants.HttpScheme, StringComparison.InvariantCultureIgnoreCase) ||
                this.Uri.Scheme.Equals(Constants.HttpsScheme, StringComparison.InvariantCultureIgnoreCase))
            {
                jobActionType = (JobActionType)Enum.Parse(typeof(JobActionType), this.Uri.Scheme, ignoreCase: true);
            }
            else
            {
                throw new PSArgumentException(string.Format(Resources.SchedulerInvalidUriScheme, this.Uri.Scheme));
            }

            var jobAction = new PSJobActionParams()
            {
                JobActionType = jobActionType,
                HttpJobAction = httpJobAction
            };

            var jobRecurrence = new PSJobRecurrenceParams()
            {
                Interval       = this.Interval,
                Frequency      = this.Frequency,
                EndTime        = this.EndTime,
                ExecutionCount = this.ExecutionCount
            };

            var jobParams = new PSJobParams()
            {
                ResourceGroupName = this.ResourceGroupName,
                JobCollectionName = this.JobCollectionName,
                JobName           = this.JobName,
                JobState          = this.JobState,
                StartTime         = this.StartTime,
                JobAction         = jobAction,
                JobRecurrence     = jobRecurrence,
                JobErrorAction    = this.GetErrorActionParamsValue(this.ErrorActionType)
            };

            this.ConfirmAction(
                processMessage: string.Format(Resources.NewHttpJobResourceDescription, this.JobName),
                target: this.JobCollectionName,
                action: () =>
            {
                this.WriteObject(this.SchedulerClient.CreateJob(jobParams));
            }
                );
        }
        /// <summary>
        /// Executes the command.
        /// </summary>
        public override void ExecuteCmdlet()
        {
            base.ExecuteCmdlet();

            var serviceBusAuthentication = new PSServiceBusAuthenticationParams()
            {
                SasKey     = this.ServiceBusSasKeyValue,
                SasKeyName = this.ServiceBusSasKeyName,
                Type       = Constants.SharedAccessKey
            };

            var servicBusQueue = new PSServiceBusParams()
            {
                Authentication    = serviceBusAuthentication,
                Message           = this.ServiceBusMessage,
                NamespaceProperty = this.ServiceBusNamespace,
                TopicPath         = this.ServiceBusTopicPath,
                TransportType     = this.ServiceBusTransportType
            };

            var jobAction = new PSJobActionParams()
            {
                JobActionType    = SchedulerModels.JobActionType.ServiceBusTopic,
                ServiceBusAction = servicBusQueue
            };

            var jobRecurrence = new PSJobRecurrenceParams()
            {
                Interval       = this.Interval,
                Frequency      = this.Frequency,
                EndTime        = this.EndTime,
                ExecutionCount = this.ExecutionCount
            };

            var jobParams = new PSJobParams()
            {
                ResourceGroupName = this.ResourceGroupName,
                JobCollectionName = this.JobCollectionName,
                JobName           = this.JobName,
                JobState          = this.JobState,
                StartTime         = this.StartTime,
                JobAction         = jobAction,
                JobRecurrence     = jobRecurrence,
                JobErrorAction    = this.GetErrorActionParamsValue(this.ErrorActionType)
            };

            this.ConfirmAction(
                processMessage: string.Format(Resources.NewServiceBusTopicJobResourceDescription, this.JobName),
                target: this.JobCollectionName,
                action: () =>
            {
                this.WriteObject(this.SchedulerClient.CreateJob(jobParams));
            }
                );
        }
        /// <summary>
        /// Executes the command.
        /// </summary>
        public override void ExecuteCmdlet()
        {
            base.ExecuteCmdlet();

            var storageJobAction = new PSStorageJobActionParams()
            {
                StorageAccount      = this.StorageQueueAccount,
                StorageQueueMessage = this.StorageQueueMessage,
                StorageQueueName    = this.StorageQueueName,
                StorageSasToken     = this.StorageSASToken
            };

            var jobAction = new PSJobActionParams()
            {
                JobActionType    = SchedulerModels.JobActionType.StorageQueue,
                StorageJobAction = storageJobAction
            };

            var jobRecurrence = new PSJobRecurrenceParams()
            {
                Interval       = this.Interval,
                Frequency      = this.Frequency,
                EndTime        = this.EndTime,
                ExecutionCount = this.ExecutionCount
            };

            var jobParams = new PSJobParams()
            {
                ResourceGroupName = this.ResourceGroupName,
                JobCollectionName = this.JobCollectionName,
                JobName           = this.JobName,
                JobState          = this.JobState,
                StartTime         = this.StartTime,
                JobAction         = jobAction,
                JobRecurrence     = jobRecurrence,
                JobErrorAction    = this.GetErrorActionParamsValue(this.ErrorActionType)
            };

            this.ConfirmAction(
                processMessage: string.Format(Resources.UpdateStorageQueueJobResourceDescription, this.JobName),
                target: this.JobCollectionName,
                action: () =>
            {
                this.WriteObject(this.SchedulerClient.UpdateJob(jobParams));
            }
                );
        }
コード例 #4
0
        /// <summary>
        /// Gets existing job recurrence.
        /// </summary>
        /// <param name="updateRecurrenceParams">Recurrence properties specified via PowerShell.</param>
        /// <param name="recurrence">Existing job recurrence property.</param>
        /// <returns>JobRecurrence object.</returns>
        private JobRecurrence GetExistingJobRecurrence(PSJobRecurrenceParams updateRecurrenceParams, JobRecurrence recurrence)
        {
            if (updateRecurrenceParams != null)
            {
                if (recurrence == null)
                {
                    return(this.GetJobRecurrence(updateRecurrenceParams));
                }

                recurrence.Count     = updateRecurrenceParams.ExecutionCount ?? recurrence.Count;
                recurrence.EndTime   = updateRecurrenceParams.EndTime ?? recurrence.EndTime;
                recurrence.Frequency = updateRecurrenceParams.Frequency.GetValueOrDefaultEnum <RecurrenceFrequency?>(defaultValue: recurrence.Frequency);
                recurrence.Interval  = updateRecurrenceParams.Interval ?? recurrence.Interval;
            }

            return(recurrence);
        }
コード例 #5
0
        /// <summary>
        /// Gets job recurrence.
        /// </summary>
        /// <param name="jobRecurrenceParams">Job recurrence properties specified via PowerShell.</param>
        /// <returns>JobRecurrence object.</returns>
        private JobRecurrence GetJobRecurrence(PSJobRecurrenceParams jobRecurrenceParams)
        {
            if (jobRecurrenceParams != null &&
                (jobRecurrenceParams.Interval != null ||
                 jobRecurrenceParams.ExecutionCount != null ||
                 !string.IsNullOrWhiteSpace(jobRecurrenceParams.Frequency) ||
                 jobRecurrenceParams.EndTime != null))
            {
                var jobRecurrence = new JobRecurrence()
                {
                    Count     = jobRecurrenceParams.ExecutionCount ?? default(int?),
                    Interval  = jobRecurrenceParams.Interval ?? default(int?),
                    EndTime   = jobRecurrenceParams.EndTime ?? default(DateTime?),
                    Frequency = jobRecurrenceParams.Frequency.GetValueOrDefaultEnum <RecurrenceFrequency?>(defaultValue: null)
                };

                return(jobRecurrence);
            }

            return(null);
        }