/// <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, 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)); } ); }
/// <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) }; }