コード例 #1
0
        public override void ExecuteCmdlet()
        {
            if (ShouldProcess(EndpointName, Properties.Resources.AddIotHubRoutingEndpoint))
            {
                IotHubDescription iotHubDescription;
                if (ParameterSetName.Equals(InputObjectParameterSet))
                {
                    this.ResourceGroupName = this.InputObject.Resourcegroup;
                    this.Name         = this.InputObject.Name;
                    iotHubDescription = IotHubUtils.ConvertObject <PSIotHub, IotHubDescription>(this.InputObject);
                }
                else
                {
                    if (ParameterSetName.Equals(ResourceIdParameterSet))
                    {
                        this.ResourceGroupName = IotHubUtils.GetResourceGroupName(this.ResourceId);
                        this.Name = IotHubUtils.GetIotHubName(this.ResourceId);
                    }

                    iotHubDescription = this.IotHubClient.IotHubResource.Get(this.ResourceGroupName, this.Name);
                }

                switch (this.EndpointType)
                {
                case PSEndpointType.EventHub:
                    iotHubDescription.Properties.Routing.Endpoints.EventHubs.Add(
                        new RoutingEventHubProperties()
                    {
                        Name             = this.EndpointName,
                        ConnectionString = this.ConnectionString,
                        ResourceGroup    = this.EndpointResourceGroup,
                        SubscriptionId   = this.EndpointSubscriptionId
                    });
                    break;

                case PSEndpointType.ServiceBusQueue:
                    iotHubDescription.Properties.Routing.Endpoints.ServiceBusQueues.Add(
                        new RoutingServiceBusQueueEndpointProperties()
                    {
                        Name             = this.EndpointName,
                        ConnectionString = this.ConnectionString,
                        ResourceGroup    = this.EndpointResourceGroup,
                        SubscriptionId   = this.EndpointSubscriptionId
                    });
                    break;

                case PSEndpointType.ServiceBusTopic:
                    iotHubDescription.Properties.Routing.Endpoints.ServiceBusTopics.Add(
                        new RoutingServiceBusTopicEndpointProperties()
                    {
                        Name             = this.EndpointName,
                        ConnectionString = this.ConnectionString,
                        ResourceGroup    = this.EndpointResourceGroup,
                        SubscriptionId   = this.EndpointSubscriptionId
                    });
                    break;

                case PSEndpointType.AzureStorageContainer:
                    iotHubDescription.Properties.Routing.Endpoints.StorageContainers.Add(
                        new RoutingStorageContainerProperties()
                    {
                        Name             = this.EndpointName,
                        ConnectionString = this.ConnectionString,
                        ResourceGroup    = this.EndpointResourceGroup,
                        SubscriptionId   = this.EndpointSubscriptionId,
                        ContainerName    = this.routingEndpointDynamicParameter.ContainerName,
                        Encoding         = this.routingEndpointDynamicParameter.Encoding
                    });
                    break;
                }

                this.IotHubClient.IotHubResource.CreateOrUpdate(this.ResourceGroupName, this.Name, iotHubDescription);
                IotHubDescription updatedIotHubDescription = this.IotHubClient.IotHubResource.Get(this.ResourceGroupName, this.Name);

                switch (this.EndpointType)
                {
                case PSEndpointType.EventHub:
                    this.WriteObject(IotHubUtils.ToPSRoutingEventHubEndpoint(updatedIotHubDescription.Properties.Routing.Endpoints.EventHubs.FirstOrDefault(x => x.Name.Equals(this.EndpointName, StringComparison.OrdinalIgnoreCase))), false);
                    break;

                case PSEndpointType.ServiceBusQueue:
                    this.WriteObject(IotHubUtils.ToPSRoutingServiceBusQueueEndpoint(updatedIotHubDescription.Properties.Routing.Endpoints.ServiceBusQueues.FirstOrDefault(x => x.Name.Equals(this.EndpointName, StringComparison.OrdinalIgnoreCase))), false);
                    break;

                case PSEndpointType.ServiceBusTopic:
                    this.WriteObject(IotHubUtils.ToPSRoutingServiceBusTopicEndpoint(updatedIotHubDescription.Properties.Routing.Endpoints.ServiceBusTopics.FirstOrDefault(x => x.Name.Equals(this.EndpointName, StringComparison.OrdinalIgnoreCase))), false);
                    break;

                case PSEndpointType.AzureStorageContainer:
                    this.WriteObject(IotHubUtils.ToPSRoutingStorageContainerEndpoint(updatedIotHubDescription.Properties.Routing.Endpoints.StorageContainers.FirstOrDefault(x => x.Name.Equals(this.EndpointName, StringComparison.OrdinalIgnoreCase))), false);
                    break;
                }
            }
        }
コード例 #2
0
        private void WriteEndpointObject(IotHubDescription iotHubDescription, PSEndpointType psEndpointType, string endpointName)
        {
            switch (psEndpointType)
            {
            case PSEndpointType.EventHub:
                if (string.IsNullOrEmpty(endpointName))
                {
                    if (iotHubDescription.Properties.Routing.Endpoints.EventHubs.Count == 1)
                    {
                        this.WriteObject(IotHubUtils.ToPSRoutingEventHubEndpoint(iotHubDescription.Properties.Routing.Endpoints.EventHubs[0]), false);
                    }
                    else
                    {
                        this.WriteObject(IotHubUtils.ToPSRoutingEventHubProperties(iotHubDescription.Properties.Routing.Endpoints.EventHubs), true);
                    }
                }
                else
                {
                    this.WriteObject(IotHubUtils.ToPSRoutingEventHubEndpoint(iotHubDescription.Properties.Routing.Endpoints.EventHubs.FirstOrDefault(x => x.Name.Equals(endpointName, StringComparison.OrdinalIgnoreCase))), false);
                }
                break;

            case PSEndpointType.ServiceBusQueue:
                if (string.IsNullOrEmpty(endpointName))
                {
                    if (iotHubDescription.Properties.Routing.Endpoints.ServiceBusQueues.Count == 1)
                    {
                        this.WriteObject(IotHubUtils.ToPSRoutingServiceBusQueueEndpoint(iotHubDescription.Properties.Routing.Endpoints.ServiceBusQueues[0]), false);
                    }
                    else
                    {
                        this.WriteObject(IotHubUtils.ToPSRoutingServiceBusQueueEndpointProperties(iotHubDescription.Properties.Routing.Endpoints.ServiceBusQueues), true);
                    }
                }
                else
                {
                    this.WriteObject(IotHubUtils.ToPSRoutingServiceBusQueueEndpoint(iotHubDescription.Properties.Routing.Endpoints.ServiceBusQueues.FirstOrDefault(x => x.Name.Equals(endpointName, StringComparison.OrdinalIgnoreCase))), false);
                }
                break;

            case PSEndpointType.ServiceBusTopic:
                if (string.IsNullOrEmpty(endpointName))
                {
                    if (iotHubDescription.Properties.Routing.Endpoints.ServiceBusTopics.Count == 1)
                    {
                        this.WriteObject(IotHubUtils.ToPSRoutingServiceBusTopicEndpoint(iotHubDescription.Properties.Routing.Endpoints.ServiceBusTopics[0]), false);
                    }
                    else
                    {
                        this.WriteObject(IotHubUtils.ToPSRoutingServiceBusTopicEndpointProperties(iotHubDescription.Properties.Routing.Endpoints.ServiceBusTopics), true);
                    }
                }
                else
                {
                    this.WriteObject(IotHubUtils.ToPSRoutingServiceBusTopicEndpoint(iotHubDescription.Properties.Routing.Endpoints.ServiceBusTopics.FirstOrDefault(x => x.Name.Equals(endpointName, StringComparison.OrdinalIgnoreCase))), false);
                }
                break;

            case PSEndpointType.AzureStorageContainer:
                if (string.IsNullOrEmpty(endpointName))
                {
                    if (iotHubDescription.Properties.Routing.Endpoints.StorageContainers.Count == 1)
                    {
                        this.WriteObject(IotHubUtils.ToPSRoutingStorageContainerEndpoint(iotHubDescription.Properties.Routing.Endpoints.StorageContainers[0]), false);
                    }
                    else
                    {
                        this.WriteObject(IotHubUtils.ToPSRoutingStorageContainerProperties(iotHubDescription.Properties.Routing.Endpoints.StorageContainers), true);
                    }
                }
                else
                {
                    this.WriteObject(IotHubUtils.ToPSRoutingStorageContainerEndpoint(iotHubDescription.Properties.Routing.Endpoints.StorageContainers.FirstOrDefault(x => x.Name.Equals(endpointName, StringComparison.OrdinalIgnoreCase))), false);
                }
                break;
            }
        }