private static async Task SetupServerAsync(SqlManagementControllerParameters parameters, int step) { using (var controller = new SqlManagementController(parameters.PublishSettingsFilePath)) { Console.WriteLine("\n{1}. Create logical Server in Region {0}", parameters.ServerRegion, step); ConsoleContinuePrompt("Create"); var t = Task.Run <ServerCreateResponse>(() => { return(controller.CreateServerAsync(parameters.ServerRegion, parameters.ServerAdminUsername, parameters.ServerAdminPassword)); }); WaitForStatus(t); // now that the task is done, save the returned Server Name in to a global variable // so that we can use it again later when creating the Firewall Rules and Database etc. _serverName = t.Result.ServerName; if (parameters.FirewallRuleAllowAzureServices) { Console.WriteLine("\n{1}. Adding Firewall rules for Azure Services on server {0}", _serverName, step); Task p = Task.Run(() => controller.ConfigureFirewallAsync(_serverName, "Azure Services", parameters.FirewallRuleStartIP, parameters.FirewallRuleEndIP)); WaitForStatus(p); } Console.WriteLine("\n...Complete"); } }
private static async Task ConfigureFirewallAsync(SqlManagementControllerParameters parameters, int step) { using (var controller = new SqlManagementController(parameters.PublishSettingsFilePath)) { Console.WriteLine("\n{1}. Adding Firewall rules for server {0}", _serverName, step); ConsoleContinuePrompt("Create"); Task t = Task.Run(() => controller.ConfigureFirewallAsync(_serverName, parameters.FirewallRuleName, parameters.FirewallRuleStartIP, parameters.FirewallRuleEndIP)); WaitForStatus(t); Console.WriteLine("\n...Complete"); } }