/// <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,
                QueueName = this.ServiceBusQueueName,
                TransportType = this.ServiceBusTransportType
            };

            var jobAction = new PSJobActionParams()
            {
                JobActionType = SchedulerModels.JobActionType.ServiceBusQueue,
                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.NewServiceBusQueueJobResourceDescription, this.JobName),
                target: this.JobCollectionName,
                action: () =>
                {
                    this.WriteObject(this.SchedulerClient.CreateJob(jobParams));
                }
            );
        }
コード例 #2
0
        /// <summary>
        /// Populates Service bus message object with valid values.
        /// </summary>
        /// <param name="serviceBusQueueActionParams">Service bus properties specified via PowerShell.</param>
        /// <param name="serviceBusMessage">Servce message object to be populated.</param>
        private void PopulateServiceBusMessage(PSServiceBusParams serviceBusQueueActionParams, ServiceBusMessage serviceBusMessage)
        {
            if (string.IsNullOrWhiteSpace(serviceBusQueueActionParams.NamespaceProperty) ||
                string.IsNullOrWhiteSpace(serviceBusQueueActionParams.Message) ||
                string.IsNullOrWhiteSpace(serviceBusQueueActionParams.TransportType))
            {
                throw new PSManagement.PSArgumentException(Resources.SchedulerInvalidServiceBus);
            }

            if (serviceBusMessage == null)
            {
                throw new ArgumentException("serviceBusMessage: Object must be initialized");
            }

            ServiceBusAuthentication authentication = this.GetServiceBusAuthentication(serviceBusQueueActionParams.Authentication);

            serviceBusMessage.Authentication = this.GetServiceBusAuthentication(serviceBusQueueActionParams.Authentication);
            serviceBusMessage.Message = serviceBusQueueActionParams.Message;
            serviceBusMessage.NamespaceProperty = serviceBusQueueActionParams.NamespaceProperty;
            serviceBusMessage.TransportType = serviceBusQueueActionParams.TransportType.GetValueOrDefaultEnum<ServiceBusTransportType>(defaultValue: ServiceBusTransportType.NetMessaging);
        }
コード例 #3
0
 /// <summary>
 /// Update service bus properties.
 /// </summary>
 /// <param name="serviceBusParams">Service bus message properties specified via PowerShell.</param>
 /// <param name="existingServiceBusMessage">Existing job's service bus message properties.</param>
 private void UpdateServiceBus(PSServiceBusParams serviceBusParams, ServiceBusMessage existingServiceBusMessage)
 {
     if (existingServiceBusMessage != null)
     {
         existingServiceBusMessage.TransportType = serviceBusParams.TransportType.GetValueOrDefaultEnum<ServiceBusTransportType?>(defaultValue: existingServiceBusMessage.TransportType);
         existingServiceBusMessage.NamespaceProperty = serviceBusParams.NamespaceProperty.GetValueOrDefault(defaultValue: existingServiceBusMessage.NamespaceProperty);
         existingServiceBusMessage.Message = serviceBusParams.Message.GetValueOrDefault(defaultValue: existingServiceBusMessage.Message);
         
         this.PopulateServiceBusAuthentication(serviceBusParams.Authentication, existingServiceBusMessage.Authentication);
     }
 }
コード例 #4
0
        /// <summary>
        /// Get Service bus topic.
        /// </summary>
        /// <param name="serviceBusQueueActionParams">Servie bus properities specified via PowerShell.</param>
        /// <returns>ServiceBusTopicMessage object.</returns>
        private ServiceBusTopicMessage GetServiceBusTopic(PSServiceBusParams serviceBusQueueActionParams)
        {
            if (string.IsNullOrWhiteSpace(serviceBusQueueActionParams.TopicPath))
            {
                throw new PSManagement.PSArgumentException(Resources.SchedulerInvalidServiceBusTopicPath);
            }

            var serviceBusTopicMessage = new ServiceBusTopicMessage()
            {
                TopicPath = serviceBusQueueActionParams.TopicPath
            };

            this.PopulateServiceBusMessage(serviceBusQueueActionParams, serviceBusTopicMessage);

            return serviceBusTopicMessage;
        }