private static async Task WriteFile <T>(int id, string container, string blobName, T items) where T : IEnumerable { // Write temp file Console.WriteLine("{0} - Writing temporary file...", id); var fileInfo = new FileInfo(Path.Combine(ConfigurationManager.AppSettings["TempPath"], blobName)); Debug.Assert(fileInfo.DirectoryName != null, "fileInfo.DirectoryName != null"); Directory.CreateDirectory(fileInfo.DirectoryName); using (var textWriter = new StreamWriter(fileInfo.FullName)) { using (var csv = new CsvWriter(textWriter)) { csv.Configuration.PrefixReferenceHeaders = true; csv.Configuration.Delimiter = "|"; csv.WriteRecords(items); } } // Upload to Blob storage Console.WriteLine("{0} - Uploading to blob storage...", id); var blobWriter = new BlobWriter(ConfigHelper.StorageConnectionString); await blobWriter.WriteAsync(fileInfo.FullName, container, blobName); }