using System.Collections;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
using System.Collections.ObjectModel;
using System.ComponentModel;
using CsvHelper.Configuration;
using CsvHelper.Configuration.Attributes;
using CsvHelper.Expressions;
using CsvHelper.TypeConversion;
using Microsoft.VisualStudio.TestTools.UnitTesting;
public interface ITestSaccaModel : INotifyPropertyChanged
public class TestSaccaModel : NotifyPropertyChanged, ITestSaccaModel
public sealed class ITestSaccaModelMap : ClassMap<ITestSaccaModel>
public ITestSaccaModelMap()
AutoMap(CultureInfo.InvariantCulture);
Map(m => m.IsSelected).Ignore();
Map(m => m.IsModified).Ignore();
Map(m => m.IsDeleted).Ignore();
Map(m => m.UIDOriginal).Ignore();
public static (bool, string) ExportDataCSV(List<ITestSaccaModel> data, string csvFileName)
var config = new CsvConfiguration(CultureInfo.InvariantCulture)
Delimiter = CsvDelimiter,
using (StreamWriter writer = File.CreateText(csvFileName))
using (var csv = new CsvWriter(writer, config))
csv.Context.RegisterClassMap<ITestSaccaModelMap>();
return (File.Exists(csvFileName), csvFileName);
public void Export_Data_To_CSV()
ObservableCollectionEx<ITestSaccaModel> _dataCollection = [.. _data];
_databaseViewModel.Data = _dataCollection;
Core.ExportDataCSV(_dataCollection.ToList(), fileName);
IEnumerable<ITestSaccaModel> csvRecords;
var config = new CsvConfiguration(CultureInfo.InvariantCulture)
ReadingExceptionOccurred = _ => false
using (var stream = Core.File.OpenText(fileName))
using (var csv = new CsvReader(stream, config))
csv.Context.RegisterClassMap<ITestSaccaModelMap>();
csvRecords = csv.GetRecords<TestSaccaModel>().ToList();
public static void Test()
public static void Main()
Console.WriteLine("Environment version: {0} ({1}), {2}.", System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription , Environment.Version, Environment.OSVersion);
Console.WriteLine("OS Version: {0}, NewLine: {1}", System.Environment.OSVersion, Newtonsoft.Json.JsonConvert.SerializeObject(Environment.NewLine));
Console.WriteLine("{0} version: {1}", typeof(CsvReader).Assembly.GetName().Name, typeof(CsvReader).Assembly.FullName);
Console.WriteLine("Failed with unhandled exception: ");