public async Task DownloadItemAndContentInCommitAsync(ItemChange change, string commitId, Guid repositoryId, CancellationToken token) { CreateHttpClient(); var item = await _httpClient.GetItemAsync( repositoryId, change.Item.Path, includeContentMetadata : true, versionDescriptor : new Microsoft.TeamFoundation.SourceControl.WebApi.GitVersionDescriptor() { VersionType = Microsoft.TeamFoundation.SourceControl.WebApi.GitVersionType.Commit, Version = commitId }, cancellationToken : token ); change.Item.ContentMetadata = item.ContentMetadata.ToSync(); if (!item.IsFolder) { var content = await _httpClient.GetBlobContentAsync(repositoryId, item.ObjectId, cancellationToken : token); await change.SetNewContentAsync(content, token); } }
public void CreateBinaryItemContext() { var item = new Item(string.Empty) { ContentMetadata = new FileContentMetadata("image/x-icon") }; var itemChange = new ItemChange(ItemChangeType.None, item); var testData = Encoding.UTF8.GetBytes("Testing"); using (var memoryStream = new MemoryStream(testData)) { itemChange.SetNewContentAsync(memoryStream, CancellationToken.None).Wait(); Assert.AreEqual(ItemContentType.Base64Encoded, itemChange.NewContent.ContentType); Assert.AreEqual(Convert.ToBase64String(testData), itemChange.NewContent.Content); } }
public void CreateTextItemContent() { var item = new Item(string.Empty) { ContentMetadata = new FileContentMetadata("text/plain", Encoding.UTF8) }; var itemChange = new ItemChange(ItemChangeType.None, item); var testData = "Testing"; using (var memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(testData))) { itemChange.SetNewContentAsync(memoryStream, CancellationToken.None).Wait(); Assert.AreEqual(ItemContentType.RawText, itemChange.NewContent.ContentType); Assert.AreEqual(testData, itemChange.NewContent.Content); } }