Esempio n. 1
0
        private async Task AssignApisToProducts(DeploymentTemplate template)
        {
            var products = await resourceCollector.GetResource(GetAPIMResourceIDString() + "/products");

            foreach (JObject productObject in (products == null ? new JArray() : products.Value <JArray>("value")))
            {
                var id = productObject.Value <string>("id");
                var productInstance = await resourceCollector.GetResource(id);

                var productApis = await resourceCollector.GetResource(id + "/apis", (string.IsNullOrEmpty(apiFilters) ? "" : $"$filter={apiFilters}"));

                // Skip product if not related to an API in the filter.
                if (productApis != null && productApis.Value <JArray>("value").Count > 0)
                {
                    foreach (JObject productApi in (productApis == null ? new JArray() : productApis.Value <JArray>("value")))
                    {
                        var productProperties = productApi["properties"];
                        if (productProperties["apiVersionSetId"] != null)
                        {
                            var apiVersionSetId = new AzureResourceId(productProperties["apiVersionSetId"].ToString()).ValueAfter("api-version-sets");
                            productProperties["apiVersionSetId"] = $"[resourceId('Microsoft.ApiManagement/service/api-version-sets', parameters('{GetServiceName(servicename)}'), '{apiVersionSetId}')]";
                        }

                        template.resources.Add(template.AddProductApi(productApi));
                    }
                }
            }
        }