/// <summary> /// Performs all steps required for the secure publish including building, resolving deployment settings, resolving key vault, and deploying files and custom activities to Azure. /// </summary> public async Task BuildAndSecurePublish(string projectPath, DataFactoryInfo dataFactory) { string dataFactoryName = dataFactory.Name; string dataFactoryResourceGroup = dataFactory.ResourceGroup; AdfBuild build = new AdfBuild(logger); Task <bool> buildTask = build.Build(projectPath); Task schemaDownloadTask = adfFileHelper.GetSchemas(httpClient); bool buildResult = await buildTask; await schemaDownloadTask; if (buildResult) { // Only debug builds are currently supported by the ADF build process string adfOutputFolder = Path.Combine(Path.GetDirectoryName(projectPath), @"bin\debug"); var publishResult = await PublishFromOutputFolder(adfOutputFolder, dataFactoryResourceGroup, dataFactoryName); if (publishResult) { logger.Write(string.Empty); logger.Write("Publish complete", "Black"); logger.Write(string.Empty); } } else { logger.Write("Build failed", "Red"); logger.Write(string.Empty); } }
public static async Task <List <DataFactoryInfo> > GetDataFactories(SettingsContext settingsContext) { var dataFactories = new List <DataFactoryInfo>(); string uri = $"https://management.azure.com/subscriptions/{settingsContext.SubscriptionId}/resources?$filter=resourceType%20eq%20'Microsoft.DataFactory%2Fdatafactories'&api-version=2014-04-01-preview"; HttpResponseMessage response = await ExecuteArmRequest(settingsContext, HttpMethod.Get, uri); string responseText = response.Content.ReadAsStringAsync().Result; var jObject = JObject.Parse(responseText); var itemArray = jObject["value"] as JArray; if (itemArray != null) { foreach (JToken jToken in itemArray) { JObject item = jToken as JObject; string id = item?["id"].ToObject <string>(); string resourceGroup = string.Empty; if (!string.IsNullOrEmpty(id)) { resourceGroup = id.Split('/')[4]; } DataFactoryInfo dfi = new DataFactoryInfo { SubscriptionId = settingsContext.SubscriptionId, Location = item?["location"].ToObject <string>(), Name = item?["name"].ToObject <string>(), ResourceGroup = resourceGroup }; dataFactories.Add(dfi); } } return(dataFactories); }
private async void publishButton_Click(object sender, RoutedEventArgs e) { try { publishButton.IsEnabled = false; Write("Starting Secure Publish", "Black"); Write(string.Empty); DataFactoryInfo choosenDataFactory = dataFactoryList.Single(x => x.Name == dataFactory); await publishManager.BuildAndSecurePublish(projName, choosenDataFactory); } catch (Exception ex) { Write("An error occurred: " + ex.Message, "Red"); WriteError(ex); } publishButton.IsEnabled = true; }