public async Task UpgradeSwaggerApi(string aid, ApiMetadataDTO metadata)
        {
            using (var httpClient = await this._httpClientFactory.Create(UrisTemplate.GetBaseApiManagementUri(metadata.TenantName)))
            {
                httpClient.DefaultRequestHeaders.Add("If-Match", "*");

                var requestParams = new Dictionary <string, string>()
                {
                    { "link", metadata.SwaggerUrl }
                };

                var content      = new StringContent(JsonConvert.SerializeObject(requestParams), Encoding.UTF8, "application/vnd.swagger.link+json");
                var httpResponse = await httpClient.PutAsync(UrisTemplate.GetSwaggerImportUri(aid, metadata.AzureApiVersion), content);

                httpResponse.EnsureSuccessStatusCode();
            }
        }
        public async Task <AsociatedApi> GetAsociatedApi(ApiMetadataDTO metadata)
        {
            using (var httpClient = await this._httpClientFactory.Create(UrisTemplate.GetBaseApiManagementUri(metadata.TenantName)))
            {
                var httpResponse = await httpClient.GetAsync(UrisTemplate.GetAllApisUri(metadata.AzureApiVersion)).ConfigureAwait(false);

                httpResponse.EnsureSuccessStatusCode();

                var apis = JsonConvert.DeserializeObject <ApisRootObject>(
                    await httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false)
                    );

                var apiObj = apis.value.Where(api => api.name.ToLower() == metadata.ApiName.ToLower()).FirstOrDefault();

                return(new AsociatedApi(apiObj.id));
            }
        }
        public async Task <bool> GetPolicy(string aid, ApiMetadataDTO metadata)
        {
            using (var httpClient = await this._httpClientFactory.Create(UrisTemplate.GetBaseApiManagementUri(metadata.TenantName)))
            {
                var httpResponse = await httpClient.GetAsync(UrisTemplate.GetPolicyTemplate(aid, metadata.AzureApiVersion));

                try
                {
                    httpResponse.EnsureSuccessStatusCode();
                }
                catch (WebException)
                {
                    if (httpResponse.StatusCode == HttpStatusCode.NotFound)
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }