David B
David B

Reputation: 315

CSV File per record required

I am using the file helpers library to construct a csv but I need to create one csv file per record.

var engine = new FileHelperEngine(typeof(SalesOrders));
int count = 0;
foreach (SalesOrders item in purchaseOrder)
{
     count++;
     string fileName = "SalesOrder_" + item.OrderNumber.ToString() + ".csv";

     var feng = new FileHelperEngine<SalesOrders>();
     string str1 = feng.WriteString(purchaseOrder);
     List<SalesOrdersItems> _orderItemsForExport = SopOrderItems.Where(a => a.ORDER_NUMBER.ToString() == item.OrderNumber).ToList();

}

However this line

string str1 = feng.WriteString(purchaseOrder);

Is printing out all the contents instead of the item per csv. I think its just my logic is not correct.

Upvotes: 0

Views: 60

Answers (1)

Arkadiusz Raszeja
Arkadiusz Raszeja

Reputation: 882

foreach (SalesOrders item in purchaseOrder)
            {
                using (StreamWriter sw = new StreamWriter($"SalesOrder_{item.OrderNumber.ToString()}.csv"))
                {
                    var lines = TakeAllStuffFrom(item); // like a collection of $"{SalesOrder.FirstField.Trim()};{SalesOrder.SecondField.Trim()}";

                    foreach (var line in lines)
                    {
                        sw.WriteLine(line);
                    }
                }
            }

Write example of what you expect to appear in your csv file and we will figure something out :)

Upvotes: 1

Related Questions