public static async Task GetAllAsync(this TfvcHttpClient source, string itemPath, string targetPath, CancellationToken cancellationToken)
        {
            Logger.Debug($"Downloading '{itemPath}'");

            var request = new TfvcItemRequestData()
            {
                ItemDescriptors = new[]
                {
                    new TfvcItemDescriptor()
                    {
                        Path = itemPath, RecursionLevel = VersionControlRecursionType.Full
                    }
                }
            };

            //Download the items
            using (var stream = await source.GetItemsBatchZipAsync(request))
            {
                Logger.Debug($"Extracting '{itemPath}' to '{targetPath}'");
                var fileCount = await ExtractZipAsync(stream, targetPath, itemPath, cancellationToken).ConfigureAwait(false);

                Logger.Debug($"Extracted {fileCount} files to '{targetPath}'");
            };
        }