public override void ExecuteCmdlet()
        {
            if (ShouldProcess(Name, Properties.Resources.UpdateIotHub))
            {
                IotHubDescription iotHubDescription = this.IotHubClient.IotHubResource.Get(this.ResourceGroupName, this.Name);

                switch (ParameterSetName)
                {
                case UpdateSkuParameterSet:

                    var psIotHubSku = new PSIotHubSkuInfo()
                    {
                        Name     = this.SkuName,
                        Capacity = this.Units
                    };

                    iotHubDescription.Sku = IotHubUtils.ToIotHubSku(psIotHubSku);
                    break;

                case UpdateEventHubEndpointPropertiesParameterSet:

                    iotHubDescription.Properties.EventHubEndpoints["events"].RetentionTimeInDays = this.EventHubRetentionTimeInDays;
                    break;

                case UpdateFileUploadPropertiesParameterSet:

                    iotHubDescription.Properties.EnableFileUploadNotifications = this.EnableFileUploadNotifications;

                    if (this.FileUploadStorageConnectionString != null)
                    {
                        iotHubDescription.Properties.StorageEndpoints["$default"].ConnectionString = this.FileUploadStorageConnectionString;
                    }

                    if (this.FileUploadContainerName != null)
                    {
                        iotHubDescription.Properties.StorageEndpoints["$default"].ContainerName = this.FileUploadContainerName;
                    }

                    if (this.FileUploadSasUriTtl != null)
                    {
                        iotHubDescription.Properties.StorageEndpoints["$default"].SasTtlAsIso8601 = this.FileUploadSasUriTtl;
                    }

                    if (this.FileUploadNotificationTtl != null)
                    {
                        iotHubDescription.Properties.MessagingEndpoints["fileNotifications"].TtlAsIso8601 = this.FileUploadNotificationTtl;
                    }

                    if (this.FileUploadNotificationMaxDeliveryCount != null)
                    {
                        iotHubDescription.Properties.MessagingEndpoints["fileNotifications"].MaxDeliveryCount = (int)this.FileUploadNotificationMaxDeliveryCount;
                    }

                    break;

                case UpdateCloudToDevicePropertiesParameterSet:

                    if (this.CloudToDevice != null)
                    {
                        iotHubDescription.Properties.CloudToDevice = IotHubUtils.ToCloudToDeviceProperties(this.CloudToDevice);
                    }

                    break;

                case UpdateRoutingPropertiesParameterSet:

                    if (this.RoutingProperties != null)
                    {
                        iotHubDescription.Properties.Routing = IotHubUtils.ToRoutingProperties(this.RoutingProperties);
                    }

                    break;

                case UpdateRoutePropertiesParameterSet:

                    if (this.Routes != null)
                    {
                        iotHubDescription.Properties.Routing.Routes = IotHubUtils.ToRouteProperties(this.Routes);
                    }

                    break;

                case UpdateFallbackRoutePropertyParameterSet:

                    if (this.FallbackRoute != null)
                    {
                        iotHubDescription.Properties.Routing.FallbackRoute = IotHubUtils.ToFallbackRouteProperty(this.FallbackRoute);
                    }

                    break;


                default:
                    throw new ArgumentException("BadParameterSetName");
                }

                this.IotHubClient.IotHubResource.CreateOrUpdate(this.ResourceGroupName, this.Name, iotHubDescription);
                IotHubDescription updatedIotHubDescription = this.IotHubClient.IotHubResource.Get(this.ResourceGroupName, this.Name);
                this.WriteObject(IotHubUtils.ToPSIotHub(updatedIotHubDescription), false);
            }
        }
Ejemplo n.º 2
0
 public static IotHubSkuInfo ToIotHubSku(PSIotHubSkuInfo psIotHubSkuInfo)
 {
     return(ConvertObject <PSIotHubSkuInfo, IotHubSkuInfo>(psIotHubSkuInfo));
 }