/// <summary> /// Method to export Dashboard jsons form source project /// </summary> /// <param name="project"></param> public void GetDashboard(string project) { try { string dashBoardId = string.Empty; using (var clientOne = new HttpClient()) { clientOne.BaseAddress = new Uri(_sourceConfig.UriString); clientOne.DefaultRequestHeaders.Accept.Clear(); clientOne.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); clientOne.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", _sourceCredentials); HttpResponseMessage response = clientOne.GetAsync(project + "/_apis/Dashboard/Dashboards/??api-version=3.0-preview.2").Result; if (response.IsSuccessStatusCode) { DashBoardResponse.Dashboard dashBoard = response.Content.ReadAsAsync <DashBoardResponse.Dashboard>().Result; dashBoardId = dashBoard.dashboardEntries[0].id; } } if (!(string.IsNullOrEmpty(dashBoardId))) { using (var client = new HttpClient()) { client.BaseAddress = new Uri(_sourceConfig.UriString); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", _sourceCredentials); HttpResponseMessage response = client.GetAsync(project + "/" + project + "%20Team/_apis/Dashboard/Dashboards/" + dashBoardId + "/Widgets/?api-version=3.0-preview.2").Result; if (response.IsSuccessStatusCode) { if (!Directory.Exists(@"Templates\Dashboard")) { Directory.CreateDirectory(@"Templates\Dashboard"); } System.IO.File.WriteAllText(@"Templates\Dashboard\" + dashBoardId + ".json", response.Content.ReadAsStringAsync().Result); } } } } catch (Exception ex) { Console.WriteLine("Error occured while generating Dashboard template: " + ex.Message); Console.WriteLine(""); } }
public void GetWidgetsAndCharts(string project, Dictionary <string, string> QueryList) { string dashBoardId = string.Empty; using (var clientOne = new HttpClient()) { clientOne.BaseAddress = new Uri(_sourceConfig.UriString); clientOne.DefaultRequestHeaders.Accept.Clear(); clientOne.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); clientOne.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", _sourceCredentials); HttpResponseMessage response = clientOne.GetAsync(project + "/_apis/Dashboard/Dashboards/??api-version=3.0-preview.2").Result; if (response.IsSuccessStatusCode) { DashBoardResponse.Dashboard dashBoard = response.Content.ReadAsAsync <DashBoardResponse.Dashboard>().Result; dashBoardId = dashBoard.dashboardEntries[0].id; } } if (!(string.IsNullOrEmpty(dashBoardId))) { using (var client = new HttpClient()) { client.BaseAddress = new Uri(_sourceConfig.UriString); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", _sourceCredentials); HttpResponseMessage response = client.GetAsync(project + "/" + project + "%20Team/_apis/Dashboard/Dashboards/" + dashBoardId + "/Widgets/?api-version=3.0-preview.2").Result; if (response.IsSuccessStatusCode) { WidgetAndChartResponse.Widget Widgets = response.Content.ReadAsAsync <WidgetAndChartResponse.Widget>().Result; if (Widgets.count > 0) { if (!Directory.Exists(@"Templates\ChartsAndWidgets")) { Directory.CreateDirectory(@"Templates\ChartsAndWidgets"); } foreach (WidgetAndChartResponse.Value widget in Widgets.value) { if (!string.IsNullOrEmpty(widget.settings)) { //string widgetName = string.Empty; foreach (var query in QueryList) { if (widget.settings.Contains(query.Key)) { //widgetName = query.Value; widget.settings = widget.settings.Replace(query.Key, "$QueryId$"); break; } } if (widget.settings.Contains("queryId")) { if (!Directory.Exists(@"Templates\ChartsAndWidgets\Widgets")) { Directory.CreateDirectory(@"Templates\ChartsAndWidgets\Widgets"); } //if (string.IsNullOrEmpty(widgetName)) { widgetName = widget.name; } System.IO.File.WriteAllText(@"Templates\ChartsAndWidgets\Widgets\" + widget.name + ".json", JsonConvert.SerializeObject(widget, Formatting.Indented)); } else { if (!Directory.Exists(@"Templates\ChartsAndWidgets\Charts")) { Directory.CreateDirectory(@"Templates\ChartsAndWidgets\Charts"); } //if (string.IsNullOrEmpty(widgetName)) { widgetName = widget.name; } System.IO.File.WriteAllText(@"Templates\ChartsAndWidgets\Charts\" + widget.name + ".json", JsonConvert.SerializeObject(widget, Formatting.Indented)); } } else { if (!Directory.Exists(@"Templates\ChartsAndWidgets\WidgetsWithoutQuery")) { Directory.CreateDirectory(@"Templates\ChartsAndWidgets\WidgetsWithoutQuery"); } System.IO.File.WriteAllText(@"Templates\ChartsAndWidgets\WidgetsWithoutQuery\" + widget.name + ".json", JsonConvert.SerializeObject(widget, Formatting.Indented)); } } } } } } }