示例#1
0
 /// <summary>
 /// Populates service bus authentication properties.
 /// </summary>
 /// <param name="serviceBusAuthentication">Service bus authentication properties specified via PowerShell.</param>
 /// <param name="existingServiceBusAuthentication">Existing job's service bus authentication properties.</param>
 private void PopulateServiceBusAuthentication(PSServiceBusAuthenticationParams serviceBusAuthentication, ServiceBusAuthentication existingServiceBusAuthentication)
 {
     if (serviceBusAuthentication != null)
     {
         existingServiceBusAuthentication.SasKey     = serviceBusAuthentication.SasKey.GetValueOrDefault(defaultValue: existingServiceBusAuthentication.SasKey);
         existingServiceBusAuthentication.SasKeyName = serviceBusAuthentication.SasKeyName.GetValueOrDefault(defaultValue: existingServiceBusAuthentication.SasKeyName);
         existingServiceBusAuthentication.Type       = serviceBusAuthentication.Type.GetValueOrDefaultEnum <ServiceBusAuthenticationType?>(defaultValue: existingServiceBusAuthentication.Type);
     }
 }
        /// <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));
            }
                );
        }
示例#3
0
        /// <summary>
        /// Get service bus authentication.
        /// </summary>
        /// <param name="serviceBusAuthenticationParams">Service bus authentication properties specified via PowerShell</param>
        /// <returns>ServiceBusAuthentication instance.</returns>
        private ServiceBusAuthentication GetServiceBusAuthentication(PSServiceBusAuthenticationParams serviceBusAuthenticationParams)
        {
            if (serviceBusAuthenticationParams == null ||
                string.IsNullOrWhiteSpace(serviceBusAuthenticationParams.SasKeyName) ||
                string.IsNullOrWhiteSpace(serviceBusAuthenticationParams.SasKey) ||
                string.IsNullOrWhiteSpace(serviceBusAuthenticationParams.Type))
            {
                throw new PSManagement.PSArgumentException();
            }

            return(new ServiceBusAuthentication()
            {
                SasKey = serviceBusAuthenticationParams.SasKey,
                SasKeyName = serviceBusAuthenticationParams.SasKeyName,
                Type = serviceBusAuthenticationParams.Type.GetValueOrDefaultEnum <ServiceBusAuthenticationType>(defaultValue: ServiceBusAuthenticationType.NotSpecified)
            });
        }