Пример #1
0
        public async Task <IActionResult> SetFirewallSettings(
            [HttpTrigger(AuthorizationLevel.Function, "patch", "post", Route = "subscriptions/{subscriptionId}/groups/{group}/analysisservers/{server}/firewallsettings")] HttpRequestMessage req, string subscriptionId, string group, string server)
        {
            IpV4FirewallSettings firewallSettings = await req.Content.ReadAsAsync <IpV4FirewallSettings>();

            if (firewallSettings == null)
            {
                return(new BadRequestObjectResult(new ArgumentNullException("message body invalid or not found")));
            }

            var accessToken = await aadService.GetAccessTokenAsync();

            var result = await analysisService.SetFirewallRulesAsync(accessToken, subscriptionId, group, server, firewallSettings);

            if (result.IsSuccessStatusCode)
            {
                return(new OkResult());
            }
            else
            {
                return(new BadRequestObjectResult(result.ReasonPhrase));
            }
        }
Пример #2
0
        public async Task <HttpResponseMessage> SetFirewallRulesAsync(string accessToken, string subscriptionId, string resourceGroup, string serverName, IpV4FirewallSettings firewallSettings)
        {
            log.LogTrace(JsonConvert.SerializeObject(firewallSettings));
            var defaultRequestHeaders = httpClient.DefaultRequestHeaders;

            if (defaultRequestHeaders.Accept == null || !defaultRequestHeaders.Accept.Any(m => m.MediaType == "application/json"))
            {
                httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            }
            defaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", accessToken);

            var server = new AzureAnalysisServer {
                properties = new Properties {
                    ipV4FirewallSettings = firewallSettings
                }
            };
            var json    = JsonConvert.SerializeObject(server);
            var content = new StringContent(json, Encoding.UTF8, "application/json");

            return(await httpClient.PatchAsync(string.Format(webApiUrlFormat, subscriptionId, resourceGroup, serverName), content));
        }