public async Task <bool> UploadLineCoverageAsync(string originalTraceFilePath, string lineCoverageReport, RevisionFileUtils.RevisionOrTimestamp revisionOrTimestamp)
        {
            try
            {
                CloudStorageAccount account = GetStorageAccount();
                logger.Debug("Uploading line coverage from {trace} to {azure}/{directory}/", originalTraceFilePath,
                             account.FileStorageUri, storage.Directory);

                CloudFileShare share = await GetOrCreateShareAsync(account);

                CloudFileDirectory directory = await GetOrCreateTargetDirectoryAsync(share);

                long unixSeconds = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
                await UploadTextAsync(lineCoverageReport, $"{unixSeconds}.simple", directory);
                await UploadTextAsync(revisionOrTimestamp.ToRevisionFileContent(), $"{unixSeconds}.metadata", directory);

                logger.Info("Successfully uploaded line coverage from {trace} to {azure}/{directory}", originalTraceFilePath,
                            account.FileStorageUri, storage.Directory);
                return(true);
            }
            catch (Exception e)
            {
                logger.Error(e, "Upload of line coverage from {trace} to Azure File Storage failed", originalTraceFilePath);
                return(false);
            }
        }
        public Task <bool> UploadLineCoverageAsync(string originalTraceFilePath, string lineCoverageReport, RevisionFileUtils.RevisionOrTimestamp revisionOrTimestamp)
        {
            long   unixSeconds      = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
            string filePath         = Path.Combine(targetDirectory, $"{unixSeconds}.simple");
            string metadataFilePath = Path.Combine(targetDirectory, $"{unixSeconds}.metadata");

            try
            {
                fileSystem.File.WriteAllText(filePath, lineCoverageReport);
                fileSystem.File.WriteAllText(metadataFilePath, revisionOrTimestamp.ToRevisionFileContent());
                return(Task.FromResult(true));
            }
            catch (Exception e)
            {
                logger.Error(e, "Failed to upload line coverage from {trace} to {targetDirectory}. Will retry later",
                             originalTraceFilePath, targetDirectory);
                return(Task.FromResult(false));
            }
        }