public WikiPageResponse GetWikiPageByIdAndSubPages() { VssConnection connection = this.Context.Connection; WikiHttpClient wikiClient = connection.GetClient <WikiHttpClient>(); WikiV2 wiki = Helpers.FindOrCreateProjectWiki(this.Context); int somePageId = Helpers.GetAnyWikiPageId(this.Context, wiki); WikiPageResponse rootPageResponse = wikiClient.GetPageByIdAsync( project: wiki.ProjectId, wikiIdentifier: wiki.Id, id: somePageId, recursionLevel: VersionControlRecursionType.OneLevel).SyncResult(); if (rootPageResponse.Page.SubPages.Count() == 0) { WikiPageResponse wikiPageResponse1 = Helpers.CreatePage(this.Context, wiki, rootPageResponse.Page.Path + "/SubPage" + new Random().Next(1, 999)); WikiPageResponse wikiPageResponse2 = Helpers.CreatePage(this.Context, wiki, rootPageResponse.Page.Path + "/SubPage" + new Random().Next(1, 999)); rootPageResponse = wikiClient.GetPageByIdAsync( project: wiki.ProjectId, wikiIdentifier: wiki.Id, id: somePageId, recursionLevel: VersionControlRecursionType.OneLevel).SyncResult(); } Context.Log("Retrieved the following subpages for the root page:"); foreach (WikiPage subPage in rootPageResponse.Page.SubPages) { Context.Log("Sub-page : '{0}'", subPage.Path); } return(rootPageResponse); }
public static int GetAnyWikiPageId(VssConnection connection, WikiV2 wiki) { string path = GetAnyWikiPagePath(connection, wiki); var wikiClient = connection.GetClient <WikiHttpClient>(); var anyPage = wikiClient.GetPageAsync( project: wiki.ProjectId, wikiIdentifier: wiki.Id, path: path, recursionLevel: VersionControlRecursionType.OneLevel).SyncResult().Page; if (!anyPage.Id.HasValue) { WikiPageCreateOrUpdateParameters parameters = new WikiPageCreateOrUpdateParameters() { Content = "Wiki page content" }; WikiPageResponse wikiPageResponse = wikiClient.CreateOrUpdatePageAsync( parameters, project: wiki.ProjectId, wikiIdentifier: wiki.Id, path: "SamplePage" + new Random().Next(1, 999), Version: null).SyncResult(); Console.WriteLine("Create page '{0}' in wiki '{1}'", wikiPageResponse.Page.Path, wiki.Name); anyPage = wikiPageResponse.Page; } return(anyPage.Id.Value); }
public WikiPageMoveResponse ReorderWikiPage() { VssConnection connection = this.Context.Connection; WikiHttpClient wikiClient = connection.GetClient <WikiHttpClient>(); WikiV2 wiki = Helpers.FindOrCreateProjectWiki(this.Context); var pageCreateParameters = new WikiPageCreateOrUpdateParameters() { Content = "Wiki page content", }; var randomNumber = new Random().Next(1, 999); // First page string firstPagePath = "SamplePage" + randomNumber; WikiPageResponse firstPageResponse = wikiClient.CreateOrUpdatePageAsync( pageCreateParameters, project: wiki.ProjectId, wikiIdentifier: wiki.Name, path: firstPagePath, Version: null).SyncResult(); Context.Log("Created page '{0}' in wiki '{1}'", firstPageResponse.Page.Path, wiki.Name); // Second page string secondPagePath = "SamplePage" + (randomNumber + 1); WikiPageResponse secondPageResponse = wikiClient.CreateOrUpdatePageAsync( pageCreateParameters, project: wiki.ProjectId, wikiIdentifier: wiki.Name, path: secondPagePath, Version: null).SyncResult(); Context.Log("Created page '{0}' in wiki '{1}'", secondPageResponse.Page.Path, wiki.Name); var pageMoveParameters = new WikiPageMoveParameters() { Path = firstPagePath, NewPath = firstPagePath, NewOrder = 0 }; WikiPageMoveResponse pageMoveResponse = wikiClient.CreatePageMoveAsync( pageMoveParameters: pageMoveParameters, project: wiki.ProjectId, wikiIdentifier: wiki.Name).SyncResult(); Context.Log("Page '{0}' moved to order '{1}'", pageMoveResponse.PageMove.Path, pageMoveResponse.PageMove.NewOrder); // Cleanup ClientSampleHttpLogger.SetSuppressOutput(this.Context, true); wikiClient.DeletePageAsync(wiki.ProjectId, wiki.Id, firstPagePath).SyncResult(); wikiClient.DeletePageAsync(wiki.ProjectId, wiki.Id, secondPagePath).SyncResult(); return(pageMoveResponse); }
public WikiPageResponse CreateWikiPage() { WikiV2 wiki = Helpers.FindOrCreateProjectWiki(this.Context); WikiPageResponse wikiPageResponse = Helpers.CreatePage(this.Context, wiki, "SamplePage" + new Random().Next(1, 999)); Context.Log("Create page '{0}' in wiki '{1}'", wikiPageResponse.Page.Path, wiki.Name); return(wikiPageResponse); }
public WikiPageResponse GetWikiPageMetadata() { VssConnection connection = this.Context.Connection; WikiHttpClient wikiClient = connection.GetClient <WikiHttpClient>(); WikiV2 wiki = Helpers.FindOrCreateProjectWiki(this.Context); string somePagePath = Helpers.GetAnyWikiPagePath(this.Context, wiki); WikiPageResponse somePageResponse = wikiClient.GetPageAsync( project: wiki.ProjectId, wikiIdentifier: wiki.Name, path: somePagePath).SyncResult(); Context.Log("Retrieved page '{0}' metadata in wiki '{1}'", somePagePath, wiki.Name); return(somePageResponse); }
public WikiPageResponse DeleteWikiPageById() { VssConnection connection = this.Context.Connection; WikiHttpClient wikiClient = connection.GetClient <WikiHttpClient>(); WikiV2 wiki = Helpers.FindOrCreateProjectWiki(this.Context); int somePageId = Helpers.GetAnyWikiPageId(this.Context, wiki); WikiPageResponse somePageResponse = wikiClient.DeletePageByIdAsync( project: wiki.ProjectId, wikiIdentifier: wiki.Id, id: somePageId).SyncResult(); Context.Log("Deleted page with Id : '{0}' from wiki '{1}'", somePageId, wiki.Name); return(somePageResponse); }
public static WikiPageResponse CreatePage(VssConnection connection, WikiV2 wiki, string path) { var wikiClient = connection.GetClient <WikiHttpClient>(); var parameters = new WikiPageCreateOrUpdateParameters { Content = "# Wiki page content" }; WikiPageResponse wikiPageResponse = wikiClient.CreateOrUpdatePageAsync( parameters, project: wiki.ProjectId, wikiIdentifier: wiki.Id, path: path, Version: null).SyncResult(); return(wikiPageResponse); }
public IEnumerable <WikiPageResponse> GetReportByPage(IEnumerable <FileContentEntity> filesContent) { var list = new List <WikiPageResponse>(); foreach (var item in filesContent) { var wikiResponse = new WikiPageResponse { page = item.pageTitle, period = (Int32.Parse(item.period)) > 12 ? (Int32.Parse(item.period) - 12).ToString() + "PM" : item.period + "AM", viewCount = item.viewCount }; list.Add(wikiResponse); } return(list); }
public WikiPageResponse GetWikiPageByIdMetadataWithContent() { VssConnection connection = this.Context.Connection; WikiHttpClient wikiClient = connection.GetClient <WikiHttpClient>(); WikiV2 wiki = Helpers.FindOrCreateProjectWiki(this.Context); int somePageId = Helpers.GetAnyWikiPageId(this.Context, wiki); WikiPageResponse WikiPageResponse = wikiClient.GetPageByIdAsync( project: wiki.ProjectId, wikiIdentifier: wiki.Id, id: somePageId, includeContent: true).SyncResult(); Context.Log("Retrieved page with id : '{0}' metadata in wiki '{1}' with content '{2}'", WikiPageResponse.Page.Path, wiki.Name, WikiPageResponse.Page.Content); return(WikiPageResponse); }
public WikiPageResponse GetWikiPageAndSubPages() { VssConnection connection = this.Context.Connection; WikiHttpClient wikiClient = connection.GetClient <WikiHttpClient>(); WikiV2 wiki = Helpers.FindOrCreateProjectWiki(this.Context); WikiPageResponse rootPageResponse = wikiClient.GetPageAsync( project: wiki.ProjectId, wikiIdentifier: wiki.Name, path: "/", recursionLevel: VersionControlRecursionType.OneLevel).SyncResult(); Context.Log("Retrieved the following subpages for the root page:"); foreach (WikiPage subPage in rootPageResponse.Page.SubPages) { Context.Log("Sub-page : '{0}'", subPage.Path); } return(rootPageResponse); }
public WikiPageResponse EditWikiPage() { VssConnection connection = this.Context.Connection; WikiHttpClient wikiClient = connection.GetClient <WikiHttpClient>(); WikiV2 wiki = Helpers.FindOrCreateProjectWiki(this.Context); string somePagePath = Helpers.GetAnyWikiPagePath(this.Context, wiki); WikiPageResponse pageResponse = wikiClient.GetPageAsync( project: wiki.ProjectId, wikiIdentifier: wiki.Name, path: somePagePath, includeContent: true).SyncResult(); WikiPage somePage = pageResponse.Page; Context.Log("Retrieved page '{0}' as JSON in wiki '{1}' with content '{2}'", somePage.Path, wiki.Name, somePage.Content); var originalContent = somePage.Content; var originalVersion = pageResponse.ETag.ToList()[0]; WikiPageCreateOrUpdateParameters parameters = new WikiPageCreateOrUpdateParameters() { Content = "New content for page" }; WikiPageResponse editedPageResponse = wikiClient.CreateOrUpdatePageAsync( parameters: parameters, project: wiki.ProjectId, wikiIdentifier: wiki.Name, path: somePagePath, Version: originalVersion).SyncResult(); var updatedContent = editedPageResponse.Page.Content; var updatedVersion = editedPageResponse.ETag.ToList()[0]; Context.Log("Before editing --> Page path: {0}, version: {1}, content: {2}", somePage.Path, originalVersion, originalContent); Context.Log("After editing --> Page path: {0}, version: {1}, content: {2}", somePage.Path, updatedVersion, updatedContent); return(editedPageResponse); }
public WikiPageResponse CreateWikiPage() { VssConnection connection = this.Context.Connection; WikiHttpClient wikiClient = connection.GetClient <WikiHttpClient>(); WikiV2 wiki = Helpers.FindOrCreateProjectWiki(this.Context); WikiPageCreateOrUpdateParameters parameters = new WikiPageCreateOrUpdateParameters() { Content = "Wiki page content" }; WikiPageResponse wikiPageResponse = wikiClient.CreateOrUpdatePageAsync( parameters, project: wiki.ProjectId, wikiIdentifier: wiki.Id, path: "SamplePage" + new Random().Next(1, 999), Version: null).SyncResult(); Context.Log("Create page '{0}' in wiki '{1}'", wikiPageResponse.Page.Path, wiki.Name); return(wikiPageResponse); }
public async Task Run(string input, ILogger log) #endif { string sb = await GenerateReleaseNotesMarkdown(); string iterationName = await GetCurrentIterationName(); using (WikiHttpClient wikiHttpClient = new WikiHttpClient(_uri, credentials)) { try { WikiPageResponse wikiPage = await wikiHttpClient.GetPageAsync(_project, _wikiName, $"/{iterationName}"); await wikiHttpClient.CreateOrUpdatePageAsync(new WikiPageCreateOrUpdateParameters() { Content = sb.ToString() }, _project, _wikiName, $"/{iterationName}", wikiPage.ETag.First().ToString(), $"Updated on release notes on {DateTime.UtcNow}(UTC)"); } catch (VssServiceException ex) { /* * What an ugly pattern to code with! * Had to do this since the GetPageAsync call throws exception if page is not found. * Hopefully, I fix this in the future. */ log.LogInformation("Service exception raised. Assumed that the wiki page does not exist. Trying to create one."); await wikiHttpClient.CreateOrUpdatePageAsync(new WikiPageCreateOrUpdateParameters() { Content = sb.ToString() }, _project, _wikiName, $"/{iterationName}", null, $"Added release notes for {iterationName}"); } catch { throw; } } log.LogInformation("Completed execution. Please check your wiki for your release notes."); }