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)); } }