Csvhelper: Type Mapper Exception when using csv with header row

Created on 19 Dec 2019  路  10Comments  路  Source: JoshClose/CsvHelper

Describe the bug
when mapping

To Reproduce
Steps to reproduce the behavior:
create a class what uses a non string property to map
ie

        [Name("Campaign Number")]
        public int CampaignNumber { get; set; }

create csv with non string data and a header
run mapped reader getrecords

ie

            using var reader = new StreamReader(file.FullName);

            using var csv = new CsvReader(reader, new Configuration());
            // also tried using this with the same exception 
            //using var csv = new CsvReader(reader, new Configuration() { HasHeaderRecord = true });

            //csvReader.Configuration.RegisterClassMap<ExtractModelMap>();
            var result = csv.GetRecords<ExtractModel>();

             return result.ToList();

Expected behavior
correctly map records to their defined model types when enumerated

Screenshots
If applicable, add screenshots to help explain your problem.
image
image

Additional context
Add any other context about the problem here.

bug

Most helpful comment

the first one works , the account id will be getting converted as well , just not implemented in the model yet
that should always be the first column so that should work the cleanest i think

closing this as resolved :)

All 10 comments

I'm having trouble recreating your issue. The following works for me. I'm using CsvHelper version 12.2.2

public class Program
{
    public static void Main(string[] args)
    {

        using (MemoryStream stream = new MemoryStream())
        using (StreamWriter writer = new StreamWriter(stream))
        using (StreamReader reader = new StreamReader(stream))
        using (CsvReader csv = new CsvReader(reader, new Configuration()))
        {
            writer.WriteLine("Id,Campaign Number");
            writer.WriteLine("1951,163503");
            writer.Flush();
            stream.Position = 0;

            var records = csv.GetRecords<ExtractModel>().ToList();
        }
    }
}

public class ExtractModel
{
    public int Id { get; set; }

    [Name("Campaign Number")]
    public int CampaignNumber { get; set; }
}

this is my full code
Loader

    internal class ExtractLoader : IDataLoader<ExtractModel>, IDataLoaderAsync<ExtractModel>
    {
        public IEnumerable<ExtractModel> Load(FileInfo file)
        {
            if (!file.Exists)
            {
                throw new FileNotFoundException($"${file.FullName} could not be found", file.FullName);
            }

            using var reader = new StreamReader(file.FullName);

            using var csv = new CsvReader(reader, new Configuration());

            // also tried using this with the same exception 
            //using var csv = new CsvReader(reader, new Configuration() { HasHeaderRecord = true });

            var result = csv.GetRecords<ExtractModel>();

             return result.ToList();
        }

        public async Task<IEnumerable<ExtractModel>> LoadAsync(FileInfo file)
        {
            return await Task.Run(() => Load(file), CancellationToken.None);
        }
    }

Model

    public class ExtractModel
    {
        [Name("Account ID")]
        public string AccountID { get; set; }
        [Name("Supporter ID")]
        public string SupporterID { get; set; }
        [Name("Supporter Email")]
        public string SupporterEmail { get; set; }
        [Name("Date Created")]
        //[Format("yyyy/MM/dd", "yyyy-MM-dd")]
        //[NullValues("")]
        public string DateCreated { get; set; }
        //[NullValues("")]
        //[Format("yyyy/MM/dd", "yyyy-MM-dd")]
        [Name("Date Modified")]
        public string DateModified { get; set; }
        [Name("Campaign Number")]
        public int CampaignNumber { get; set; }
        [Name("Campaign Type")]
        public string CampaignType { get; set; }
        [Name("Campaign ID")]
        public string CampaignID { get; set; }
        [Name("Campaign Date")]
        public string CampaignDate { get; set; }

        [Name("Campaign Time")]
        public string CampaignTime { get; set; }
        [Name("Campaign Status")]
        public string CampaignStatus { get; set; }
        [Name("Campaign Data 1")]
        public string CampaignData1 { get; set; }
        [Name("Campaign Data 2")]
        public string CampaignData2 { get; set; }
        [Name("Campaign Data 3")]
        public string CampaignData3 { get; set; }
        [Name("Campaign Data 4")]
        public string CampaignData4 { get; set; }
        [Name("Campaign Data 5")]
        public string CampaignData5 { get; set; }
        [Name("Campaign Data 6")]
        public string CampaignData6 { get; set; }
        [Name("Campaign Data 7")]
        public string CampaignData7 { get; set; }
        [Name("Campaign Data 8")]
        public string CampaignData8 { get; set; }
        [Name("Campaign Data 9")]
        public string CampaignData9 { get; set; }
        [Name("Campaign Data 10")]
        public string CampaignData10 { get; set; }
        [Name("Campaign Data 11")]
        public string CampaignData11 { get; set; }
        [Name("Campaign Data 12")]
        public string CampaignData12 { get; set; }
        [Name("Campaign Data 13")]
        public string CampaignData13 { get; set; }
        [Name("Campaign Data 14")]
        public string CampaignData14 { get; set; }
        [Name("Campaign Data 15")]
        public string CampaignData15 { get; set; }
        [Name("Campaign Data 16")]
        public string CampaignData16 { get; set; }
        [Name("Campaign Data 17")]
        public string CampaignData17 { get; set; }
        [Name("Campaign Data 18")]
        public string CampaignData18 { get; set; }
        [Name("Campaign Data 19")]
        public string CampaignData19 { get; set; }
        [Name("Campaign Data 20")]
        public string CampaignData20 { get; set; }
        [Name("Campaign Data 21")]
        public string CampaignData21 { get; set; }
        [Name("Campaign Data 22")]
        public string CampaignData22 { get; set; }
        [Name("Campaign Data 23")]
        public string CampaignData23 { get; set; }
        [Name("Campaign Data 24")]
        public string CampaignData24 { get; set; }
        [Name("Campaign Data 25")]
        public string CampaignData25 { get; set; }
        [Name("Campaign Data 26")]
        public string CampaignData26 { get; set; }
        [Name("Campaign Data 27")]
        public string CampaignData27 { get; set; }
        [Name("Campaign Data 28")]
        public string CampaignData28 { get; set; }
        [Name("Campaign Data 29")]
        public string CampaignData29 { get; set; }
        [Name("Campaign Data 30")]
        public string CampaignData30 { get; set; }
        [Name("Campaign Data 31")]
        public string CampaignData31 { get; set; }
        [Name("Campaign Data 32")]
        public string CampaignData32 { get; set; }
        [Name("Campaign Data 33")]
        public string CampaignData33 { get; set; }
        [Name("Campaign Data 34")]
        public string CampaignData34 { get; set; }
        [Name("Campaign Data 35")]
        public string CampaignData35 { get; set; }
        [Name("External Reference 1")]
        public string ExternalReference1 { get; set; }
        [Name("External Reference 2")]
        public string ExternalReference2 { get; set; }
        [Name("External Reference 3")]
        public string ExternalReference3 { get; set; }
        [Name("External Reference 4")]
        public string ExternalReference4 { get; set; }
        [Name("External Reference 5")]
        public string ExternalReference5 { get; set; }
        [Name("External Reference 6")]
        public string ExternalReference6 { get; set; }
        [Name("External Reference 7")]
        public string ExternalReference7 { get; set; }
        [Name("External Reference 8")]
        public string ExternalReference8 { get; set; }
        [Name("External Reference 9")]
        public string ExternalReference9 { get; set; }
        [Name("External Reference 10")]
        public string ExternalReference10 { get; set; }
        [Name("Email Address")]
        public string EmailAddress { get; set; }
        [Name("Title")]
        public string Title { get; set; }
        [Name("First Name")]
        public string FirstName { get; set; }
        [Name("Middle Name")]
        public string MiddleName { get; set; }
        [Name("Last Name")]
        public string LastName { get; set; }
        [Name("Address 1")]
        public string Address1 { get; set; }
        [Name("Address 2")]
        public string Address2 { get; set; }
        [Name("Address 3")]
        public string Address3 { get; set; }
        [Name("City")]
        public string City { get; set; }
        [Name("Region")]
        public string Region { get; set; }
        [Name("Postcode")]
        public string Postcode { get; set; }
        [Name("Country")]
        public string Country { get; set; }
        [Name("Phone Number")]
        public string PhoneNumber { get; set; }
    }

Sample Test csv data

Account ID,Supporter ID,Supporter Email,Date Created,Date Modified,Campaign Number,Campaign Type,Campaign ID,Campaign Date,Campaign Time,Campaign Status,Campaign Data 1,Campaign Data 2,Campaign Data 3,Campaign Data 4,Campaign Data 5,Campaign Data 6,Campaign Data 7,Campaign Data 8,Campaign Data 9,Campaign Data 10,Campaign Data 11,Campaign Data 12,Campaign Data 13,Campaign Data 14,Campaign Data 15,Campaign Data 16,Campaign Data 17,Campaign Data 18,Campaign Data 19,Campaign Data 20,Campaign Data 21,Campaign Data 22,Campaign Data 23,Campaign Data 24,Campaign Data 25,Campaign Data 26,Campaign Data 27,Campaign Data 28,Campaign Data 29,Campaign Data 30,Campaign Data 31,Campaign Data 32,Campaign Data 33,Campaign Data 34,Campaign Data 35,External Reference 1,External Reference 2,External Reference 3,External Reference 4,External Reference 5,External Reference 6,External Reference 7,External Reference 8,External Reference 9,External Reference 10,Email Address,Title,First Name,Middle Name,Last Name,Address 1,Address 2,Address 3,City,Region,Postcode,Country,Phone Number
"1951","69067080","[email protected]","2015-06-16","2019-09-25","155452","FCS","Canadian Red Cross Fund - CRC 100x Scratch 2019 Don","2019-09-25","14:14:32","reject","16171516","OPERROR1903972641382748","5269: The ID(s) specified in the URL do not correspond to the values in the system.: 50cdee65-3816-4869-bae0-97ed76996689","125.00","CAD","na","S","","","","","Optimal Payments Gateway","04/2020","N","0","","","16171516","Douglas Wayne","Make a personal donation","","","7050028a-43cb-45c0-8a70-d28dd95e0f0e-MTQ4MzQ1","Your 3,500 Aeroplan Miles will be credited to your Aeroplan account 721283901 within 60 calendar days from the date you made your gift.","CRC-C011242","0.00","0.00","0.00","0.00","0.00","","mobile:N~tablet:N~device:MICROSOFT~os:Windows 8.1~browser:Chrome","https://donate.redcross.ca/page/47291/donate/1?locale=en-CA&utm_source=house_en&utm_medium=email&utm_content=FD&utm_campaign=points_2019_email3_100x_scratch_en","","HeVq8","house_en","email","points_2019_email3_100x_scratch_en","FD","1403051805.1524578017","204","204","19H09-e","75Per5SCBonus","","[email protected]","","Doug","","Wayne","412 Delaware Avenue","","","Toronto","ON","M6H 2T9","CA","(647) 836-1004",
"1951","70042852","[email protected]","2015-07-02","2019-09-04","142083","FCS","Cyclone Idai Appeal - CIA MWF Don","2019-03-20","19:16:52","success","13495041","ND142083T4013406012466099200__24e25692-78f1-4fda-bdba-ea32585ec588__CONTOfKwxRTuAlg","","5.00","CAD","VI","S","","","","","Optimal Payments Gateway","06/2021","N","0","","","749813","Michelle Lonergan","Make a personal donation","","5","","","204","3.76","2.85","3.29","5.00","5.27","","mobile:N~tablet:N~device:MICROSOFT~os:Windows 8.1~browser:Chrome","https://donate.redcross.ca/page/40262/donate/1","","","","","","","840279963.1537031629","204","CRC-C020393","Online - MWF","","","[email protected]","","Michelle","","Lonergan","486 Donlands Ave","","","Toronto","ON","M4J 3S6","CA","(416) 200-6027",
"1951","70042852","[email protected]","2015-07-02","2019-09-04","145949","FCS","Iran Floods Appeal - IFA MWF Don","2019-04-15","11:56:24","success","13990017","7E846164RD762691W","","10.00","CAD","Paypal","S","","","","","PayPal Gateway","","N","0","","","762682","Michelle Lonergan","Make a personal donation","","10","","","204","7.48","5.71","6.61","10.00","10.42","","mobile:N~tablet:N~device:MICROSOFT~os:Windows 8.1~browser:Chrome","https://donate.redcross.ca/page/41270/donate/1?_ga=2.190029608.2079029449.1555342731-840279963.1537031629","","","","","","","840279963.1537031629","204","CRC-C020515","Online - MWF","","","[email protected]","","Michelle","","Lonergan","486 Donlands Ave","","","Toronto","ON","M4J 3S6","CA","(416) 200-6027",
"1951","70042852","[email protected]","2015-07-02","2019-09-04","156330","FCS","Hurricane Dorian Appeal - HDA MWF Don","2019-09-04","10:50:29","success","15661399","ND156330T211403964687906816__24e25692-78f1-4fda-bdba-ea32585ec588__CONTOfKwxRTuAlg","","5.00","CAD","VI","S","","","","","Optimal Payments Gateway","06/2021","N","0","","","788997","Michelle Lonergan","Make a personal donation","","5","","","204","3.77","3.09","3.41","5.00","5.54","","mobile:N~tablet:N~device:MICROSOFT~os:Windows 8.1~browser:Chrome","https://donate.redcross.ca/page/47946/donate/1?locale=en-CA","","","","","","","840279963.1537031629","204","CRC-C021087","Online - MWF","","","[email protected]","","Michelle","","Lonergan","486 Donlands Ave","","","Toronto","ON","M4J 3S6","CA","(416) 200-6027",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","102490","FCR","Canadian Red Cross Fund - CRC MWF Don","2019-02-01","08:17:15","success","13033496","ND102490T6301063689804841984__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","20.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND102490T5016095223114104832__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","09/2018","N","0","11/5/2018","","","test test","","","","","","","15.25","11.67","13.28","20.00","20.96","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Chrome","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","102490","FCR","Canadian Red Cross Fund - CRC MWF Don","2019-03-01","08:16:58","success","13323930","ND102490T243926796159608832__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","20.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND102490T5016095223114104832__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","09/2018","N","0","11/5/2018","","","test test","","","","","","","15.12","11.43","13.29","20.00","21.28","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Chrome","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","102490","FCR","Canadian Red Cross Fund - CRC MWF Don","2019-04-01","08:02:20","success","13744618","ND102490T4923582797345152000__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","20.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND102490T5016095223114104832__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","09/2018","N","0","11/5/2018","","","test test","","","","","","","14.97","11.42","13.33","20.00","21.02","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Chrome","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","102490","FCR","Canadian Red Cross Fund - CRC MWF Don","2019-05-01","07:59:47","success","14159003","ND102490T5867693566943488000__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","20.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND102490T5016095223114104832__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","09/2018","N","0","11/5/2018","","","test test","","","","","","","14.92","11.42","13.28","20.00","21.16","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Chrome","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","102490","FCR","Canadian Red Cross Fund - CRC MWF Don","2019-06-01","07:49:23","success","14670026","ND102490T7425366082760105984__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","20.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND102490T5016095223114104832__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","09/2018","N","0","11/5/2018","","","test test","","","","","","","14.77","11.68","13.19","20.00","21.27","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Chrome","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","102490","FCR","Canadian Red Cross Fund - CRC MWF Don","2019-07-01","08:08:57","success","14995409","ND102490T4450343499683175424__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","20.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND102490T5016095223114104832__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","09/2018","N","0","11/5/2018","","","test test","","","","","","","15.27","12.07","13.46","20.00","21.84","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Chrome","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","102490","FCR","Canadian Red Cross Fund - CRC MWF Don","2019-08-01","10:29:01","success","15307414","ND102490T1199846296446792704__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","20.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND102490T5016095223114104832__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","09/2018","N","0","11/5/2018","","","test test","","","","","","","15.14","12.46","13.70","20.00","22.11","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Chrome","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","102490","FCR","Canadian Red Cross Fund - CRC MWF Don","2019-09-01","09:58:35","success","15639062","ND102490T63318684835705856__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","20.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND102490T5016095223114104832__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","09/2018","N","0","11/5/2018","","","test test","","","","","","","14.97","12.31","13.59","20.00","22.21","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Chrome","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","102490","FCR","Canadian Red Cross Fund - CRC MWF Don","2019-10-01","10:00:11","success","16248459","ND102490T6747690818101996544__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","20.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND102490T5016095223114104832__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","09/2018","N","0","11/5/2018","","","test test","","","","","","","15.06","12.33","13.83","20.00","22.57","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Chrome","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","102490","FCS","Canadian Red Cross Fund - CRC MWF Don","2019-10-02","16:56:19","reject","16263164","OPERROR2589012579746189","5269: The ID(s) specified in the URL do not correspond to the values in the system.: bb396f68-3490-423d-9070-98d714818790","85.00","CAD","na","S","","","","","Optimal Payments Gateway","01/2021","N","0","","","16263164","test test","Make a personal donation","10","75","","","CRC-C011242","0.00","0.00","0.00","0.00","0.00","","mobile:N~tablet:N~device:MICROSOFT~os:Windows 8.1~browser:Chrome","https://donate.redcross.ca/page/22054/donate/1?t=1&type=undefined&amount=10&langpref=en-CA_ga=2.99614686.177463016.1570043319-929021861.1570043319","","","","","","","929021861.1570043319","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","102490","FCR","Canadian Red Cross Fund - CRC MWF Don","2019-11-01","10:47:21","success","16431137","ND102490T349626145301627904__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","20.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND102490T5016095223114104832__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","09/2018","N","0","11/5/2018","","","test test","","","","","","","15.20","11.73","13.62","20.00","21.98","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Chrome","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","102490","FCR","Canadian Red Cross Fund - CRC MWF Don","2019-12-01","10:22:29","success","16729906","ND102490T3531302753221974016__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","20.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND102490T5016095223114104832__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","09/2018","N","0","11/5/2018","","","test test","","","","","","","15.06","11.65","13.67","20.00","22.26","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Chrome","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","106556","FCR","Canadian Red Cross Fund - CRC MWF Card Don","2019-02-01","08:17:17","success","13033499","ND106556T8370135435787207680__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","20.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND106556T4665390284756245504__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","08/2018","N","0","11/5/2018","","","test test","","","","","","","15.25","11.67","13.28","20.00","20.96","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Chrome","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","106556","FCR","Canadian Red Cross Fund - CRC MWF Card Don","2019-02-01","08:21:54","success","13033691","ND106556T5780810802034153472__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","15.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND106556T5581782900628831232__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","01/2021","N","0","31/5/2018","","","test test","","","","","","204","11.44","8.75","9.96","15.00","15.72","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Safari","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","106556","FCR","Canadian Red Cross Fund - CRC MWF Card Don","2019-03-01","08:17:01","success","13323933","ND106556T2198315640682473472__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","20.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND106556T4665390284756245504__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","08/2018","N","0","11/5/2018","","","test test","","","","","","","15.12","11.43","13.29","20.00","21.28","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Chrome","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","106556","FCR","Canadian Red Cross Fund - CRC MWF Card Don","2019-03-01","08:22:58","success","13324141","ND106556T968138018220060672__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","15.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND106556T5581782900628831232__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","01/2021","N","0","31/5/2018","","","test test","","","","","","204","11.34","8.57","9.97","15.00","15.96","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Safari","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","106556","FCR","Canadian Red Cross Fund - CRC MWF Card Don","2019-04-01","08:02:22","success","13744621","ND106556T6597266783558173696__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","20.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND106556T4665390284756245504__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","08/2018","N","0","11/5/2018","","","test test","","","","","","","14.97","11.42","13.33","20.00","21.02","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Chrome","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","106556","FCR","Canadian Red Cross Fund - CRC MWF Card Don","2019-04-01","08:06:41","success","13744799","ND106556T8549996468253262848__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","15.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND106556T5581782900628831232__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","01/2021","N","0","31/5/2018","","","test test","","","","","","204","11.23","8.56","9.99","15.00","15.75","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Safari","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","106556","FCR","Canadian Red Cross Fund - CRC MWF Card Don","2019-05-01","07:59:49","success","14159006","ND106556T5112381907408924672__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","20.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND106556T4665390284756245504__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","08/2018","N","0","11/5/2018","","","test test","","","","","","","14.92","11.42","13.28","20.00","21.16","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Chrome","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","106556","FCR","Canadian Red Cross Fund - CRC MWF Card Don","2019-05-01","08:04:05","success","14159191","ND106556T2562185533743744000__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","15.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND106556T5581782900628831232__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","01/2021","N","0","31/5/2018","","","test test","","","","","","204","11.19","8.56","9.96","15.00","15.87","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Safari","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","106556","FCR","Canadian Red Cross Fund - CRC MWF Card Don","2019-06-01","07:49:25","success","14670028","ND106556T6377225958120306688__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","20.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND106556T4665390284756245504__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","08/2018","N","0","11/5/2018","","","test test","","","","","","","14.77","11.68","13.19","20.00","21.27","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Chrome","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","106556","FCR","Canadian Red Cross Fund - CRC MWF Card Don","2019-06-01","07:53:19","success","14670196","ND106556T3744150953983366144__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","15.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND106556T5581782900628831232__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","01/2021","N","0","31/5/2018","","","test test","","","","","","204","11.08","8.76","9.89","15.00","15.95","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Safari","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","106556","FCR","Canadian Red Cross Fund - CRC MWF Card Don","2019-07-01","08:08:59","success","14995411","ND106556T2744970807246094336__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","20.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND106556T4665390284756245504__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","08/2018","N","0","11/5/2018","","","test test","","","","","","","15.27","12.07","13.46","20.00","21.84","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Chrome","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","106556","FCR","Canadian Red Cross Fund - CRC MWF Card Don","2019-07-01","08:14:07","success","14995570","ND106556T63094152968360960__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","15.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND106556T5581782900628831232__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","01/2021","N","0","31/5/2018","","","test test","","","","","","204","11.45","9.05","10.09","15.00","16.38","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Safari","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","106556","FCR","Canadian Red Cross Fund - CRC MWF Card Don","2019-08-01","10:29:03","success","15307416","ND106556T7772995252638046208__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","20.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND106556T4665390284756245504__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","08/2018","N","0","11/5/2018","","","test test","","","","","","","15.14","12.46","13.70","20.00","22.11","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Chrome","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","106556","FCR","Canadian Red Cross Fund - CRC MWF Card Don","2019-08-01","10:33:30","success","15307565","ND106556T7202311032009336832__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","15.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND106556T5581782900628831232__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","01/2021","N","0","31/5/2018","","","test test","","","","","","204","11.36","9.34","10.27","15.00","16.58","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Safari","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","106556","FCR","Canadian Red Cross Fund - CRC MWF Card Don","2019-09-01","09:58:37","success","15639064","ND106556T6298778209277166592__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","20.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND106556T4665390284756245504__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","08/2018","N","0","11/5/2018","","","test test","","","","","","","14.97","12.31","13.59","20.00","22.21","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Chrome","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","106556","FCR","Canadian Red Cross Fund - CRC MWF Card Don","2019-09-01","10:02:02","success","15639201","ND106556T7294535094619910144__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","15.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND106556T5581782900628831232__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","01/2021","N","0","31/5/2018","","","test test","","","","","","204","11.23","9.23","10.20","15.00","16.66","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Safari","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","106556","FCR","Canadian Red Cross Fund - CRC MWF Card Don","2019-10-01","10:00:15","success","16248461","ND106556T1151066056295937024__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","20.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND106556T4665390284756245504__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","08/2018","N","0","11/5/2018","","","test test","","","","","","","15.06","12.33","13.83","20.00","22.57","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Chrome","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","106556","FCR","Canadian Red Cross Fund - CRC MWF Card Don","2019-10-01","10:04:02","success","16248614","ND106556T7793429355491160064__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","15.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND106556T5581782900628831232__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","01/2021","N","0","31/5/2018","","","test test","","","","","","204","11.30","9.25","10.38","15.00","16.93","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Safari","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","106556","FCR","Canadian Red Cross Fund - CRC MWF Card Don","2019-11-01","10:47:23","success","16431139","ND106556T6238197931120430080__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","20.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND106556T4665390284756245504__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","08/2018","N","0","11/5/2018","","","test test","","","","","","","15.20","11.73","13.62","20.00","21.98","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Chrome","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","106556","FCR","Canadian Red Cross Fund - CRC MWF Card Don","2019-11-01","10:50:58","success","16431273","ND106556T7285461884868259840__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","15.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND106556T5581782900628831232__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","01/2021","N","0","31/5/2018","","","test test","","","","","","204","11.40","8.80","10.21","15.00","16.48","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Safari","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",
"1951","70102809","[email protected]","2015-07-02","2019-10-02","106556","FCR","Canadian Red Cross Fund - CRC MWF Card Don","2019-12-01","10:22:32","success","16729908","ND106556T4045983752939337728__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","","20.00","CAD","TEST: VI","R","1","MONTHLY","ACTIVE","ND106556T4665390284756245504__bb396f68-3490-423d-9070-98d714818790__CiTZX7ao9q7eFZ6","Optimal Payments Gateway","08/2018","N","0","11/5/2018","","","test test","","","","","","","15.06","11.65","13.67","20.00","22.26","","mobile:N~tablet:N~device:APPLE~os:Mac OS X~browser:Chrome","","","","","","","","","204","204","Online - MWF","","","[email protected]","en-CA","test","","test","test","","","test","AB","v5h 1s7","CA","(236) 868-2444",

I am using this in a dotnet core 3.1 console app as well if that gives you some more context

it was also throwing the same error with datetime on date created
i tried skipping the header row then complains that it can't find the header , also tried to explicitly define HasHeaderRow , with the same result as above

Ok, so this isn't a bug ...
looks like my full data file has a header row inserted every 2500 rows or so that didn't get accounted for
is there some way to deal with this and skip those ?

i tried using

                csv.Configuration.ShouldSkipRecord = ShouldSkipRecord;
                csv.Configuration.HeaderValidated = null;
                csv.Configuration.MissingFieldFound = null;

   ```

   private bool ShouldSkipRecord(string[] arg)
    {
        var isHeaderRow = arg.Length > 0 && arg[0] == "Account ID";
        return isHeaderRow;
    }

```
but that now throws
image

This is one way you could skip those records.

csv.Configuration.ReadingExceptionOccurred = ex =>
{
    if (ex.GetType() == typeof(TypeConverterException) && ex.Message.Contains("Campaign Number"))
    {
        return false;
    }
    return true;
};

This is one way you could skip those records.

csv.Configuration.ReadingExceptionOccurred = ex =>
{
    if (ex.GetType() == typeof(TypeConverterException) && ex.Message.Contains("Campaign Number"))
    {
        return false;
    }
    return true;
};

wouldn't you need to do this for every type converted field?
i have 67 columns , 1/3 of those will be converted in some way

It appears to skip the whole record when I return false after hitting the first exception. Your using ShouldSkipRecord makes more sense, you just need a way to not skip the first line which is your actual header record. It works to read the header first and then set the ShouldSkipRecord configuration, but I don't really like it. You need a way to only skip if it isn't the first record.

csv.Read();
csv.ReadHeader();

csv.Configuration.ShouldSkipRecord = arg =>
{
    var isHeaderRow = arg.Length > 0 && arg[0] == "Account ID";
    return isHeaderRow;
};

var result = csv.GetRecords<ExtractModel>().ToList();

the first one works , the account id will be getting converted as well , just not implemented in the model yet
that should always be the first column so that should work the cleanest i think

closing this as resolved :)

Was this page helpful?
0 / 5 - 0 ratings