Exemplo n.º 1
0
        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);
        }