Beispiel #1
0
        /// <summary>
        /// Writes a single row to a CSV file.
        /// </summary>
        /// <param name="row">The row to be written</param>
        public void WriteRow(CsvRowModel row)
        {
            var  builder     = new StringBuilder();
            bool firstColumn = true;

            foreach (string value in row)
            {
                // Add separator if this isn't the first value
                if (!firstColumn)
                {
                    builder.Append(',');
                }
                // Implement special handling for values that contain comma or quote
                // Enclose in quotes and double up any double quotes
                if (value.IndexOfAny(new char[] { '"', ',' }) != -1)
                {
                    builder.AppendFormat("\"{0}\"", value.Replace("\"", "\"\""));
                }
                else
                {
                    builder.Append(value);
                }
                firstColumn = false;
            }
            row.LineText = builder.ToString();
            WriteLine(row.LineText);
        }
Beispiel #2
0
        /// <summary>
        /// This method will help to create the Csv file
        /// </summary>
        /// <param name="fileParameter"></param>
        /// <returns></returns>
        public async Task <bool> CreateCsvFile(FileParameterModel fileParameter)
        {
            //Check and create Directory If It Not Exist
            var filePath = await Task.Run(() => $"{FileHelper.CreateDirectory(fileParameter.FolderUrl)}//{fileParameter.FileName}");

            using (var writer = new CsvFileWriter(filePath))
            {
                //Config to get 100000 from App Setting
                for (int i = 0; i < fileParameter.TotalRows; i++)
                {
                    var row = new CsvRowModel
                    {
                        $"{ Guid.NewGuid()}{fileParameter.Delimiter}{RandomString(fileParameter.MinContentLength , fileParameter.MaxContentLength, fileParameter.Pattern)}"
                    };

                    await Task.Run(() => writer.WriteRow(row));
                }
            }

            return(await Task.FromResult(true));
        }