diff --git a/App.config b/App.config new file mode 100644 index 0000000..4095eec --- /dev/null +++ b/App.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/DBWizard.csproj b/DBWizard.csproj new file mode 100644 index 0000000..dad2dcc --- /dev/null +++ b/DBWizard.csproj @@ -0,0 +1,125 @@ + + + + + Debug + AnyCPU + {42D31E64-C955-4C6F-9BE2-1FC06E252F37} + WinExe + DBWizard + DBWizard + v4.7.2 + 512 + true + true + + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + packages\CsvHelper.15.0.5\lib\net47\CsvHelper.dll + + + packages\Dapper.2.0.35\lib\net461\Dapper.dll + + + packages\Microsoft.Bcl.AsyncInterfaces.1.1.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + + + + packages\System.Data.SQLite.Core.1.0.112.1\lib\net40\System.Data.SQLite.dll + + + + packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + + + packages\System.Threading.Tasks.Extensions.4.5.2\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + + + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + PreserveNewest + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + \ No newline at end of file diff --git a/DBWizard.db b/DBWizard.db new file mode 100644 index 0000000..12b8e7f Binary files /dev/null and b/DBWizard.db differ diff --git a/DBWizard.sln b/DBWizard.sln new file mode 100644 index 0000000..d198bd1 --- /dev/null +++ b/DBWizard.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29806.167 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DBWizard", "DBWizard.csproj", "{42D31E64-C955-4C6F-9BE2-1FC06E252F37}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {42D31E64-C955-4C6F-9BE2-1FC06E252F37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42D31E64-C955-4C6F-9BE2-1FC06E252F37}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42D31E64-C955-4C6F-9BE2-1FC06E252F37}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42D31E64-C955-4C6F-9BE2-1FC06E252F37}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {4AB6A6F8-500A-4828-875F-1F1AE37E8234} + EndGlobalSection +EndGlobal diff --git a/Form1.Designer.cs b/Form1.Designer.cs new file mode 100644 index 0000000..6d1ccb3 --- /dev/null +++ b/Form1.Designer.cs @@ -0,0 +1,832 @@ +namespace DBWizard +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.Label lastNameLabel; + System.Windows.Forms.Label firstNameLabel; + System.Windows.Forms.Label student_idLabel; + System.Windows.Forms.Label dOBLabel; + System.Windows.Forms.Label programNameLabel; + System.Windows.Forms.Label addressLabel; + System.Windows.Forms.Label schoolLabel; + System.Windows.Forms.Label genderLabel; + System.Windows.Forms.Label gradeLevelLabel; + System.Windows.Forms.Label lastNameLabel1; + System.Windows.Forms.Label firstNameLabel1; + System.Windows.Forms.Label phoneNumberLabel; + System.Windows.Forms.Label emailAddressLabel; + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); + this.topTableLayoutPanel = new System.Windows.Forms.TableLayoutPanel(); + this.mainMenuStrip = new System.Windows.Forms.MenuStrip(); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.newStudentToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.saveStudentToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.reportsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.studentBySchoolToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.studentsByProgramToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.exitsavesDataToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.studentBindingNavigator = new System.Windows.Forms.BindingNavigator(this.components); + this.bindingNavigatorAddNewItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel(); + this.bindingNavigatorDeleteItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox(); + this.bindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.studentBindingNavigatorSaveItem = new System.Windows.Forms.ToolStripButton(); + this.student_pictureBox = new System.Windows.Forms.PictureBox(); + this.lastNameTextBox = new System.Windows.Forms.TextBox(); + this.firstNameTextBox = new System.Windows.Forms.TextBox(); + this.student_idTextBox = new System.Windows.Forms.TextBox(); + this.dob_dateTimePicker = new System.Windows.Forms.DateTimePicker(); + this.programComboBox = new System.Windows.Forms.ComboBox(); + this.addressTextBox = new System.Windows.Forms.TextBox(); + this.schoolComboBox = new System.Windows.Forms.ComboBox(); + this.genderComboBox = new System.Windows.Forms.ComboBox(); + this.gradeLevelComboBox = new System.Windows.Forms.ComboBox(); + this.save_button = new System.Windows.Forms.Button(); + this.parent_groupBox = new System.Windows.Forms.GroupBox(); + this.emailAddressTextBox = new System.Windows.Forms.TextBox(); + this.phoneNumberNumericUpDown = new System.Windows.Forms.NumericUpDown(); + this.parent_firstNameTextBox = new System.Windows.Forms.TextBox(); + this.parent_lastNameTextBox = new System.Windows.Forms.TextBox(); + this.clear_button = new System.Windows.Forms.Button(); + this.delete_button = new System.Windows.Forms.Button(); + this.pic_openFileDialog = new System.Windows.Forms.OpenFileDialog(); + this.lblSearch = new System.Windows.Forms.Label(); + this.search_textBox = new System.Windows.Forms.TextBox(); + this.errorProvider1 = new System.Windows.Forms.ErrorProvider(this.components); + this.toolTips = new System.Windows.Forms.ToolTip(this.components); + this.btnChaosMonkey = new System.Windows.Forms.Button(); + this.foundStudents_comboBox = new System.Windows.Forms.ComboBox(); + this.lblFoundStudents = new System.Windows.Forms.Label(); + this.studentBindingSource = new System.Windows.Forms.BindingSource(this.components); + lastNameLabel = new System.Windows.Forms.Label(); + firstNameLabel = new System.Windows.Forms.Label(); + student_idLabel = new System.Windows.Forms.Label(); + dOBLabel = new System.Windows.Forms.Label(); + programNameLabel = new System.Windows.Forms.Label(); + addressLabel = new System.Windows.Forms.Label(); + schoolLabel = new System.Windows.Forms.Label(); + genderLabel = new System.Windows.Forms.Label(); + gradeLevelLabel = new System.Windows.Forms.Label(); + lastNameLabel1 = new System.Windows.Forms.Label(); + firstNameLabel1 = new System.Windows.Forms.Label(); + phoneNumberLabel = new System.Windows.Forms.Label(); + emailAddressLabel = new System.Windows.Forms.Label(); + this.topTableLayoutPanel.SuspendLayout(); + this.mainMenuStrip.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.studentBindingNavigator)).BeginInit(); + this.studentBindingNavigator.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.student_pictureBox)).BeginInit(); + this.parent_groupBox.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.phoneNumberNumericUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.studentBindingSource)).BeginInit(); + this.SuspendLayout(); + // + // lastNameLabel + // + lastNameLabel.AutoSize = true; + lastNameLabel.Location = new System.Drawing.Point(183, 38); + lastNameLabel.Name = "lastNameLabel"; + lastNameLabel.Size = new System.Drawing.Size(90, 20); + lastNameLabel.TabIndex = 3; + lastNameLabel.Text = "Last Name:"; + // + // firstNameLabel + // + firstNameLabel.AutoSize = true; + firstNameLabel.Location = new System.Drawing.Point(380, 38); + firstNameLabel.Name = "firstNameLabel"; + firstNameLabel.Size = new System.Drawing.Size(90, 20); + firstNameLabel.TabIndex = 4; + firstNameLabel.Text = "First Name:"; + // + // student_idLabel + // + student_idLabel.AutoSize = true; + student_idLabel.Location = new System.Drawing.Point(12, 200); + student_idLabel.Name = "student_idLabel"; + student_idLabel.Size = new System.Drawing.Size(83, 20); + student_idLabel.TabIndex = 6; + student_idLabel.Text = "student id:"; + // + // dOBLabel + // + dOBLabel.AutoSize = true; + dOBLabel.Location = new System.Drawing.Point(10, 266); + dOBLabel.Name = "dOBLabel"; + dOBLabel.Size = new System.Drawing.Size(48, 20); + dOBLabel.TabIndex = 8; + dOBLabel.Text = "DOB:"; + // + // programNameLabel + // + programNameLabel.AutoSize = true; + programNameLabel.Location = new System.Drawing.Point(380, 108); + programNameLabel.Name = "programNameLabel"; + programNameLabel.Size = new System.Drawing.Size(73, 20); + programNameLabel.TabIndex = 10; + programNameLabel.Text = "Program:"; + // + // addressLabel + // + addressLabel.AutoSize = true; + addressLabel.Location = new System.Drawing.Point(185, 177); + addressLabel.Name = "addressLabel"; + addressLabel.Size = new System.Drawing.Size(70, 20); + addressLabel.TabIndex = 12; + addressLabel.Text = "address:"; + // + // schoolLabel + // + schoolLabel.AutoSize = true; + schoolLabel.Location = new System.Drawing.Point(380, 177); + schoolLabel.Name = "schoolLabel"; + schoolLabel.Size = new System.Drawing.Size(62, 20); + schoolLabel.TabIndex = 14; + schoolLabel.Text = "School:"; + // + // genderLabel + // + genderLabel.AutoSize = true; + genderLabel.Location = new System.Drawing.Point(185, 108); + genderLabel.Name = "genderLabel"; + genderLabel.Size = new System.Drawing.Size(67, 20); + genderLabel.TabIndex = 16; + genderLabel.Text = "Gender:"; + // + // gradeLevelLabel + // + gradeLevelLabel.AutoSize = true; + gradeLevelLabel.Location = new System.Drawing.Point(390, 262); + gradeLevelLabel.Name = "gradeLevelLabel"; + gradeLevelLabel.Size = new System.Drawing.Size(99, 20); + gradeLevelLabel.TabIndex = 18; + gradeLevelLabel.Text = "Grade Level:"; + // + // lastNameLabel1 + // + lastNameLabel1.AutoSize = true; + lastNameLabel1.Location = new System.Drawing.Point(34, 42); + lastNameLabel1.Name = "lastNameLabel1"; + lastNameLabel1.Size = new System.Drawing.Size(90, 20); + lastNameLabel1.TabIndex = 0; + lastNameLabel1.Text = "Last Name:"; + // + // firstNameLabel1 + // + firstNameLabel1.AutoSize = true; + firstNameLabel1.Location = new System.Drawing.Point(34, 90); + firstNameLabel1.Name = "firstNameLabel1"; + firstNameLabel1.Size = new System.Drawing.Size(90, 20); + firstNameLabel1.TabIndex = 2; + firstNameLabel1.Text = "First Name:"; + // + // phoneNumberLabel + // + phoneNumberLabel.AutoSize = true; + phoneNumberLabel.Location = new System.Drawing.Point(6, 139); + phoneNumberLabel.Name = "phoneNumberLabel"; + phoneNumberLabel.Size = new System.Drawing.Size(119, 20); + phoneNumberLabel.TabIndex = 4; + phoneNumberLabel.Text = "Phone Number:"; + // + // emailAddressLabel + // + emailAddressLabel.AutoSize = true; + emailAddressLabel.Location = new System.Drawing.Point(10, 192); + emailAddressLabel.Name = "emailAddressLabel"; + emailAddressLabel.Size = new System.Drawing.Size(115, 20); + emailAddressLabel.TabIndex = 6; + emailAddressLabel.Text = "Email Address:"; + // + // topTableLayoutPanel + // + this.topTableLayoutPanel.ColumnCount = 2; + this.topTableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.topTableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 382F)); + this.topTableLayoutPanel.Controls.Add(this.mainMenuStrip, 0, 0); + this.topTableLayoutPanel.Controls.Add(this.studentBindingNavigator, 1, 0); + this.topTableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Top; + this.topTableLayoutPanel.Location = new System.Drawing.Point(0, 0); + this.topTableLayoutPanel.Name = "topTableLayoutPanel"; + this.topTableLayoutPanel.RowCount = 1; + this.topTableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.topTableLayoutPanel.Size = new System.Drawing.Size(992, 35); + this.topTableLayoutPanel.TabIndex = 0; + // + // mainMenuStrip + // + this.mainMenuStrip.Dock = System.Windows.Forms.DockStyle.Fill; + this.mainMenuStrip.GripMargin = new System.Windows.Forms.Padding(2, 2, 0, 2); + this.mainMenuStrip.ImageScalingSize = new System.Drawing.Size(24, 24); + this.mainMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem}); + this.mainMenuStrip.Location = new System.Drawing.Point(0, 0); + this.mainMenuStrip.Name = "mainMenuStrip"; + this.mainMenuStrip.Size = new System.Drawing.Size(610, 35); + this.mainMenuStrip.TabIndex = 0; + this.mainMenuStrip.Text = "mainMenuStrip"; + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.newStudentToolStripMenuItem, + this.saveStudentToolStripMenuItem, + this.reportsToolStripMenuItem, + this.exitsavesDataToolStripMenuItem}); + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size(54, 29); + this.fileToolStripMenuItem.Text = "&File"; + // + // newStudentToolStripMenuItem + // + this.newStudentToolStripMenuItem.Name = "newStudentToolStripMenuItem"; + this.newStudentToolStripMenuItem.Size = new System.Drawing.Size(239, 34); + this.newStudentToolStripMenuItem.Text = "&New Student"; + // + // saveStudentToolStripMenuItem + // + this.saveStudentToolStripMenuItem.Name = "saveStudentToolStripMenuItem"; + this.saveStudentToolStripMenuItem.Size = new System.Drawing.Size(239, 34); + this.saveStudentToolStripMenuItem.Text = "&Save Student"; + // + // reportsToolStripMenuItem + // + this.reportsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.studentBySchoolToolStripMenuItem, + this.studentsByProgramToolStripMenuItem}); + this.reportsToolStripMenuItem.Name = "reportsToolStripMenuItem"; + this.reportsToolStripMenuItem.Size = new System.Drawing.Size(239, 34); + this.reportsToolStripMenuItem.Text = "Reports"; + // + // studentBySchoolToolStripMenuItem + // + this.studentBySchoolToolStripMenuItem.Name = "studentBySchoolToolStripMenuItem"; + this.studentBySchoolToolStripMenuItem.Size = new System.Drawing.Size(283, 34); + this.studentBySchoolToolStripMenuItem.Text = "Students by school"; + // + // studentsByProgramToolStripMenuItem + // + this.studentsByProgramToolStripMenuItem.Name = "studentsByProgramToolStripMenuItem"; + this.studentsByProgramToolStripMenuItem.Size = new System.Drawing.Size(283, 34); + this.studentsByProgramToolStripMenuItem.Text = "Students by program"; + // + // exitsavesDataToolStripMenuItem + // + this.exitsavesDataToolStripMenuItem.Name = "exitsavesDataToolStripMenuItem"; + this.exitsavesDataToolStripMenuItem.Size = new System.Drawing.Size(239, 34); + this.exitsavesDataToolStripMenuItem.Text = "E&xit (saves data)"; + // + // studentBindingNavigator + // + this.studentBindingNavigator.AddNewItem = this.bindingNavigatorAddNewItem; + this.studentBindingNavigator.BindingSource = this.studentBindingSource; + this.studentBindingNavigator.CountItem = this.bindingNavigatorCountItem; + this.studentBindingNavigator.DeleteItem = this.bindingNavigatorDeleteItem; + this.studentBindingNavigator.Dock = System.Windows.Forms.DockStyle.Fill; + this.studentBindingNavigator.ImageScalingSize = new System.Drawing.Size(24, 24); + this.studentBindingNavigator.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.bindingNavigatorMoveFirstItem, + this.bindingNavigatorMovePreviousItem, + this.bindingNavigatorSeparator, + this.bindingNavigatorPositionItem, + this.bindingNavigatorCountItem, + this.bindingNavigatorSeparator1, + this.bindingNavigatorMoveNextItem, + this.bindingNavigatorMoveLastItem, + this.bindingNavigatorSeparator2, + this.bindingNavigatorAddNewItem, + this.bindingNavigatorDeleteItem, + this.studentBindingNavigatorSaveItem}); + this.studentBindingNavigator.Location = new System.Drawing.Point(610, 0); + this.studentBindingNavigator.MoveFirstItem = this.bindingNavigatorMoveFirstItem; + this.studentBindingNavigator.MoveLastItem = this.bindingNavigatorMoveLastItem; + this.studentBindingNavigator.MoveNextItem = this.bindingNavigatorMoveNextItem; + this.studentBindingNavigator.MovePreviousItem = this.bindingNavigatorMovePreviousItem; + this.studentBindingNavigator.Name = "studentBindingNavigator"; + this.studentBindingNavigator.PositionItem = this.bindingNavigatorPositionItem; + this.studentBindingNavigator.Size = new System.Drawing.Size(382, 35); + this.studentBindingNavigator.TabIndex = 2; + this.studentBindingNavigator.Text = "bindingNavigator1"; + // + // bindingNavigatorAddNewItem + // + this.bindingNavigatorAddNewItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorAddNewItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorAddNewItem.Image"))); + this.bindingNavigatorAddNewItem.Name = "bindingNavigatorAddNewItem"; + this.bindingNavigatorAddNewItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorAddNewItem.Size = new System.Drawing.Size(34, 30); + this.bindingNavigatorAddNewItem.Text = "Add new"; + // + // bindingNavigatorCountItem + // + this.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem"; + this.bindingNavigatorCountItem.Size = new System.Drawing.Size(54, 30); + this.bindingNavigatorCountItem.Text = "of {0}"; + this.bindingNavigatorCountItem.ToolTipText = "Total number of items"; + // + // bindingNavigatorDeleteItem + // + this.bindingNavigatorDeleteItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorDeleteItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorDeleteItem.Image"))); + this.bindingNavigatorDeleteItem.Name = "bindingNavigatorDeleteItem"; + this.bindingNavigatorDeleteItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorDeleteItem.Size = new System.Drawing.Size(34, 30); + this.bindingNavigatorDeleteItem.Text = "Delete"; + // + // bindingNavigatorMoveFirstItem + // + this.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveFirstItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveFirstItem.Image"))); + this.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem"; + this.bindingNavigatorMoveFirstItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveFirstItem.Size = new System.Drawing.Size(34, 30); + this.bindingNavigatorMoveFirstItem.Text = "Move first"; + // + // bindingNavigatorMovePreviousItem + // + this.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMovePreviousItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMovePreviousItem.Image"))); + this.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem"; + this.bindingNavigatorMovePreviousItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMovePreviousItem.Size = new System.Drawing.Size(34, 30); + this.bindingNavigatorMovePreviousItem.Text = "Move previous"; + // + // bindingNavigatorSeparator + // + this.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator"; + this.bindingNavigatorSeparator.Size = new System.Drawing.Size(6, 35); + // + // bindingNavigatorPositionItem + // + this.bindingNavigatorPositionItem.AccessibleName = "Position"; + this.bindingNavigatorPositionItem.AutoSize = false; + this.bindingNavigatorPositionItem.Font = new System.Drawing.Font("Segoe UI", 9F); + this.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem"; + this.bindingNavigatorPositionItem.Size = new System.Drawing.Size(50, 31); + this.bindingNavigatorPositionItem.Text = "0"; + this.bindingNavigatorPositionItem.ToolTipText = "Current position"; + // + // bindingNavigatorSeparator1 + // + this.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator1"; + this.bindingNavigatorSeparator1.Size = new System.Drawing.Size(6, 35); + // + // bindingNavigatorMoveNextItem + // + this.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveNextItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveNextItem.Image"))); + this.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem"; + this.bindingNavigatorMoveNextItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveNextItem.Size = new System.Drawing.Size(34, 30); + this.bindingNavigatorMoveNextItem.Text = "Move next"; + // + // bindingNavigatorMoveLastItem + // + this.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveLastItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveLastItem.Image"))); + this.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem"; + this.bindingNavigatorMoveLastItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveLastItem.Size = new System.Drawing.Size(34, 30); + this.bindingNavigatorMoveLastItem.Text = "Move last"; + // + // bindingNavigatorSeparator2 + // + this.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator2"; + this.bindingNavigatorSeparator2.Size = new System.Drawing.Size(6, 35); + // + // studentBindingNavigatorSaveItem + // + this.studentBindingNavigatorSaveItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.studentBindingNavigatorSaveItem.Enabled = false; + this.studentBindingNavigatorSaveItem.Image = ((System.Drawing.Image)(resources.GetObject("studentBindingNavigatorSaveItem.Image"))); + this.studentBindingNavigatorSaveItem.Name = "studentBindingNavigatorSaveItem"; + this.studentBindingNavigatorSaveItem.Size = new System.Drawing.Size(34, 30); + this.studentBindingNavigatorSaveItem.Text = "Save Data"; + // + // student_pictureBox + // + this.student_pictureBox.BackColor = System.Drawing.SystemColors.Window; + this.student_pictureBox.Image = ((System.Drawing.Image)(resources.GetObject("student_pictureBox.Image"))); + this.student_pictureBox.Location = new System.Drawing.Point(12, 38); + this.student_pictureBox.Name = "student_pictureBox"; + this.student_pictureBox.Size = new System.Drawing.Size(156, 156); + this.student_pictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.student_pictureBox.TabIndex = 1; + this.student_pictureBox.TabStop = false; + this.student_pictureBox.Tag = "DefaultImage"; + this.student_pictureBox.Click += new System.EventHandler(this.pictureBox1_Click); + // + // lastNameTextBox + // + this.lastNameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.studentBindingSource, "LastName", true)); + this.lastNameTextBox.Location = new System.Drawing.Point(187, 61); + this.lastNameTextBox.Name = "lastNameTextBox"; + this.lastNameTextBox.Size = new System.Drawing.Size(167, 26); + this.lastNameTextBox.TabIndex = 4; + this.lastNameTextBox.Validating += new System.ComponentModel.CancelEventHandler(this.String_TextBox_Validating); + // + // firstNameTextBox + // + this.firstNameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.studentBindingSource, "FirstName", true)); + this.firstNameTextBox.Location = new System.Drawing.Point(384, 61); + this.firstNameTextBox.Name = "firstNameTextBox"; + this.firstNameTextBox.Size = new System.Drawing.Size(177, 26); + this.firstNameTextBox.TabIndex = 5; + this.firstNameTextBox.Validating += new System.ComponentModel.CancelEventHandler(this.String_TextBox_Validating); + // + // student_idTextBox + // + this.student_idTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.studentBindingSource, "student_id", true)); + this.student_idTextBox.Location = new System.Drawing.Point(12, 223); + this.student_idTextBox.Name = "student_idTextBox"; + this.student_idTextBox.Size = new System.Drawing.Size(135, 26); + this.student_idTextBox.TabIndex = 7; + this.student_idTextBox.Validating += new System.ComponentModel.CancelEventHandler(this.student_idTextBox_Validating); + // + // dob_dateTimePicker + // + this.dob_dateTimePicker.Format = System.Windows.Forms.DateTimePickerFormat.Short; + this.dob_dateTimePicker.Location = new System.Drawing.Point(12, 289); + this.dob_dateTimePicker.MinDate = new System.DateTime(1900, 1, 1, 0, 0, 0, 0); + this.dob_dateTimePicker.Name = "dob_dateTimePicker"; + this.dob_dateTimePicker.Size = new System.Drawing.Size(135, 26); + this.dob_dateTimePicker.TabIndex = 9; + this.dob_dateTimePicker.Validating += new System.ComponentModel.CancelEventHandler(this.dob_dateTimePicker_Validating); + // + // programComboBox + // + this.programComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.programComboBox.FormattingEnabled = true; + this.programComboBox.Location = new System.Drawing.Point(384, 131); + this.programComboBox.Name = "programComboBox"; + this.programComboBox.Size = new System.Drawing.Size(177, 28); + this.programComboBox.TabIndex = 11; + this.programComboBox.Validating += new System.ComponentModel.CancelEventHandler(this.ComboBox_Validating); + // + // addressTextBox + // + this.addressTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.studentBindingSource, "address", true)); + this.addressTextBox.Location = new System.Drawing.Point(187, 200); + this.addressTextBox.Multiline = true; + this.addressTextBox.Name = "addressTextBox"; + this.addressTextBox.Size = new System.Drawing.Size(167, 115); + this.addressTextBox.TabIndex = 13; + this.addressTextBox.Validating += new System.ComponentModel.CancelEventHandler(this.String_TextBox_Validating); + // + // schoolComboBox + // + this.schoolComboBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.studentBindingSource, "School.name", true)); + this.schoolComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.schoolComboBox.FormattingEnabled = true; + this.schoolComboBox.Location = new System.Drawing.Point(384, 200); + this.schoolComboBox.Name = "schoolComboBox"; + this.schoolComboBox.Size = new System.Drawing.Size(177, 28); + this.schoolComboBox.TabIndex = 15; + this.schoolComboBox.Validating += new System.ComponentModel.CancelEventHandler(this.ComboBox_Validating); + // + // genderComboBox + // + this.genderComboBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.studentBindingSource, "gender", true)); + this.genderComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.genderComboBox.FormattingEnabled = true; + this.genderComboBox.Items.AddRange(new object[] { + "Male", + "Female"}); + this.genderComboBox.Location = new System.Drawing.Point(189, 131); + this.genderComboBox.Name = "genderComboBox"; + this.genderComboBox.Size = new System.Drawing.Size(121, 28); + this.genderComboBox.TabIndex = 17; + this.genderComboBox.Validating += new System.ComponentModel.CancelEventHandler(this.ComboBox_Validating); + // + // gradeLevelComboBox + // + this.gradeLevelComboBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.studentBindingSource, "GradeLevel", true)); + this.gradeLevelComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.gradeLevelComboBox.FormattingEnabled = true; + this.gradeLevelComboBox.Items.AddRange(new object[] { + "K", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12"}); + this.gradeLevelComboBox.Location = new System.Drawing.Point(384, 287); + this.gradeLevelComboBox.Name = "gradeLevelComboBox"; + this.gradeLevelComboBox.Size = new System.Drawing.Size(121, 28); + this.gradeLevelComboBox.TabIndex = 19; + this.gradeLevelComboBox.Validating += new System.ComponentModel.CancelEventHandler(this.ComboBox_Validating); + // + // save_button + // + this.save_button.Location = new System.Drawing.Point(14, 350); + this.save_button.Name = "save_button"; + this.save_button.Size = new System.Drawing.Size(104, 54); + this.save_button.TabIndex = 20; + this.save_button.Text = "Save"; + this.save_button.UseVisualStyleBackColor = true; + this.save_button.Click += new System.EventHandler(this.save_button_Click); + // + // parent_groupBox + // + this.parent_groupBox.Controls.Add(emailAddressLabel); + this.parent_groupBox.Controls.Add(this.emailAddressTextBox); + this.parent_groupBox.Controls.Add(phoneNumberLabel); + this.parent_groupBox.Controls.Add(this.phoneNumberNumericUpDown); + this.parent_groupBox.Controls.Add(firstNameLabel1); + this.parent_groupBox.Controls.Add(this.parent_firstNameTextBox); + this.parent_groupBox.Controls.Add(lastNameLabel1); + this.parent_groupBox.Controls.Add(this.parent_lastNameTextBox); + this.parent_groupBox.Location = new System.Drawing.Point(606, 51); + this.parent_groupBox.Name = "parent_groupBox"; + this.parent_groupBox.Size = new System.Drawing.Size(344, 235); + this.parent_groupBox.TabIndex = 21; + this.parent_groupBox.TabStop = false; + this.parent_groupBox.Text = "Parent Information"; + // + // emailAddressTextBox + // + this.emailAddressTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.studentBindingSource, "Parent.EmailAddress", true)); + this.emailAddressTextBox.Location = new System.Drawing.Point(131, 189); + this.emailAddressTextBox.Name = "emailAddressTextBox"; + this.emailAddressTextBox.Size = new System.Drawing.Size(172, 26); + this.emailAddressTextBox.TabIndex = 7; + this.toolTips.SetToolTip(this.emailAddressTextBox, "Enter a valid email address with @"); + this.emailAddressTextBox.Validating += new System.ComponentModel.CancelEventHandler(this.emailAddressTextBox_Validating); + // + // phoneNumberNumericUpDown + // + this.phoneNumberNumericUpDown.DataBindings.Add(new System.Windows.Forms.Binding("Value", this.studentBindingSource, "Parent.PhoneNumber", true)); + this.phoneNumberNumericUpDown.Location = new System.Drawing.Point(131, 139); + this.phoneNumberNumericUpDown.Maximum = new decimal(new int[] { + 1410065407, + 2, + 0, + 0}); + this.phoneNumberNumericUpDown.Minimum = new decimal(new int[] { + 1000000000, + 0, + 0, + 0}); + this.phoneNumberNumericUpDown.Name = "phoneNumberNumericUpDown"; + this.phoneNumberNumericUpDown.Size = new System.Drawing.Size(172, 26); + this.phoneNumberNumericUpDown.TabIndex = 5; + this.toolTips.SetToolTip(this.phoneNumberNumericUpDown, "Enter 9 digit phone number with no symbols."); + this.phoneNumberNumericUpDown.Value = new decimal(new int[] { + 1000000000, + 0, + 0, + 0}); + this.phoneNumberNumericUpDown.Validating += new System.ComponentModel.CancelEventHandler(this.phoneNumberNumericUpDown_Validating); + // + // parent_firstNameTextBox + // + this.parent_firstNameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.studentBindingSource, "Parent.FirstName", true)); + this.parent_firstNameTextBox.Location = new System.Drawing.Point(130, 87); + this.parent_firstNameTextBox.Name = "parent_firstNameTextBox"; + this.parent_firstNameTextBox.Size = new System.Drawing.Size(173, 26); + this.parent_firstNameTextBox.TabIndex = 3; + this.parent_firstNameTextBox.Validating += new System.ComponentModel.CancelEventHandler(this.String_TextBox_Validating); + // + // parent_lastNameTextBox + // + this.parent_lastNameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.studentBindingSource, "Parent.LastName", true)); + this.parent_lastNameTextBox.Location = new System.Drawing.Point(130, 39); + this.parent_lastNameTextBox.Name = "parent_lastNameTextBox"; + this.parent_lastNameTextBox.Size = new System.Drawing.Size(173, 26); + this.parent_lastNameTextBox.TabIndex = 1; + this.parent_lastNameTextBox.Validating += new System.ComponentModel.CancelEventHandler(this.String_TextBox_Validating); + // + // clear_button + // + this.clear_button.Location = new System.Drawing.Point(169, 350); + this.clear_button.Name = "clear_button"; + this.clear_button.Size = new System.Drawing.Size(116, 54); + this.clear_button.TabIndex = 22; + this.clear_button.Text = "Clear form for new student"; + this.clear_button.UseVisualStyleBackColor = true; + this.clear_button.Click += new System.EventHandler(this.clear_button_Click); + // + // delete_button + // + this.delete_button.Location = new System.Drawing.Point(320, 350); + this.delete_button.Name = "delete_button"; + this.delete_button.Size = new System.Drawing.Size(104, 54); + this.delete_button.TabIndex = 23; + this.delete_button.Text = "Delete"; + this.delete_button.UseVisualStyleBackColor = true; + // + // pic_openFileDialog + // + this.pic_openFileDialog.DefaultExt = "*.png"; + this.pic_openFileDialog.FileName = "pic_openFileDialog"; + this.pic_openFileDialog.Filter = "Photos|*.png"; + this.pic_openFileDialog.Title = "Upload student photo"; + this.pic_openFileDialog.FileOk += new System.ComponentModel.CancelEventHandler(this.pic_openFileDialog_FileOk); + // + // lblSearch + // + this.lblSearch.AutoSize = true; + this.lblSearch.Location = new System.Drawing.Point(612, 295); + this.lblSearch.Name = "lblSearch"; + this.lblSearch.Size = new System.Drawing.Size(226, 20); + this.lblSearch.TabIndex = 24; + this.lblSearch.Text = "Search Student by Last Name:"; + // + // search_textBox + // + this.search_textBox.Location = new System.Drawing.Point(616, 318); + this.search_textBox.Name = "search_textBox"; + this.search_textBox.Size = new System.Drawing.Size(284, 26); + this.search_textBox.TabIndex = 25; + this.toolTips.SetToolTip(this.search_textBox, "Type last name of student and hit enter"); + this.search_textBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.search_textBox_KeyDown); + // + // errorProvider1 + // + this.errorProvider1.ContainerControl = this; + // + // btnChaosMonkey + // + this.btnChaosMonkey.Location = new System.Drawing.Point(475, 350); + this.btnChaosMonkey.Name = "btnChaosMonkey"; + this.btnChaosMonkey.Size = new System.Drawing.Size(96, 66); + this.btnChaosMonkey.TabIndex = 26; + this.btnChaosMonkey.Text = "CHAOS MONKEY"; + this.btnChaosMonkey.UseVisualStyleBackColor = true; + this.btnChaosMonkey.Click += new System.EventHandler(this.btnChaosMonkey_Click); + // + // foundStudents_comboBox + // + this.foundStudents_comboBox.FormattingEnabled = true; + this.foundStudents_comboBox.Location = new System.Drawing.Point(620, 376); + this.foundStudents_comboBox.Name = "foundStudents_comboBox"; + this.foundStudents_comboBox.Size = new System.Drawing.Size(284, 28); + this.foundStudents_comboBox.TabIndex = 27; + this.foundStudents_comboBox.SelectionChangeCommitted += new System.EventHandler(this.foundStudents_comboBox_SelectionChangeCommitted); + this.foundStudents_comboBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.foundStudents_comboBox_KeyDown); + // + // lblFoundStudents + // + this.lblFoundStudents.AutoSize = true; + this.lblFoundStudents.Location = new System.Drawing.Point(612, 350); + this.lblFoundStudents.Name = "lblFoundStudents"; + this.lblFoundStudents.Size = new System.Drawing.Size(128, 20); + this.lblFoundStudents.TabIndex = 28; + this.lblFoundStudents.Text = "Found Students:"; + // + // studentBindingSource + // + this.studentBindingSource.DataSource = typeof(DBWizard.Models.Student); + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(992, 450); + this.Controls.Add(this.lblFoundStudents); + this.Controls.Add(this.foundStudents_comboBox); + this.Controls.Add(this.btnChaosMonkey); + this.Controls.Add(this.search_textBox); + this.Controls.Add(this.lblSearch); + this.Controls.Add(this.delete_button); + this.Controls.Add(this.clear_button); + this.Controls.Add(this.parent_groupBox); + this.Controls.Add(this.save_button); + this.Controls.Add(gradeLevelLabel); + this.Controls.Add(this.gradeLevelComboBox); + this.Controls.Add(genderLabel); + this.Controls.Add(this.genderComboBox); + this.Controls.Add(schoolLabel); + this.Controls.Add(this.schoolComboBox); + this.Controls.Add(addressLabel); + this.Controls.Add(this.addressTextBox); + this.Controls.Add(this.programComboBox); + this.Controls.Add(programNameLabel); + this.Controls.Add(this.dob_dateTimePicker); + this.Controls.Add(dOBLabel); + this.Controls.Add(student_idLabel); + this.Controls.Add(this.student_idTextBox); + this.Controls.Add(firstNameLabel); + this.Controls.Add(this.firstNameTextBox); + this.Controls.Add(lastNameLabel); + this.Controls.Add(this.lastNameTextBox); + this.Controls.Add(this.student_pictureBox); + this.Controls.Add(this.topTableLayoutPanel); + this.MainMenuStrip = this.mainMenuStrip; + this.Name = "Form1"; + this.Text = "KentYouthDB"; + this.Load += new System.EventHandler(this.Form1_Load); + this.topTableLayoutPanel.ResumeLayout(false); + this.topTableLayoutPanel.PerformLayout(); + this.mainMenuStrip.ResumeLayout(false); + this.mainMenuStrip.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.studentBindingNavigator)).EndInit(); + this.studentBindingNavigator.ResumeLayout(false); + this.studentBindingNavigator.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.student_pictureBox)).EndInit(); + this.parent_groupBox.ResumeLayout(false); + this.parent_groupBox.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.phoneNumberNumericUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.studentBindingSource)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel topTableLayoutPanel; + private System.Windows.Forms.MenuStrip mainMenuStrip; + private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; + private System.Windows.Forms.BindingNavigator studentBindingNavigator; + private System.Windows.Forms.ToolStripButton bindingNavigatorAddNewItem; + private System.Windows.Forms.BindingSource studentBindingSource; + private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorDeleteItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator; + private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator1; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator2; + private System.Windows.Forms.ToolStripButton studentBindingNavigatorSaveItem; + private System.Windows.Forms.PictureBox student_pictureBox; + private System.Windows.Forms.TextBox lastNameTextBox; + private System.Windows.Forms.TextBox firstNameTextBox; + private System.Windows.Forms.TextBox student_idTextBox; + private System.Windows.Forms.DateTimePicker dob_dateTimePicker; + private System.Windows.Forms.ComboBox programComboBox; + private System.Windows.Forms.TextBox addressTextBox; + private System.Windows.Forms.ComboBox schoolComboBox; + private System.Windows.Forms.ComboBox genderComboBox; + private System.Windows.Forms.ComboBox gradeLevelComboBox; + private System.Windows.Forms.ToolStripMenuItem newStudentToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem saveStudentToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem reportsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem studentBySchoolToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem studentsByProgramToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem exitsavesDataToolStripMenuItem; + private System.Windows.Forms.Button save_button; + private System.Windows.Forms.GroupBox parent_groupBox; + private System.Windows.Forms.TextBox emailAddressTextBox; + private System.Windows.Forms.NumericUpDown phoneNumberNumericUpDown; + private System.Windows.Forms.TextBox parent_firstNameTextBox; + private System.Windows.Forms.TextBox parent_lastNameTextBox; + private System.Windows.Forms.Button clear_button; + private System.Windows.Forms.Button delete_button; + private System.Windows.Forms.OpenFileDialog pic_openFileDialog; + private System.Windows.Forms.Label lblSearch; + private System.Windows.Forms.TextBox search_textBox; + private System.Windows.Forms.ErrorProvider errorProvider1; + private System.Windows.Forms.ToolTip toolTips; + private System.Windows.Forms.Button btnChaosMonkey; + private System.Windows.Forms.Label lblFoundStudents; + private System.Windows.Forms.ComboBox foundStudents_comboBox; + } +} + diff --git a/Form1.cs b/Form1.cs new file mode 100644 index 0000000..b42be68 --- /dev/null +++ b/Form1.cs @@ -0,0 +1,335 @@ +using DBWizard.Models; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Runtime.Serialization.Formatters.Binary; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using System.Windows.Forms; + +/* References + * https://www.youtube.com/watch?v=ayp3tHEkRc0 + * https://www.coderslexicon.com/passing-data-between-forms-using-delegates-and-events/ + * https://dapper-tutorial.net/parameter-anonymous + * https://www.sqlitetutorial.net/sqlite-foreign-key/ + * https://stackoverflow.com/questions/289680/difference-between-2-dates-in-sqlite + * https://dzone.com/articles/convert-object-byte-array-and + */ +// Using a delegate to trigger method on the customer view form +// https://www.coderslexicon.com/passing-data-between-forms-using-delegates-and-events/ + + + +namespace DBWizard +{ + public partial class Form1 : Form + { + SqliteDataAccess SqliteDataAccess = new SqliteDataAccess(); + bool bStudentRecordExists = false; + + public Form1() + { + InitializeComponent(); + } + + private void Form1_Load(object sender, EventArgs e) + { + FillComboBoxes(); + } + + /* Fills program and school combo boxes on the form + * with the static data from the sqlite db. + * input: no input + * output: void + */ + private void FillComboBoxes() + { + List programs = new List(); + programs = SqliteDataAccess.GetPrograms(); + + foreach (Program p in programs) + { + programComboBox.Items.Add(p.name); + } + + List schools = new List(); + schools = SqliteDataAccess.GetSchools(); + foreach (School s in schools) + { + schoolComboBox.Items.Add(s.name); + } + } + + //TODO: implement + private void student_pictureBox_DoubleClick(object sender, EventArgs e) + { + DialogResult dr = pic_openFileDialog.ShowDialog(); + if(dr == DialogResult.OK) + { + } + } + + private void pic_openFileDialog_FileOk(object sender, CancelEventArgs e) + { + byte[] dickpic; + + //Chunk file into bytes. + //If file > 2147483647 bytes long, reject file. + dickpic = ObjectToByteArray(student_pictureBox.Image); + if (dickpic.Length >= 2147483647) //THAT'S WHAT SHE SAID + { + MessageBox.Show("The selected student photo size is too large. Choose a smaller photo size or shrink the photo."); + return; + } + } + + //TODO: implement + private void pictureBox1_Click(object sender, EventArgs e) + { + DialogResult dr = pic_openFileDialog.ShowDialog(); + if(dr == DialogResult.OK) + { + //Place in dicpic box + + //change tag of pic box to something else + student_pictureBox.Tag = "dickpic"; + } + } + + private void save_button_Click(object sender, EventArgs e) + { + byte[] dickpic; + + //Perform sanity check, ensure all data is filled except picture + + // Check to see if any control is in error. + foreach (Control c in errorProvider1.ContainerControl.Controls) + { + if (errorProvider1.GetError(c) != "") + { + MessageBox.Show("Please fix the errors on the form!"); + return; + } + } + + //Validate the picture is under 2147483647 characters in length. + dickpic = ObjectToByteArray(student_pictureBox.Image); + if(dickpic.Length >= 2147483647) //THAT'S WHAT SHE SAID + { + MessageBox.Show("The selected student photo size is too large. Choose a smaller photo size or shrink the photo."); + return; + } + + //Collect form data in student object + Student student = new Student(); + student.student_id = student_idTextBox.Text; + student.FirstName = firstNameTextBox.Text; + student.LastName = lastNameTextBox.Text; + student.DOB = dob_dateTimePicker.Value.ToString(); + student.gender = genderComboBox.Text; + student.address = addressTextBox.Text; + student.program_id = programComboBox.SelectedIndex + 1; + student.school_id = schoolComboBox.SelectedIndex + 1; + student.GradeLevel = gradeLevelComboBox.Text; + + if (student_pictureBox.Tag.ToString() == "DefaultImage") + student.photo = null; + else + student.photo = ObjectToByteArray(student_pictureBox.Image); + + //collect parent + Parent parent = new Parent(); + parent.LastName = parent_lastNameTextBox.Text; + parent.FirstName = parent_firstNameTextBox.Text; + parent.PhoneNumber = long.Parse(phoneNumberNumericUpDown.Value.ToString()); + parent.EmailAddress = emailAddressTextBox.Text; + + //save data to sqldb. + //update existing student. + if(SqliteDataAccess.FindStudentByStudentId(student.student_id).Count > 0) + { + SqliteDataAccess.UpdateStudent(student); + SqliteDataAccess.UpdateParent(parent,student.parent_id); + } + else //new student + { + student.parent_id = SqliteDataAccess.InsertNewParent(parent); + SqliteDataAccess.InsertNewStudent(student); + MessageBox.Show("Student successfully added"); + } + } + + //Convert student photo to byte array for saving to db. + //Also used to see if the photo is too large for the db blob type. + private byte[] ObjectToByteArray(Object obj) + { + if (obj == null) + return null; + + BinaryFormatter bf = new BinaryFormatter(); + MemoryStream ms = new MemoryStream(); + bf.Serialize(ms, obj); + + return ms.ToArray(); + } + + //Convert student photo from byte array to object. + // Convert a byte array to an Object + private Object ByteArrayToObject(byte[] arrBytes) + + { + MemoryStream memStream = new MemoryStream(); + BinaryFormatter binForm = new BinaryFormatter(); + + memStream.Write(arrBytes, 0, arrBytes.Length); + memStream.Seek(0, SeekOrigin.Begin); + Object obj = (Object)binForm.Deserialize(memStream); + + return obj; + } + + // Basic input validation on a string given a textbox control + // ensures only values a-z, with length two or greater. + private void String_TextBox_Validating(object sender, CancelEventArgs e) + { + TextBox tb = (TextBox)sender; + if (!Regex.IsMatch(tb.Text, "[A-Za-z]{2,}")) + errorProvider1.SetError(tb, "Enter a value a-z only of length two or longer."); + else + errorProvider1.SetError(tb, ""); + } + + private void ComboBox_Validating(object sender, CancelEventArgs e) + { + ComboBox cb = (ComboBox)sender; + + if (cb.SelectedIndex < 0) + { errorProvider1.SetError(cb, "Select an item."); } + else + { errorProvider1.SetError(cb, ""); } + } + + /* Does not really check to see if it is a valid phone number + * since the phone companies introduce new area codes all the damn time. + * Only checks to see the most likely case that the user of the program + * has left the phone number value as the default minimum value. + */ + private void phoneNumberNumericUpDown_Validating(object sender, CancelEventArgs e) + { + if(phoneNumberNumericUpDown.Value == phoneNumberNumericUpDown.Minimum + || phoneNumberNumericUpDown.Value == phoneNumberNumericUpDown.Maximum) + { errorProvider1.SetError(phoneNumberNumericUpDown, "Type in a valid phone number"); } + else + { errorProvider1.SetError(phoneNumberNumericUpDown, ""); } + } + + private void emailAddressTextBox_Validating(object sender, CancelEventArgs e) + { + //email address regex + //^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,5}$ + if (!Regex.IsMatch(emailAddressTextBox.Text, @"^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,5}$")) + errorProvider1.SetError(emailAddressTextBox, "Enter a valid email address: user@domain.com"); + else + errorProvider1.SetError(emailAddressTextBox, ""); + } + + private void dob_dateTimePicker_Validating(object sender, CancelEventArgs e) + { + if(dob_dateTimePicker.Value == DateTime.Now) + { errorProvider1.SetError(dob_dateTimePicker, "Please choose DOB."); } + else + { errorProvider1.SetError(dob_dateTimePicker, ""); } + } + + private void student_idTextBox_Validating(object sender, CancelEventArgs e) + { + TextBox tb = (TextBox)sender; + if (!Regex.IsMatch(tb.Text, "[A-Za-z0-9]{2,}")) + errorProvider1.SetError(tb, "Enter a value a-z0-9 only of length two or longer."); + else + errorProvider1.SetError(tb, ""); + + } + + //TODO: Remove Chaos Monkey button + private void btnChaosMonkey_Click(object sender, EventArgs e) + { + MessageBox.Show("CHAOS MONKEY"); + return; + + } + + private void clear_button_Click(object sender, EventArgs e) + { + ClearForm(); + } + + // clears the form + private void ClearForm() + { + foreach(Control c in this.Controls) + { + if (c is TextBox) + { + TextBox tb = (TextBox)c; + tb.Text = null; + } + + if(c is ComboBox) + { + ComboBox cb = (ComboBox)c; + cb.SelectedIndex = -1; + } + + if(c is DateTimePicker) + { + DateTimePicker dtp = (DateTimePicker)c; + dtp.Value = DateTime.Today; + } + + if(c is NumericUpDown) + { + NumericUpDown nud = (NumericUpDown)c; + nud.Value = nud.Minimum; + } + } + } + + private void search_textBox_KeyDown(object sender, KeyEventArgs e) + { + List foundStudents = new List(); + + if (e.KeyCode == Keys.Enter) + { + foundStudents_comboBox.Items.Clear(); + foundStudents_comboBox.Text = String.Empty; + + foundStudents = SqliteDataAccess.FindStudentByLastname(search_textBox.Text); + + foreach (Student s in foundStudents) + { + foundStudents_comboBox.Items.Add(s); + } + + foundStudents_comboBox.Text = (foundStudents.Count > 0) ? "Students found, click here" : "No students found"; + } + } + + //Do nothing if the user tries to type in the found student combobox. + private void foundStudents_comboBox_KeyDown(object sender, KeyEventArgs e) + { + e.SuppressKeyPress = true; + } + + //TODO:Populate the form based on the found student. + private void foundStudents_comboBox_SelectionChangeCommitted(object sender, EventArgs e) + { + ClearForm(); + } + } +} diff --git a/Form1.resx b/Form1.resx new file mode 100644 index 0000000..a3ac36e --- /dev/null +++ b/Form1.resx @@ -0,0 +1,305 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + False + + + 17, 17 + + + 446, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAW + JQAAFiUBSVIk8AAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC + pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ + Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ + /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA + zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/ + IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E + rkJggg== + + + + 204, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAW + JQAAFiUBSVIk8AAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC + DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC + rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV + i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG + 86CNhdrsX9a/uQZTPhQl4rMY4OLofbl3aX7I8uwPC7y/g1YdjyVJuEvT8e1tfwUYteHUxCCfHChDeHmG + QQvokjlOU+PbWA0x3pZnILVVI3uvQyHsbiLnqnGmRCF1NYD8pDhpRxOH7HQoAKZGkFKjceszQbpSrumX + bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAW + JQAAFiUBSVIk8AAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 + v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg + UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA + Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu + lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAW + JQAAFiUBSVIk8AAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f + Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ + 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAW + JQAAFiUBSVIk8AAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI + N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f + oAc0QjgAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAW + JQAAFiUBSVIk8AAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B + twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA + kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG + WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 + 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAW + JQAAFiUBSVIk8AAAAExJREFUOE9joAr49u3bf1IxVCsEgAWC58Dxh/cf4RhZDETHTNiHaQgpBoAwzBCo + dtINAGGiDUDGyGpoawAxeNSAQWkAORiqnRLAwAAA9EMMU8Daa3MAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAAJwAAACcCAYAAACKuMJNAAABg2lDQ1BJQ0MgcHJvZmlsZQAAKM+VkUso + RFEcxn8zRiSyMCFZ3AWyQEKy1BApSjOjxmPh3jtmqLnXdO/IxlLZKguPjdfCxpqtha1SyqNkZWlFbKTr + f+6omdQop07n13fO93XOdyB4kDEtN9QNlp1zoqMRLTE9o1U8E6KBerpo1003OxEbiVNyfNwSUOtNp8ri + f6MmueCaENCEB82skxOeF+5fzWUV7wiHzUU9KXwq3OHIBYXvlW7k+UVx2uegygw78eiQcFhYSxexUcTm + omMJ9wm3JC1b8oOJPCcVrym2Mivmzz3VC6sX7KmY0mU2M8oYE0yiYbDCEhlydMpqi+ISlf1ICX+T758U + lyGuJUxxDLOMhe77UX/wu1s31duTT6qOQPmT5721QsUWfG163ueh530dQdkjXNgF//IBDLyLvlnQWvah + dh3OLguasQ3nG9D4kNUd3ZfKZAZTKXg9kW+ahrprqJrN9/azz/EdxKWr8SvY3YO2tGTPlXh3ZXFvf57x + +yPyDdt5ctEMnipuAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH5AQXFi84W/pl4wAACVJJREFU + eF7tnXusHFUdx8tDFHygyEOxagiagmL8g2gCAWMKhGgwCiESW9GYSINpUAsJxCBQAhoQAQk+qxBEU8OK + Vh7qH5Rsi3ElMN27s3Pn3sKNNPWClVDAa4HYhy3fX/zmspyeLWR2dvecme8n+WRv+rh7zvd35j1zZoEQ + QgghhBBCCCGEEA7tdvuINE1PhV/tdrvXwJvgKtig9vPNWZZdi88L4Cfwb4/kfxdi32DAHAeXY9D8DoPo + Gfy8p6Bb4Rr8jq/j8yN79uzZj18h6g4G10IMisswOB7nYBmGs/ieWyYnJz/KrxV1A4Pg07AJd3NQjMoW + Bvc5WOvtz6aIqmKbNis2ir7BGQTjMEdbzm80GgeweaJKYJO2CEVe6xR97KJdE/g8ic0UsZMkySEo6g0o + 6o7eQgfm/+CqiYmJt7PZIkZQRDvqNHxFDtHNUGu7GMFa7cso3gs9xYzF7XCFTqVEghUKg22lU8QYvaPZ + bB7IbokQsSM+FMrO/vsKGJ04ir3X9kHZPREStjZAkda4RauA6zXoAsM2oyjMbU6hquT92rwGBE97+ApV + JX+lA4kAQCHsLg1fgaropey2GAdYs52AIrzoFKXK7ux0Oqew+2KUbNy48a0owEanIHVwFgcRhzMGMSqy + LPuRpxi1EGv2OxmDGAUI/US4q7cIdRODbjHjEMMER2r7I/CH3QLU0MdmZmbeyFjEsMCSbddIfQWoncji + a4xFDAOu3XI3+Bq7Oc/zgxiPKBscKJznCb3ufoXxiLJBuIkTtux2pxiPKBOe5PUFXns7nc7HGZMoCwR7 + oxu0nPdWxiTKgLcebXFClq+4NUmSNzAuMSg4WDjZE7LsEbscpzIuMSgI9Ao3YPlqsVBexbjEoCBQe0Le + G7Scdz3jEoNgJzYR5n+dcOXebtelrhLAgPuQJ1zpEZvV4xmbKApCPNsXrvT6OcYmioIB9y1PsNLvZYxN + FAUh/tQJVfYxTdOfMDZRFAS52g1W9vXXjE0UBUvtfZ5gpd97GJsoCkJc54Qq+9tkbKIoCPEhJ1TZ34cY + mygKQvyTE6rs7/2MTRQFId7lhCr7mGXZbxibKApC/LkvXOl1FWMTRUGIVzuhyv5eydhEURDiEidU2Uds + Dc5jbKIoCNKesvcGLF+t3nRTApy0xqaV94Ys592lmTJLAmF2nHDl3j7CuMSgIEw9sfXaXse4xKBgZ/gs + T8Cyx06ncybjEoPC/biX3JDlvNu0/1YydhbdE7SEyOaXjEmUBYL9lBu0nPd0xiTKgk/f/9MJWna7s3rn + 6pDApkPPNzgik0sYjyibmZmZtyHk59zQa+zWPM/fwnjEMEDIupj/it9mLGJY2FuTEfS/nODr6FN2uoix + iGGSpumXPAWoldh3050ho4JvD3zQLUKNXKcXvY0YrOUWIfhtTiHq4BwOFD7AGMQosc2KpyBVdym7L8YB + Bl1tnnnQVA4B0Gq1Dsag+4uvQBWzqfnfAiFJkkOx9E94ilQVM/gOdleEQLvdPhpFeaKnSFXxCesbuylC + Ympq6t0oUJVuR8+x5l7I7okQ4ZWIKsxH8rfp6el3slsiZOxAAgW7wylgTN5ufWB3RCzwElhMJ4ftNvoL + 2HwRI1mWHY8itnqKGqotm7GdzRYxY9cdubZ72ilyCD6Htn3DXj7M5oqqgDXIYVjjfQ9FDmEzuw0D7QYd + GNQAG3gouN3I+WzPABiVz8NrkiQ5nM0RdcEuFWEt8xkMgAbczgExDHfBB2yzDt/Mrxd1xtY4GBRLMCB+ + gc+/c6AM4iZ4G1zSbreP4NcI4QcDbyH2987AgFkOb4V/gHbTZ4I/fxyfj9nPcC20v/shXG7/B76Xv0YI + IYQQQgghhBBCCCFE6GzatOlNdsHd1FNUYiA6nc570jRdnGXZhd1u92b4ZzgJ7TKVTRNm10TdS1g7of2d + PcBjT1f9Edqs68vwez6Z5/m7+OtFnbH7z+zNLRhg38TAuBcDxO7icAdTWW6Fv8f3XIRB/WE2QVQdm+kb + hV+Kwt8Nn+kZEKN2C1yNwX6uNssVw9ZkWKucggL/DP6HBQ/J5zHw7sTn6ZoRKWLscUEU8nIU8h89xQ1d + uwNlBdqte+Ziwe5rQ8FWonDD3Ccbqra5tz7YQsNuidCwo0EU6RYU7EW3gBFrC83VGngBYftoKMoy+G8W + qYraUe4y7eONGRTBXt77CItSB9djLX4Cuy9Ghc3ejf0cm4hwt1OQOrgDg+672IU4iHGIYWInThF67hSh + jm7AQncsYxHDAEu2PT1fpYOCQZ3DoPs84xFlwfel3uWELf/vbgy6H2gTWxII8yiEusEJWe7tg/YuMsYm + ioBN6DEYcPYMqC9gubeP6qHrgtjhPwJ80glUvrbT2Ly+jzGK1wPWaicjuDknSPn6ncUCu4hxin3B0x7j + mNWoas5iwdWUE/sCS+VCBLXZCU4WV+936AdnL5ruCUuW43p7DoMxC8MCQTAPO0HJ8vytLvz3gH2NH3tC + kuV6MeOuN9hvO9cTjizfHfAkxl5PsGY7FiFU+T620Nyc5/lhjL9e2NNKCMBmkPQFI4ckFvK7WYJ6gc5f + 4YYhRyN2Y77AMtSDqamp96PjL7hByJG5JUmSQ1mO6oMl7D5PCHKEogbfZzmqDTr7WbfzcizutKkuWJZq + wgMFmxjGF4AcvetYmmqCIySblcjXcTkmsWldzPJUi0ajcQA6OON2WI7dB1iiaoG12/mezsowrNYVCLtw + jE7ZrTK+zsrxu4alqgbokI5Mw3Z3XqW3UaND9zgdlOF5PcsVNzb5MjozzHeRynJ8yg7sWLZ4wcHCRZ7O + yQBN0/Q0li1e0JE6zW4Uu7ezbHGCDhzndEiG7Vyr1TqY5YsPdGCF0yEZuNgFOoPliw803t5/4O2YDFPU + 7DssX1zwUla0EzvX2L+yhHExOTn5MU9nZPjutOnRWMZ4QMMvdToiI7HT6ZzJMsYDGr7G7YiMwzRNV7KM + 8YCGa9qGeF3NMsZBs9k8EI3W5ax4fZSljIOJiYkPejoh43GOpYyDLMvO8nRCRiT2445kOcMHDb7Y7YCM + S3vlJ8sZPmjw9W4HZFxiK3U2yxk+aKym34pc1PCLLGf4YPtvbzj2dkTGIQbchSxn+KDBOukbuRhwl7Cc + 4YMGr3U7IOMSA+4qljN80Nhr0eiGjNqlLKcQQgghhBBCCCGEGJQFC14GIEaNVj05/rcAAAAASUVORK5C + YII= + + + + 17, 65 + + + 713, 17 + + + 929, 17 + + + 94 + + \ No newline at end of file diff --git a/MainProgram.cs b/MainProgram.cs new file mode 100644 index 0000000..e478ffe --- /dev/null +++ b/MainProgram.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace DBWizard +{ + static class MainProgram + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/Models/Parent.cs b/Models/Parent.cs new file mode 100644 index 0000000..9c191a1 --- /dev/null +++ b/Models/Parent.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DBWizard.Models +{ + public class Parent + { + public int parent_id { get; } + public string FirstName { get; set; } + public string LastName { get; set; } + public long PhoneNumber { get; set; } + public string EmailAddress { get; set; } + } +} diff --git a/Models/Program.cs b/Models/Program.cs new file mode 100644 index 0000000..f18dd78 --- /dev/null +++ b/Models/Program.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DBWizard.Models +{ + public class Program + { + public int program_id { get; } + public string name { get; } + } +} diff --git a/Models/School.cs b/Models/School.cs new file mode 100644 index 0000000..223742d --- /dev/null +++ b/Models/School.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DBWizard.Models +{ + public class School + { + public int school_id { get; } + public string name { get; } + } +} diff --git a/Models/Student.cs b/Models/Student.cs new file mode 100644 index 0000000..3d8e7ed --- /dev/null +++ b/Models/Student.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DBWizard.Models +{ + public class Student + { + public int id { get; } + public string student_id { get; set; } + public int parent_id { get; set; } + public string FirstName { get; set; } + public string LastName { get; set; } + public string DOB { get; set; } + public string gender { get; set; } + public string address { get; set; } + public int program_id { get; set; } + public int school_id { get; set; } + public string GradeLevel { get; set; } + public byte[] photo { get; set; } + + public virtual Parent Parent { get; set; } + public virtual Program Program { get; set; } + public virtual School School { get; set; } + + //override toString for search functionality. + public override string ToString() + { + string str = $"{LastName}, {FirstName} student id: {student_id}"; + return str; + } + } +} diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..5547b75 --- /dev/null +++ b/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("DBWizard")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("DBWizard")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("42d31e64-c955-4c6f-9be2-1fc06e252f37")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Properties/DataSources/DBWizard.Models.Student.datasource b/Properties/DataSources/DBWizard.Models.Student.datasource new file mode 100644 index 0000000..e2a3fbd --- /dev/null +++ b/Properties/DataSources/DBWizard.Models.Student.datasource @@ -0,0 +1,58 @@ + + + + + + DBWizard.Models.Parent, DBWizard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + + + + + + + + + + + + + + DBWizard.Models.School, DBWizard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + + + + + + + + + + + + + + DBWizard.Models.Student, DBWizard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs new file mode 100644 index 0000000..c06f16a --- /dev/null +++ b/Properties/Resources.Designer.cs @@ -0,0 +1,73 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace DBWizard.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DBWizard.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap student { + get { + object obj = ResourceManager.GetObject("student", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Properties/Resources.resx b/Properties/Resources.resx new file mode 100644 index 0000000..3ee3896 --- /dev/null +++ b/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\student.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs new file mode 100644 index 0000000..75f0786 --- /dev/null +++ b/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace DBWizard.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Properties/Settings.settings b/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Resources/student.png b/Resources/student.png new file mode 100644 index 0000000..c890673 Binary files /dev/null and b/Resources/student.png differ diff --git a/SqliteDataAccess.cs b/SqliteDataAccess.cs new file mode 100644 index 0000000..c68bb68 --- /dev/null +++ b/SqliteDataAccess.cs @@ -0,0 +1,145 @@ +using Dapper; +using DBWizard.Models; +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Data.SQLite; +using System.Linq; + +namespace DBWizard +{ + class SqliteDataAccess + { + public List FindStudentByLastname(string last_name) + { + //A using statement protects us as a failsafe: it guarantees the connection to the + //database will be closed, even in event of an application or computer crash. + using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString())) + { + string strQuery = "SELECT * FROM students WHERE LastName=@LastName"; + + var output = cnn.Query(strQuery, new { LastName = last_name }); + return output.ToList(); + } + } + + //Can also be used for search function. + public List FindStudentByStudentId(string studentid_in) + { + using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString())) + { + string strQuery = "SELECT * FROM students WHERE student_id=@studentid"; + + var output = cnn.Query(strQuery, new { studentid = studentid_in }); + return output.ToList(); + } + } + + internal void UpdateStudent(Student stu) + { + using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString())) + { + string strQuery = "UPDATE Students SET student_id = @student_id, FirstName = @First_Name, LastName = @Last_Name," + + "DOB = @_dob, Gender = @_gender, Address = @_address, GradeLevel = @Grade_Level, Photo = @_photo" + + "WHERE id = @_id;"; + + cnn.Execute(strQuery, new + { + _id = stu.id, + student_id = stu.student_id, + First_Name = stu.FirstName, + Last_Name = stu.LastName, + _dob = stu.DOB, + _gender = stu.gender, + _address = stu.address, + Grade_Level = stu.GradeLevel, + _photo = stu.photo ?? null + }); + } + } + + internal void InsertNewStudent(Student stu) + { + using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString())) + { + string strQuery = "INSERT INTO STUDENTS (student_id, parent_id, FirstName, LastName, DOB, gender, address, program_id, school_id, GradeLevel, photo)" + + "VALUES (@student_id, @parent_id, @FirstName, @LastName, @DOB, @gender, @address, @program_id, @school_id, @GradeLevel, @photo)"; + cnn.Execute(strQuery, stu); + } + } + + /* Inserts a new parent. + * returns parent id as the new row # it just inserted. + */ + internal int InsertNewParent(Parent par) + { + using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString())) + { + string strQuery = "INSERT INTO PARENTS (FirstName,LastName,PhoneNumber,EmailAddress)" + + "VALUES (@FirstName,@LastName,@PhoneNumber,@EmailAddress);"; + var affectedRow = cnn.Execute(strQuery, par); + return affectedRow; + } + } + + internal void UpdateParent(Parent par, int parent_id_in) + { + using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString())) + { + string strQuery = "UPDATE Parents SET FirstName = @First_Name, LastName = @Last_Name," + + "PhoneNumber = @Phone_Number, EmailAddress = @Email_Address" + + "WHERE parent_id = @_id;"; + + cnn.Execute(strQuery, new + { + _id = parent_id_in, + First_Name = par.FirstName, + Last_Name = par.LastName, + Phone_Number = par.PhoneNumber, + Email_Address = par.EmailAddress + }); + } + } + + internal List GetPrograms() + { + using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString())) + { + string strQuery = "SELECT name FROM programs;"; + + var output = cnn.Query(strQuery, new DynamicParameters()); + return output.ToList(); + } + } + + internal List GetSchools() + { + using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString())) + { + string strQuery = "SELECT name FROM schools;"; + + var output = cnn.Query(strQuery, new DynamicParameters()); + return output.ToList(); + } + } + + public List GetParentByID(int parent_id) + { + using (IDbConnection cnn = new SQLiteConnection(LoadConnectionString())) + { + string strQuery = "SELECT * FROM parents WHERE id=@id;"; + + var output = cnn.Query(strQuery, new { id = parent_id }); + + return output.ToList(); + } + } + + private static string LoadConnectionString(string id = "Default") + { + return ConfigurationManager.ConnectionStrings[id].ConnectionString; + } + + } //class SqliteDataAccess +} diff --git a/packages.config b/packages.config new file mode 100644 index 0000000..56c32da --- /dev/null +++ b/packages.config @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/packages/CsvHelper.15.0.5/.signature.p7s b/packages/CsvHelper.15.0.5/.signature.p7s new file mode 100644 index 0000000..8bc2280 Binary files /dev/null and b/packages/CsvHelper.15.0.5/.signature.p7s differ diff --git a/packages/CsvHelper.15.0.5/CsvHelper.15.0.5.nupkg b/packages/CsvHelper.15.0.5/CsvHelper.15.0.5.nupkg new file mode 100644 index 0000000..d056e22 Binary files /dev/null and b/packages/CsvHelper.15.0.5/CsvHelper.15.0.5.nupkg differ diff --git a/packages/CsvHelper.15.0.5/Icon.png b/packages/CsvHelper.15.0.5/Icon.png new file mode 100644 index 0000000..e8c5d82 Binary files /dev/null and b/packages/CsvHelper.15.0.5/Icon.png differ diff --git a/packages/CsvHelper.15.0.5/lib/net45/CsvHelper.dll b/packages/CsvHelper.15.0.5/lib/net45/CsvHelper.dll new file mode 100644 index 0000000..6c359eb Binary files /dev/null and b/packages/CsvHelper.15.0.5/lib/net45/CsvHelper.dll differ diff --git a/packages/CsvHelper.15.0.5/lib/net45/CsvHelper.xml b/packages/CsvHelper.15.0.5/lib/net45/CsvHelper.xml new file mode 100644 index 0000000..71bf506 --- /dev/null +++ b/packages/CsvHelper.15.0.5/lib/net45/CsvHelper.xml @@ -0,0 +1,7539 @@ + + + + CsvHelper + + + + + Represents errors that occur due to bad data. + + + + + Initializes a new instance of the class. + + The reading context. + + + + Initializes a new instance of the class + with a specified error message. + + The reading context. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The reading context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Types of caches. + + + + + None. + + + + + Named index. + + + + + Delegate that creates objects when reading. + + + + + Delegate that writes objects to strings when writing. + + + + + Type converter options. + + + + + Raw record. + + + + + The string values used to represent a boolean false when converting. + + + + + Gets the false values. + + + + + The string values used to represent a boolean false when converting. + + The false values. + + + + The string values used to represent a boolean false when converting. + + The false values. + + + + Applies configuration to the given . + + The member map. + + + + The string values used to represent a boolean true when converting. + + + + + Gets the true values. + + + + + The string values used to represent a boolean true when converting. + + + + + + The string values used to represent a boolean true when converting. + + + + + + Applies configuration to the given . + + The member map. + + + + The constant value that will be used for every record when + reading and writing. This value will always be used no matter + what other mapping configurations are specified. + + + + + Gets the constant. + + + + + The constant value that will be used for every record when + reading and writing. This value will always be used no matter + what other mapping configurations are specified. + + The constant. + + + + Applies configuration to the given . + + The member map. + + + + The used when type converting. + This will override the global + setting. + + + + + Gets the culture info. + + + + + The used when type converting. + This will override the global + setting. + + The culture. + + + + Applies configuration to the given . + + The member map. + + + + The to use when type converting. + This is used when doing any conversions. + + + + + Gets the date time styles. + + + + + The to use when type converting. + This is used when doing any conversions. + + The date time styles. + + + + Applies configuration to the given . + + The member map. + + + + The default value that will be used when reading when + the CSV field is empty. + + + + + Gets the default value. + + + + + The default value that will be used when reading when + the CSV field is empty. + + The default value + + + + Applies configuration to the given . + + The member map. + + + + The string format to be used when type converting. + + + + + Gets the formats. + + + + + The string format to be used when type converting. + + The format. + + + + The string format to be used when type converting. + + The formats. + + + + Applies configuration to the given . + + The member map. + + + + Appends a prefix to the header of each field of the reference member. + + + + + Gets the prefix. + + + + + Appends a prefix to the header of each field of the reference member. + + + + + Appends a prefix to the header of each field of the reference member. + + The prefix. + + + + Applies configuration to the given . + + The reference map. + + + + Ignore the member when reading and writing. + If this member has already been mapped as a reference + member, either by a class map, or by automapping, calling + this method will not ignore all the child members down the + tree that have already been mapped. + + + + + Applies configuration to the given . + + The member map. + + + + Applies configuration to the given . + + The reference map. + + + + + Defines methods to enables pluggable configuration of member mapping. + + + + + Applies configuration to the given . + + The member map. + + + + Defines methods to enables pluggable configuration of member mapping. + + + + + Applies configuration to the given . + + The reference map. + + + + When reading, is used to get the field at + the given index. When writing, the fields + will be written in the order of the field + indexes. + + + + + Gets the index. + + + + + Gets the index end. + + + + + When reading, is used to get the field at + the given index. When writing, the fields + will be written in the order of the field + indexes. + + The index. + The index end. + + + + Applies configuration to the given . + + The member map. + + + + When reading, is used to get the field + at the index of the name if there was a + header specified. It will look for the + first name match in the order listed. + When writing, sets the name of the + field in the header record. + The first name will be used. + + + + + Gets the names. + + + + + When reading, is used to get the field + at the index of the name if there was a + header specified. It will look for the + first name match in the order listed. + When writing, sets the name of the + field in the header record. + The first name will be used. + + The name + + + + When reading, is used to get the field + at the index of the name if there was a + header specified. It will look for the + first name match in the order listed. + When writing, sets the name of the + field in the header record. + The first name will be used. + + The names. + + + + Applies configuration to the given . + + The member map. + + + + When reading, is used to get the + index of the name used when there + are multiple names that are the same. + + + + + The name index. + + + + + When reading, is used to get the + index of the name used when there + are multiple names that are the same. + + The name index. + + + + Applies configuration to the given . + + The member map. + + + + The string values used to represent null when converting. + + + + + Gets the null values. + + + + + The string values used to represent null when converting. + + The null values. + + + + The string values used to represent null when converting. + + The null values. + + + + Applies configuration to the given . + + The member map. + + + + The to use when type converting. + This is used when doing any number conversions. + + + + + Gets the number styles. + + + + + The to use when type converting. + This is used when doing any number conversions. + + The number styles. + + + + Applies configuration to the given . + + The member map. + + + + Ignore the member when reading if no matching field name can be found. + + + + + Applies configuration to the given . + + The member map. + + + + Specifies the to use + when converting the member to and from a CSV field. + + + + + Gets the type converter. + + + + + Specifies the to use + when converting the member to and from a CSV field. + + + + + + Applies configuration to the given . + + The member map. + + + + Maps class members to CSV fields. + + + + + The type of the class this map is for. + + + + + The class constructor parameter mappings. + + + + + The class member mappings. + + + + + The class member reference mappings. + + + + + Allow only internal creation of CsvClassMap. + + The type of the class this map is for. + + + + Maps a member to a CSV field. + + The type of the class this map is for. This may not be the same type + as the member.DeclaringType or the current ClassType due to nested member mappings. + The member to map. + If true, an existing map will be used if available. + If false, a new map is created for the same member. + The member mapping. + + + + Maps a non-member to a CSV field. This allows for writing + data that isn't mapped to a class member. + + The member mapping. + + + + Maps a member to another class map. + + The type of the class map. + The member. + Constructor arguments used to create the reference map. + The reference mapping for the member. + + + + Auto maps all members for the given type. If a member + is mapped again it will override the existing map. + + The culture. + + + + Auto maps all members for the given type. If a member + is mapped again it will override the existing map. + + The configuration. + + + + Get the largest index for the + members and references. + + The max index. + + + + Resets the indexes based on the given start index. + + The index start. + The last index + 1. + + + + Auto maps the given map and checks for circular references as it goes. + + The map to auto map. + The configuration. + The list of parents for the map. + The index starting point. + + + + Auto maps the given map using constructor parameters. + + The map. + The configuration. + The list of parents for the map. + The index starting point. + + + + Checks for circular references. + + The type to check for. + The list of parents to check against. + A value indicating if a circular reference was found. + True if a circular reference was found, otherwise false. + + + + Gets the generic type for this class map. + + + + + Applies attribute configurations to the map. + + The member map. + + + + Applies attribute configurations to the map. + + The reference map. + + + + Has mapping capabilities. + + The class type. + + + + Maps a member to a CSV field. + + The member to map. + If true, an existing map will be used if available. + If false, a new map is created for the same member. + The member mapping. + + + + Options after a mapping call. + + The class type. + The member type. + + + + Has type converter capabilities. + + The class type. + The member type. + + + + Specifies the to use + when converting the member to and from a CSV field. + + The TypeConverter to use. + + + + Specifies the to use + when converting the member to and from a CSV field. + + The of the + to use. + + + + Options after a type converter call. + + The class type. + The member type. + + + + Has index capabilities. + + The class type. + The member type. + + + + When reading, is used to get the field at + the given index. When writing, the fields + will be written in the order of the field + indexes. + + The index of the CSV field. + The end index used when mapping to an member. + + + + Options after an index call. + + The class type. + The member type. + + + + Has optional capabilities. + + The class type. + The member type. + + + + Ignore the member when reading if no matching field name can be found. + + + + + Options after an optional call. + + The class type. + The member type. + + + + Has name capabilities. + + The class type. + The member type. + + + + When reading, is used to get the field + at the index of the name if there was a + header specified. It will look for the + first name match in the order listed. + When writing, sets the name of the + field in the header record. + The first name will be used. + + The possible names of the CSV field. + + + + Options after a name call. + + The class type. + The member type. + + + + Has name index capabilities. + + The class type. + The member type. + + + + When reading, is used to get the + index of the name used when there + are multiple names that are the same. + + The index of the name. + + + + Options after a name index call. + + The class type. + The member type. + + + + Has convert using capabilities. + + The class type. + The member type. + + + + Specifies an expression to be used to convert data in the + row to the member. + + The convert expression. + + + + Specifies an expression to be used to convert the object + to a field. + + The convert expression. + + + + Has default capabilities. + + The class type. + The member type. + + + + The default value that will be used when reading when + the CSV field is empty. + + The default value. + + + + The default value that will be used when reading when + the CSV field is empty. This value is not type checked + and will use a to convert + the field. This could potentially have runtime errors. + + The default value. + + + + Options after a default call. + + The class type. + The member type. + + + + Has constant capabilities. + + The class type. + The member type. + + + + The constant value that will be used for every record when + reading and writing. This value will always be used no matter + what other mapping configurations are specified. + + The constant value. + + + + Has validate capabilities. + + The class type. + The member type. + + + + The validate expression that will be called on every field when reading. + The expression should return true if the field is valid. + If false is returned, a + will be thrown. + + The validation expression. + + + + Has build capabilities. + + The class type. + + + + Builds the . + + + + + Collection that holds CsvClassMaps for record types. + + + + + Gets the for the specified record type. + + + The . + + The record type. + The for the specified record type. + + + + Creates a new instance using the given configuration. + + The configuration. + + + + Finds the for the specified record type. + + The record type. + The for the specified record type. + + + + Adds the specified map for it's record type. If a map + already exists for the record type, the specified + map will replace it. + + The map. + + + + Removes the class map. + + The class map type. + + + + Removes all maps. + + + + + Goes up the inheritance tree to find the type instance of CsvClassMap{}. + + The type to traverse. + The type that is CsvClassMap{}. + + + + Sets defaults for the mapping tree. The defaults used + to be set inside the classes, but this didn't allow for + the TypeConverter to be created from the Configuration's + TypeConverterFactory. + + The map to set defaults on. + + + + Maps class members to CSV fields. + + The of class to map. + + + + Creates an instance of . + + + + + Maps a member to a CSV field. + + The member to map. + If true, an existing map will be used if available. + If false, a new map is created for the same member. + The member mapping. + + + + Meant for internal use only. + Maps a member to another class map. When this is used, accessing a property through + sub-property mapping later won't work. You can only use one or the other. When using + this, ConvertUsing will also not work. + + The type of the class map. + The expression. + Constructor arguments used to create the reference map. + The reference mapping for the member. + + + + Represents configuration errors that occur. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + Holds the default callback methods for delegate members of CsvHelper.Configuration.Configuration. + + + + Throws a if is false. + + + + + Throws a MissingFieldException. + + + + + Throws a . + + + + + Throws the given . + + + + + Returns true if the field contains a , + starts with a space, ends with a space, contains \r or \n, or contains + the . + + The field. + The context. + + + + + Returns false. + + + + + Returns the as given. + + + + + Returns true if : + 1. does not have a parameterless constructor + 2. has a constructor + 3. is not a user defined struct + 4. is not an interface + 5. TypeCode is not an Object. + + + + + Returns the type's constructor with the most parameters. + If two constructors have the same number of parameters, then + there is no guarantee which one will be returned. If you have + that situation, you should probably implement this function yourself. + + + + + Configuration used for reading and writing CSV data. + + + + + Gets or sets the . + + + + + Gets or sets the . + + + + + Gets or sets a value indicating if the + CSV file has a header record. + Default is true. + + + + + Gets or sets the function that is called when a header validation check is ran. The default function + will throw a if there is no header for a given member mapping. + You can supply your own function to do other things like logging the issue instead of throwing an exception. + Arguments: isValid, headerNames, headerNameIndex, context + + + + + Gets or sets the function that is called when a missing field is found. The default function will + throw a . You can supply your own function to do other things + like logging the issue instead of throwing an exception. + Arguments: headerNames, index, context + + + + + Gets or sets the function that is called when bad field data is found. A field + has bad data if it contains a quote and the field is not quoted (escaped). + You can supply your own function to do other things like logging the issue + instead of throwing an exception. + Arguments: context + + + + + Gets or sets the function that is called when a reading exception occurs. + The default function will re-throw the given exception. If you want to ignore + reading exceptions, you can supply your own function to do other things like + logging the issue. + Arguments: exception + + + + + Gets or sets the callback that will be called to + determine whether to skip the given record or not. + + + + + Gets or sets a value indicating if a line break found in a quote field should + be considered bad data. True to consider a line break bad data, otherwise false. + Defaults to false. + + + + + Gets or sets a value indicating if fields should be sanitized + to prevent malicious injection. This covers MS Excel, + Google Sheets and Open Office Calc. + + + + + Gets or sets the characters that are used for injection attacks. + + + + + Gets or sets the character used to escape a detected injection. + + + + + Gets or sets a value indicating whether changes in the column + count should be detected. If true, a + will be thrown if a different column count is detected. + + + true if [detect column count changes]; otherwise, false. + + + + + Prepares the header field for matching against a member name. + The header field and the member name are both ran through this function. + You should do things like trimming, removing whitespace, removing underscores, + and making casing changes to ignore case. + + + + + Determines if constructor parameters should be used to create + the class instead of the default constructor and members. + + + + + Chooses the constructor to use for constructor mapping. + + + + + Gets or sets the comparer used to order the properties + of dynamic objects when writing. The default is null, + which will preserve the order the object properties + were created with. + + + + + Gets or sets a value indicating whether references + should be ignored when auto mapping. True to ignore + references, otherwise false. Default is false. + + + + + Gets or sets the field trimming options. + + + + + Gets or sets the delimiter used to separate fields. + Default is CultureInfo.TextInfo.ListSeparator. + + + + + Gets or sets the escape character used to escape a quote inside a field. + Default is '"'. + + + + + Gets or sets the character used to quote fields. + Default is '"'. + + + + + Gets a string representation of the currently configured Quote character. + + + The new quote string. + + + + + Gets a string representation of two of the currently configured Quote characters. + + + The new double quote string. + + + + + Gets or sets a function that is used to determine if a field should get quoted + when writing. + Arguments: field, context + + + + + Gets or sets the character used to denote + a line that is commented out. Default is '#'. + + + + + Gets or sets a value indicating if comments are allowed. + True to allow commented out lines, otherwise false. + + + + + Gets or sets the size of the buffer + used for reading CSV files. + Default is 2048. + + + + + Gets or sets a value indicating whether the number of bytes should + be counted while parsing. Default is false. This will slow down parsing + because it needs to get the byte count of every char for the given encoding. + The needs to be set correctly for this to be accurate. + + + + + Gets or sets the encoding used when counting bytes. + + + + + Gets or sets the culture info used to read an write CSV files. + Default is . + + + + + Gets or sets a value indicating if quotes should be + ignored when parsing and treated like any other character. + + + + + Gets or sets a value indicating if private + member should be read from and written to. + True to include private member, otherwise false. Default is false. + + + + + Gets or sets the member types that are used when auto mapping. + MemberTypes are flags, so you can choose more than one. + Default is Properties. + + + + + Gets or sets a value indicating if blank lines + should be ignored when reading. + True to ignore, otherwise false. Default is true. + + + + + Gets or sets a callback that will return the prefix for a reference header. + Arguments: memberType, memberName + + + + + The configured s. + + + + + Gets or sets the newline to use when writing. + + + + + Gets the newline string to use when writing. This string is determined + by the value. + + + + + Gets or sets a value indicating that during writing if a new + object should be created when a reference member is null. + True to create a new object and use it's defaults for the + fields, or false to leave the fields empty for all the + reference member's member. + + + + + Initializes a new instance of the class + using the given . Since + uses for it's default, the given + will be used instead. + + The culture information. + + + + Use a to configure mappings. + When using a class map, no members are mapped by default. + Only member specified in the mapping are used. + + The type of mapping class to use. + + + + Use a to configure mappings. + When using a class map, no members are mapped by default. + Only members specified in the mapping are used. + + The type of mapping class to use. + + + + Registers the class map. + + The class map to register. + + + + Unregisters the class map. + + The map type to unregister. + + + + Unregisters the class map. + + The map type to unregister. + + + + Unregisters all class maps. + + + + + Generates a for the type. + + The type to generate the map for. + The generate map. + + + + Generates a for the type. + + The type to generate for the map. + The generate map. + + + + A default that can be used + to create a class map dynamically. + + + + + + Configuration used for the . + + + + + Gets or sets the size of the buffer + used for reading CSV files. + Default is 2048. + + + + + Gets or sets a value indicating whether the number of bytes should + be counted while parsing. Default is false. This will slow down parsing + because it needs to get the byte count of every char for the given encoding. + The needs to be set correctly for this to be accurate. + + + + + Gets or sets the encoding used when counting bytes. + + + + + Gets or sets the function that is called when bad field data is found. A field + has bad data if it contains a quote and the field is not quoted (escaped). + You can supply your own function to do other things like logging the issue + instead of throwing an exception. + Arguments: context + + + + + Gets or sets a value indicating if a line break found in a quote field should + be considered bad data. True to consider a line break bad data, otherwise false. + Defaults to false. + + + + + Gets or sets the character used to denote + a line that is commented out. Default is '#'. + + + + + Gets or sets a value indicating if comments are allowed. + True to allow commented out lines, otherwise false. + + + + + Gets or sets a value indicating if blank lines + should be ignored when reading. + True to ignore, otherwise false. Default is true. + + + + + Gets or sets a value indicating if quotes should be + ignored when parsing and treated like any other character. + + + + + Gets or sets the character used to quote fields. + Default is '"'. + + + + + Gets or sets the delimiter used to separate fields. + Default is CultureInfo.CurrentCulture.TextInfo.ListSeparator. + + + + + Gets or sets the escape character used to escape a quote inside a field. + Default is '"'. + + + + + Gets or sets the field trimming options. + + + + + Configuration used for the . + + + + + Gets or sets a value indicating if the + CSV file has a header record. + Default is true. + + + + + Gets or sets the function that is called when a header validation check is ran. The default function + will throw a if there is no header for a given member mapping. + You can supply your own function to do other things like logging the issue instead of throwing an exception. + Arguments: isValid, headerNames, headerNameIndex, context + + + + + Gets or sets the function that is called when a missing field is found. The default function will + throw a . You can supply your own function to do other things + like logging the issue instead of throwing an exception. + Arguments: headerNames, index, context + + + + + Gets or sets the function that is called when a reading exception occurs. + The default function will re-throw the given exception. If you want to ignore + reading exceptions, you can supply your own function to do other things like + logging the issue. + Arguments: exception + + + + + Gets or sets the culture info used to read an write CSV files. + + + + + Gets or sets the . + + + + + Gets or sets the . + + + + + Prepares the header field for matching against a member name. + The header field and the member name are both ran through this function. + You should do things like trimming, removing whitespace, removing underscores, + and making casing changes to ignore case. + + + + + Determines if constructor parameters should be used to create + the class instead of the default constructor and members. + + + + + Chooses the constructor to use for constructor mapping. + + + + + Gets or sets a value indicating whether references + should be ignored when auto mapping. True to ignore + references, otherwise false. Default is false. + + + + + Gets or sets the callback that will be called to + determine whether to skip the given record or not. + + + + + Gets or sets a value indicating if private + member should be read from and written to. + True to include private member, otherwise false. Default is false. + + + + + Gets or sets a callback that will return the prefix for a reference header. + Arguments: memberType, memberName + + + + + Gets or sets a value indicating whether changes in the column + count should be detected. If true, a + will be thrown if a different column count is detected. + + + true if [detect column count changes]; otherwise, false. + + + + + Gets or sets the member types that are used when auto mapping. + MemberTypes are flags, so you can choose more than one. + Default is Properties. + + + + + The configured s. + + + + + Use a to configure mappings. + When using a class map, no members are mapped by default. + Only member specified in the mapping are used. + + The type of mapping class to use. + + + + Use a to configure mappings. + When using a class map, no member are mapped by default. + Only member specified in the mapping are used. + + The type of mapping class to use. + + + + Registers the class map. + + The class map to register. + + + + Unregisters the class map. + + The map type to unregister. + + + + Unregisters the class map. + + The map type to unregister. + + + + Unregisters all class maps. + + + + + Generates a for the type. + + The type to generate the map for. + The generate map. + + + + Generates a for the type. + + The type to generate for the map. + The generate map. + + + + Configuration used for the . + + + + + Gets or sets the delimiter used to separate fields. + Default is ','; + + + + + Gets or sets the character used to quote fields. + Default is '"'. + + + + + Gets or sets the escape character used to escape a quote inside a field. + Default is '"'. + + + + + Gets or sets the field trimming options. + + + + + Gets or sets a value indicating if fields should be sanitized + to prevent malicious injection. This covers MS Excel, + Google Sheets and Open Office Calc. + + + + + Gets or sets the characters that are used for injection attacks. + + + + + Gets or sets the character used to escape a detected injection. + + + + + Gets or sets the newline to use when writing. + + + + + Gets the newline string to use when writing. This string is determined + by the value. + + + + + Configuration used for the . + + + + + Gets a string representation of the currently configured Quote character. + + + The new quote string. + + + + + Gets a string representation of two of the currently configured Quote characters. + + + The new double quote string. + + + + + Gets or sets a function that is used to determine if a field should get quoted + when writing. + Arguments: field, context + + + + + Gets or sets the culture info used to read an write CSV files. + + + + + Gets or sets the . + + + + + Gets or sets the . + + + + + Gets or sets a value indicating if comments are allowed. + True to allow commented out lines, otherwise false. + + + + + Gets or sets the character used to denote + a line that is commented out. Default is '#'. + + + + + Gets or sets a value indicating if the + CSV file has a header record. + Default is true. + + + + + Gets or sets a value indicating whether references + should be ignored when auto mapping. True to ignore + references, otherwise false. Default is false. + + + + + Gets or sets a value indicating if private + member should be read from and written to. + True to include private member, otherwise false. Default is false. + + + + + Gets or sets a callback that will return the prefix for a reference header. + Arguments: memberType, memberName + + + + + Gets or sets the member types that are used when auto mapping. + MemberTypes are flags, so you can choose more than one. + Default is Properties. + + + + + The configured s. + + + + + Use a to configure mappings. + When using a class map, no member are mapped by default. + Only member specified in the mapping are used. + + The type of mapping class to use. + + + + Use a to configure mappings. + When using a class map, no member are mapped by default. + Only member specified in the mapping are used. + + The type of mapping class to use. + + + + Registers the class map. + + The class map to register. + + + + Unregisters the class map. + + The map type to unregister. + + + + Unregisters the class map. + + The map type to unregister. + + + + Unregisters all class maps. + + + + + Generates a for the type. + + The type to generate the map for. + The generate map. + + + + Generates a for the type. + + The type to generate for the map. + The generate map. + + + + Gets or sets a value indicating that during writing if a new + object should be created when a reference member is null. + True to create a new object and use it's defaults for the + fields, or false to leave the fields empty for all the + reference member's member. + + + + + Gets or sets the comparer used to order the properties + of dynamic objects when writing. The default is null, + which will preserve the order the object properties + were created with. + + + + + Sets type converter options on a member map. + + + + + Creates a new instance using the given . + + The member map the options are being applied to. + + + + The used when type converting. + This will override the global + setting. + + The culture info. + + + + The to use when type converting. + This is used when doing any conversions. + + The date time style. + + + + The to use when type converting. + This is used when doing converting. + + The time span styles. + + + + The to use when type converting. + This is used when doing any number conversions. + + + + + + The string format to be used when type converting. + + The format. + + + + The to use when converting. + This is used when doing conversions. + + Kind of the URI. + + + + The string values used to represent a boolean when converting. + + A value indicating whether true values or false values are being set. + A value indication if the current values should be cleared before adding the new ones. + The string boolean values. + + + + The string values used to represent null when converting. + + The values that represent null. + + + + + The string values used to represent null when converting. + + A value indication if the current values should be cleared before adding the new ones. + The values that represent null. + + + + + Mapping info for a member to a CSV field. + + + + + Gets the member map data. + + + + + Type converter options. + + + + + Creates an instance of using the given Type and . + + Type of the class the member being mapped belongs to. + The member being mapped. + + + + When reading, is used to get the field + at the index of the name if there was a + header specified. It will look for the + first name match in the order listed. + When writing, sets the name of the + field in the header record. + The first name will be used. + + The possible names of the CSV field. + + + + When reading, is used to get the + index of the name used when there + are multiple names that are the same. + + The index of the name. + + + + When reading, is used to get the field at + the given index. When writing, the fields + will be written in the order of the field + indexes. + + The index of the CSV field. + The end index used when mapping to an member. + + + + Ignore the member when reading and writing. + If this member has already been mapped as a reference + member, either by a class map, or by automapping, calling + this method will not ignore all the child members down the + tree that have already been mapped. + + + + + Ignore the member when reading and writing. + If this member has already been mapped as a reference + member, either by a class map, or by automapping, calling + this method will not ignore all the child members down the + tree that have already been mapped. + + True to ignore, otherwise false. + + + + The default value that will be used when reading when + the CSV field is empty. + + The default value. + + + + The default value that will be used when reading when + the CSV field is empty. This value is not type checked + and will use a to convert + the field. This could potentially have runtime errors. + + The default value. + + + + The constant value that will be used for every record when + reading and writing. This value will always be used no matter + what other mapping configurations are specified. + + The constant value. + + + + Specifies the to use + when converting the member to and from a CSV field. + + The TypeConverter to use. + + + + Specifies the to use + when converting the member to and from a CSV field. + + The of the + to use. + + + + Specifies an expression to be used to validate a field when reading. + + + + + + A collection that holds 's. + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + + Gets a value indicating whether the is read-only. + + + true if the is read-only; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The comparer to use when sorting the member maps. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + 1 + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + 2 + + + + Adds an item to the . + + The object to add to the . + The is read-only. + + + + + Adds a range of items to the . + + The collection to add. + + + + Removes all items from the . + + The is read-only. + + + + + Determines whether the contains a specific value. + + + true if is found in the ; otherwise, false. + + The object to locate in the . + + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.The zero-based index in at which copying begins. is null. is less than 0.The number of elements in the source is greater than the available space from to the end of the destination . + + + + Removes the first occurrence of a specific object from the . + + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + The object to remove from the . + The is read-only. + + + + + Determines the index of a specific item in the . + + + The index of if found in the list; otherwise, -1. + + The object to locate in the . + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + is not a valid index in the . + The is read-only. + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + is not a valid index in the . + The is read-only. + + + + + Gets or sets the element at the specified index. + + + The element at the specified index. + + The zero-based index of the element to get or set. + is not a valid index in the . + The member is set and the is read-only. + + + + + Finds the using the given member expression. + + The the member is on. + The member expression. + The for the given expression, or null if not found. + + + + Finds the using the given member. + + The member. + The for the given expression, or null if not found. + + + + Adds the members from the mapping. This will recursively + traverse the mapping tree and add all members for + reference maps. + + The mapping where the members are added from. + + + + Used to compare s. + The order is by field index ascending. Any + fields that don't have an index are pushed + to the bottom. + + + + + Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. + + + Value + Condition + Less than zero + is less than . + Zero + equals . + Greater than zero + is greater than . + + The first object to compare. + The second object to compare. + Neither nor implements the interface. + -or- + and are of different types and neither one can handle comparisons with the other. + 2 + + + + Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. + + + Value + Condition + Less than zero + is less than . + Zero + equals . + Greater than zero + is greater than . + + The first object to compare. + The second object to compare. + + + + + The configured data for the member map. + + + + + Gets the that the data + is associated with. + + + + + Gets the list of column names. + + + + + Gets or sets the index of the name. + This is used if there are multiple + columns with the same names. + + + + + Gets or sets a value indicating if the name was + explicitly set. True if it was explicitly set, + otherwise false. + + + + + Gets or sets the column index. + + + + + Gets or sets the index end. The Index end is used to specify a range for use + with a collection member. Index is used as the start of the range, and IndexEnd + is the end of the range. + + + + + Gets or sets a value indicating if the index was + explicitly set. True if it was explicitly set, + otherwise false. + + + + + Gets or sets the type converter. + + + + + Gets or sets the type converter options. + + + + + Gets or sets a value indicating whether the field should be ignored. + + + + + Gets or sets the default value used when a CSV field is empty. + + + + + Gets or sets a value indicating whether this instance is default value set. + the default value was explicitly set. True if it was + explicitly set, otherwise false. + + + + + Gets or sets the constant value used for every record. + + + + + Gets or sets a value indicating if a constant was explicitly set. + + + + + Gets or sets the expression used to convert data in the + row to the member. + + + + + Gets or sets the expression to be used to convert the object + to a field. + + + + + Gets or sets the expression use to validate a field. + + + + + Gets or sets a value indicating if a field is optional. + + + + + Initializes a new instance of the class. + + The member. + + + + Mapping info for a member to a CSV field. + + + + + Creates a new instance using the specified member. + + + + + When reading, is used to get the field + at the index of the name if there was a + header specified. It will look for the + first name match in the order listed. + When writing, sets the name of the + field in the header record. + The first name will be used. + + The possible names of the CSV field. + + + + When reading, is used to get the + index of the name used when there + are multiple names that are the same. + + The index of the name. + + + + When reading, is used to get the field at + the given index. When writing, the fields + will be written in the order of the field + indexes. + + The index of the CSV field. + The end index used when mapping to an member. + + + + Ignore the member when reading and writing. + If this member has already been mapped as a reference + member, either by a class map, or by automapping, calling + this method will not ignore all the child members down the + tree that have already been mapped. + + + + + Ignore the member when reading and writing. + If this member has already been mapped as a reference + member, either by a class map, or by automapping, calling + this method will not ignore all the child members down the + tree that have already been mapped. + + True to ignore, otherwise false. + + + + The default value that will be used when reading when + the CSV field is empty. + + The default value. + + + + The default value that will be used when reading when + the CSV field is empty. This value is not type checked + and will use a to convert + the field. This could potentially have runtime errors. + + The default value. + + + + The constant value that will be used for every record when + reading and writing. This value will always be used no matter + what other mapping configurations are specified. + + The constant value. + + + + Specifies the to use + when converting the member to and from a CSV field. + + The TypeConverter to use. + + + + Specifies the to use + when converting the member to and from a CSV field. + + The of the + to use. + + + + Specifies an expression to be used to convert data in the + row to the member. + + The convert expression. + + + + Specifies an expression to be used to convert the object + to a field. + + The convert expression. + + + + Ignore the member when reading if no matching field name can be found. + + + + + Specifies an expression to be used to validate a field when reading. + + + + + + A collection that holds member names. + + + + + Gets the name at the given index. If a prefix is set, + it will be prepended to the name. + + + + + + + Gets the prefix to use for each name. + + + + + Gets the raw list of names without + the prefix being prepended. + + + + + Gets the count. + + + + + Adds the given name to the collection. + + The name to add. + + + + Clears all names from the collection. + + + + + Adds a range of names to the collection. + + The range to add. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + 1 + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + 2 + + + + Mapping info for a reference member mapping to a class. + + + + + Gets the member reference map data. + + + + + Initializes a new instance of the class. + + The member. + The to use for the reference map. + + + + Appends a prefix to the header of each field of the reference member. + + The prefix to be prepended to headers of each reference member. + The current + + + + Get the largest index for the + members and references. + + The max index. + + + + A collection that holds 's. + + + + Gets the number of elements contained in the . + The number of elements contained in the . + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. + + + Gets or sets the element at the specified index. + The element at the specified index. + The zero-based index of the element to get or set. + + is not a valid index in the . + The member is set and the is read-only. + + + Returns an enumerator that iterates through the collection. + A that can be used to iterate through the collection. + 1 + + + Returns an enumerator that iterates through a collection. + An object that can be used to iterate through the collection. + 2 + + + Adds an item to the . + The object to add to the . + The is read-only. + + + Removes all items from the . + The is read-only. + + + Determines whether the contains a specific value. + true if is found in the ; otherwise, false. + The object to locate in the . + + + Copies the elements of the to an , starting at a particular index. + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than 0. + The number of elements in the source is greater than the available space from to the end of the destination . + + + Removes the first occurrence of a specific object from the . + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + The object to remove from the . + The is read-only. + + + Determines the index of a specific item in the . + The index of if found in the list; otherwise, -1. + The object to locate in the . + + + Inserts an item to the at the specified index. + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + The is read-only. + + + Removes the item at the specified index. + The zero-based index of the item to remove. + + is not a valid index in the . + The is read-only. + + + + Finds the using the given member expression. + + The the member is on. + The member expression. + The for the given expression, or null if not found. + + + + Finds the using the given member. + + The member. + The for the given expression, or null if not found. + + + + The configuration data for the reference map. + + + + + Gets or sets the header prefix to use. + + + + + Gets the that the data + is associated with. + + + + + Gets the mapping this is a reference for. + + + + + Initializes a new instance of the class. + + The member. + The mapping this is a reference for. + + + + Flags for the type of members that + can be used for auto mapping. + + + + + No members. This is not a valid value + and will cause an exception if used. + + + + + Properties on a class. + + + + + Fields on a class. + + + + + Types of new lines. + + + + + Windows line feed. + + + + + Classic MAC + + + + + Unix + + + + + Use the setting. + + + + + New line constants. + + + + + Windows line feed. + + + + + Class MAC line feed. + + + + + Unix line feed. + + + + + Mapping for a constructor parameter. + This may contain value type data, a constructor type map, + or a reference map, depending on the type of the parameter. + + + + + Gets the parameter map data. + + + + + Gets or sets the map for a constructor type. + + + + + Gets or sets the map for a reference type. + + + + + Creates an instance of using + the given information. + + The parameter being mapped. + + + + The constructor parameter data for the map. + + + + + Gets the that the data + is associated with. + + + + + Gets or sets the type converter. + + + + + Gets or sets the type converter options. + + + + + Gets or sets the column index. + + + + + Gets or sets the column name. + + + + + Initializes a new instance of the class. + + The constructor parameter. + + + + Mapping info for a reference parameter mapping to a class. + + + + + Gets the parameter reference map data. + + + + + Initializes a new instance of the class. + + The parameter. + The to use for the reference map. + + + + Appends a prefix to the header of each field of the reference parameter. + + The prefix to be prepended to headers of each reference parameter. + The current + + + + Get the largest index for the + members and references. + + The max index. + + + + The configuration data for the reference map. + + + + + Gets or sets the header prefix to use. + + + + + Gets the that the data + is associated with. + + + + + Gets the mapping this is a reference for. + + + + + Initializes a new instance of the class. + + The parameter. + The mapping this is a reference for. + + + + Options for trimming of fields. + + + + + No trimming. + + + + + Trims the whitespace around a field. + + + + + Trims the whitespace inside of quotes around a field. + + + + + Provides a means of reading a CSV file forward-only by using CsvReader. + + + + + + Gets the column with the specified index. + + + The . + + The i. + + + + + Gets the column with the specified name. + + + The . + + The name. + + + + + Gets a value indicating the depth of nesting for the current row. + + + + + Gets a value indicating whether the data reader is closed. + + + + + Gets the number of rows changed, inserted, or deleted by execution of the SQL statement. + + + + + Gets the number of columns in the current row. + + + + + Initializes a new instance of the class. + + The CSV. + + + + Closes the Object. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Gets the value of the specified column as a Boolean. + + The zero-based column ordinal. + + The value of the column. + + + + + Gets the 8-bit unsigned integer value of the specified column. + + The zero-based column ordinal. + + The 8-bit unsigned integer value of the specified column. + + + + + Reads a stream of bytes from the specified column offset into the buffer as an array, starting at the given buffer offset. + + The zero-based column ordinal. + The index within the field from which to start the read operation. + The buffer into which to read the stream of bytes. + The index for buffer to start the read operation. + The number of bytes to read. + + The actual number of bytes read. + + + + + Gets the character value of the specified column. + + The zero-based column ordinal. + + The character value of the specified column. + + + + + Reads a stream of characters from the specified column offset into the buffer as an array, starting at the given buffer offset. + + The zero-based column ordinal. + The index within the row from which to start the read operation. + The buffer into which to read the stream of bytes. + The index for buffer to start the read operation. + The number of bytes to read. + + The actual number of characters read. + + + + + Returns an for the specified column ordinal. + + The index of the field to find. + + The for the specified column ordinal. + + + + + Gets the data type information for the specified field. + + The index of the field to find. + + The data type information for the specified field. + + + + + Gets the date and time data value of the specified field. + + The index of the field to find. + + The date and time data value of the specified field. + + + + + Gets the fixed-position numeric value of the specified field. + + The index of the field to find. + + The fixed-position numeric value of the specified field. + + + + + Gets the double-precision floating point number of the specified field. + + The index of the field to find. + + The double-precision floating point number of the specified field. + + + + + Gets the information corresponding to the type of that would be returned from . + + The index of the field to find. + + The information corresponding to the type of that would be returned from . + + + + + Gets the single-precision floating point number of the specified field. + + The index of the field to find. + + The single-precision floating point number of the specified field. + + + + + Returns the GUID value of the specified field. + + The index of the field to find. + + The GUID value of the specified field. + + + + + Gets the 16-bit signed integer value of the specified field. + + The index of the field to find. + + The 16-bit signed integer value of the specified field. + + + + + Gets the 32-bit signed integer value of the specified field. + + The index of the field to find. + + The 32-bit signed integer value of the specified field. + + + + + Gets the 64-bit signed integer value of the specified field. + + The index of the field to find. + + The 64-bit signed integer value of the specified field. + + + + + Gets the name for the field to find. + + The index of the field to find. + + The name of the field or the empty string (""), if there is no value to return. + + + + + Return the index of the named field. + + The name of the field to find. + + The index of the named field. + + + + + Returns a that describes the column metadata of the . + + + A that describes the column metadata. + + + + + Gets the string value of the specified field. + + The index of the field to find. + + The string value of the specified field. + + + + + Return the value of the specified field. + + The index of the field to find. + + The which will contain the field value upon return. + + + + + Populates an array of objects with the column values of the current record. + + An array of to copy the attribute fields into. + + The number of instances of in the array. + + + + + Return whether the specified field is set to null. + + The index of the field to find. + + true if the specified field is set to null; otherwise, false. + + + + + Advances the data reader to the next result, when reading the results of batch SQL statements. + + + true if there are more rows; otherwise, false. + + + + + Advances the to the next record. + + + true if there are more rows; otherwise, false. + + + + + Reads fields from a . + + + + + Gets the reading context. + + + + + Gets a value indicating if the buffer is empty. + True if the buffer is empty, otherwise false. + + + + + Fills the buffer. + + True if there is more data left. + False if all the data has been read. + + + + Fills the buffer. + + True if there is more data left. + False if all the data has been read. + + + + Creates a new using the given + and . + + The text reader. + The configuration. + + + + Creates a new using the given + , + and leaveOpen flag. + + The text reader. + The configuration. + A value indicating if the should be left open when disposing. + + + + Gets the next char as an . + + + + + Gets the field. This will append any reading progress. + + The current field. + + + + Appends the current reading progress. + + + + + Move's the buffer position according to the given offset. + + The offset to move the buffer. + + + + Sets the start of the field to the current buffer position. + + An offset for the field start. + The offset should be less than 1. + + + + Sets the end of the field to the current buffer position. + + An offset for the field start. + The offset should be less than 1. + + + + Sets the raw record start to the current buffer position; + + An offset for the raw record start. + The offset should be less than 1. + + + + Sets the raw record end to the current buffer position. + + An offset for the raw record end. + The offset should be less than 1. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + 2 + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + True if the instance needs to be disposed of. + + + + Represents errors that occur in CsvHelper. + + + + + Gets the context used when reading. + + + + + Gets the context used when writing. + + + + + Initializes a new instance of the CsvHelperException class. + + + + + Initializes a new instance of the CsvHelperException class. + + The message that describes the error. + + + + Initializes a new instance of the CsvHelperException class. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The reading context. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The reading context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class + with a specified error message. + + The writing context. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The writing context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Parses a CSV file. + + + + + Gets the reading context. + + + + + Gets the configuration. + + + + + Gets the . + + + + + Creates a new parser using the given . + + The with the CSV file data. + The culture. + + + + Creates a new parser using the given . + + The with the CSV file data. + The culture. + true to leave the reader open after the CsvReader object is disposed, otherwise false. + + + + Creates a new parser using the given and . + + The with the CSV file data. + The configuration. + + + + Creates a new parser using the given and . + + The with the CSV file data. + The configuration. + true to leave the reader open after the CsvReader object is disposed, otherwise false. + + + + Creates a new parser using the given . + + The field reader. + + + + Reads a record from the CSV file. + + A of fields for the record read. + + + + Reads a record from the CSV file asynchronously. + + A of fields for the record read. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + 2 + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + True if the instance needs to be disposed of. + + + + Reads a line of the CSV file. + + The CSV line. + + + + Reads a line of the CSV file. + + The CSV line. + + + + Reads a blank line. This accounts for empty lines + and commented out lines. + + + + + Reads a blank line. This accounts for empty lines + and commented out lines. + + + + + Reads until a delimiter or line ending is found. + + True if the end of the line was found, otherwise false. + + + + Reads until a delimiter or line ending is found. + + True if the end of the line was found, otherwise false. + + + + Reads until the field is not quoted and a delimiter is found. + + True if the end of the line was found, otherwise false. + + + + Reads until the field is not quoted and a delimiter is found. + + True if the end of the line was found, otherwise false. + + + + Reads until the delimiter is done. + + True if a delimiter was read. False if the sequence of + chars ended up not being the delimiter. + + + + Reads until the delimiter is done. + + True if a delimiter was read. False if the sequence of + chars ended up not being the delimiter. + + + + Reads until the line ending is done. + + The field start offset. + + + + Reads until the line ending is done. + + The field start offset. + + + + Reads until a non-space character is found. + + True if there is more data to read. + False if the end of the file has been reached. + + + + Reads until a non-space character is found. + + True if there is more data to read. + False if the end of the file has been reached. + + + + Reads data that was parsed from . + + + + + Gets the reading context. + + + + + Gets the configuration. + + + + + Gets the parser. + + + + + Creates a new CSV reader using the given . + + The reader. + The culture. + + + + Creates a new CSV reader using the given . + + The reader. + The culture. + true to leave the reader open after the CsvReader object is disposed, otherwise false. + + + + Creates a new CSV reader using the given and + and as the default parser. + + The reader. + The configuration. + + + + Creates a new CSV reader using the given . + + The reader. + The configuration. + true to leave the reader open after the CsvReader object is disposed, otherwise false. + + + + Creates a new CSV reader using the given . + + The used to parse the CSV file. + + + + Reads the header record without reading the first row. + + True if there are more records, otherwise false. + + + + Validates the header. A header is bad if all the mapped members don't match. + If the header is not valid, a will be thrown. + + The type to validate the header against. + + + + Validates the header. A header is bad if all the mapped members don't match. + If the header is not valid, a will be thrown. + + The type to validate the header against. + + + + Validates the header against the given map. + + The map to validate against. + + + + Advances the reader to the next record. This will not read headers. + You need to call then + for the headers to be read. + + True if there are more records, otherwise false. + + + + Advances the reader to the next record. This will not read headers. + You need to call then + for the headers to be read. + + True if there are more records, otherwise false. + + + + Gets the raw field at position (column) index. + + The zero based index of the field. + The raw field. + + + + Gets the raw field at position (column) name. + + The named index of the field. + The raw field. + + + + Gets the raw field at position (column) name. + + The named index of the field. + The zero based index of the field. + The raw field. + + + + Gets the raw field at position (column) index. + + The zero based index of the field. + The raw field. + + + + Gets the raw field at position (column) name. + + The named index of the field. + The raw field. + + + + Gets the raw field at position (column) name and the index + instance of that field. The index is used when there are + multiple columns with the same header name. + + The named index of the field. + The zero based index of the instance of the field. + The raw field. + + + + Gets the field converted to using + the specified . + + The type of the field. + The index of the field. + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The named index of the field. + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The named index of the field. + The zero based index of the instance of the field. + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The index of the field. + The used to convert the field to . + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The named index of the field. + The used to convert the field to . + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The named index of the field. + The zero based index of the instance of the field. + The used to convert the field to . + The field converted to . + + + + Gets the field converted to T at position (column) index. + + The of the field. + The zero based index of the field. + The field converted to T. + + + + Gets the field converted to T at position (column) name. + + The of the field. + The named index of the field. + The field converted to T. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + + The named index of the field. + The zero based index of the instance of the field. + + + + + Gets the field converted to T at position (column) index using + the given . + + The of the field. + The zero based index of the field. + The used to convert the field to T. + The field converted to T. + + + + Gets the field converted to T at position (column) name using + the given . + + The of the field. + The named index of the field. + The used to convert the field to T. + The field converted to T. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + + The named index of the field. + The zero based index of the instance of the field. + The used to convert the field to T. + The field converted to T. + + + + Gets the field converted to T at position (column) index using + the given . + + The of the field. + The used to convert the field to T. + The zero based index of the field. + The field converted to T. + + + + Gets the field converted to T at position (column) name using + the given . + + The of the field. + The used to convert the field to T. + The named index of the field. + The field converted to T. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + The of the field. + The used to convert the field to T. + The named index of the field. + The zero based index of the instance of the field. + The field converted to T. + + + + Gets the field converted to T at position (column) index. + + The of the field. + The zero based index of the field. + The field converted to type T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name. + + The of the field. + The named index of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + The of the field. + The named index of the field. + The zero based index of the instance of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) index + using the specified . + + The of the field. + The zero based index of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The named index of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The named index of the field. + The zero based index of the instance of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) index. + + The of the field. + The zero based index of the field. + The field converted to type T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name. + + The of the field. + The named index of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + + The named index of the field. + The zero based index of the instance of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) index + using the specified . + + The of the field. + The zero based index of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The named index of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The named index of the field. + The zero based index of the instance of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) index + using the specified . + + The of the field. + The used to convert the field to T. + The zero based index of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The used to convert the field to T. + The named index of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The used to convert the field to T. + The named index of the field. + The zero based index of the instance of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the record converted into T. + + The of the record. + The record converted to T. + + + + Get the record converted into T. + + The of the record. + The anonymous type definition to use for the record. + The record converted to T. + + + + Gets the record. + + The of the record. + The record. + + + + Gets all the records in the CSV file and + converts each to T. The Read method + should not be used when using this. + + The of the record. + An of records. + + + + Gets all the records in the CSV file and converts + each to T. The read method + should not be used when using this. + + The of the record. + The anonymous type definition to use for the records. + An of records. + + + + Gets all the records in the CSV file and + converts each to T. The Read method + should not be used when using this. + + The of the record. + An of records. + + + + Enumerates the records hydrating the given record instance with row data. + The record instance is re-used and not cleared on each enumeration. + This only works for streaming rows. If any methods are called on the projection + that force the evaluation of the IEnumerable, such as ToList(), the entire list + will contain the same instance of the record, which is the last row. + + The type of the record. + The record to fill each enumeration. + An of records. + + + + Gets the index of the field at name if found. + + The name of the field to get the index for. + The index of the field if there are multiple fields with the same name. + A value indicating if the call was initiated from a TryGet. + The index of the field if found, otherwise -1. + Thrown if there is no header record. + Thrown if there isn't a field with name. + + + + Gets the index of the field at name if found. + + The possible names of the field to get the index for. + The index of the field if there are multiple fields with the same name. + A value indicating if the call was initiated from a TryGet. + A value indicating if the call was initiated for an optional field. + The index of the field if found, otherwise -1. + Thrown if there is no header record. + Thrown if there isn't a field with name. + + + + Determines if the member for the + can be read. + + The member map. + A value indicating of the member can be read. True if it can, otherwise false. + + + + Determines if the member for the + can be read. + + The reference map. + A value indicating of the member can be read. True if it can, otherwise false. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + 2 + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + True if the instance needs to be disposed of. + + + + Checks if the reader has been read yet. + + + + + + Parses the named indexes from the header record. + + + + + Defines methods used to serialize data into a CSV file. + + + + + Gets the writing context. + + + + + Gets the configuration. + + + + + Creates a new serializer using the given . + + The to write the CSV file data to. + The culture information. + + + + Creates a new serializer using the given . + + The to write the CSV file data to. + The culture information. + true to leave the reader open after the CsvReader object is disposed, otherwise false. + + + + Creates a new serializer using the given + and . + + The to write the CSV file data to. + The configuration. + + + + Creates a new serializer using the given + and . + + The to write the CSV file data to. + The configuration. + true to leave the reader open after the CsvReader object is disposed, otherwise false. + + + + Writes a record to the CSV file. + + The record to write. + + + + Writes a record to the CSV file. + + The record to write. + + + + Writes a new line to the CSV file. + + + + + Writes a new line to the CSV file. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + 2 + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + True if the instance needs to be disposed of. + + + + Sanitizes the field to prevent injection. + + The field to sanitize. + + + + Used to write CSV files. + + + + + Gets the writing context. + + + + + Gets the configuration. + + + + + Creates a new CSV writer using the given . + + The writer used to write the CSV file. + The culture information. + + + + Creates a new CSV writer using the given . + + The writer used to write the CSV file. + The culture information. + true to leave the writer open after the CsvWriter object is disposed, otherwise false. + + + + Creates a new CSV writer using the given . + + The use to write the CSV file. + The configuration. + + + + Creates a new CSV writer using the given . + + The use to write the CSV file. + The configuration. + true to leave the writer open after the CsvWriter object is disposed, otherwise false. + + + + Creates a new CSV writer using the given . + + The serializer. + + + + Writes a field that has already been converted to a + from an . + If the field is null, it won't get written. A type converter + will always return a string, even if field is null. If the + converter returns a null, it means that the converter has already + written data, and the returned value should not be written. + + The converted field to write. + + + + Writes the field to the CSV file. The field + may get quotes added to it. + When all fields are written for a record, + must be called + to complete writing of the current record. + + The field to write. + + + + Writes the field to the CSV file. This will + ignore any need to quote and ignore + + and just quote based on the shouldQuote + parameter. + When all fields are written for a record, + must be called + to complete writing of the current record. + + The field to write. + True to quote the field, otherwise false. + + + + Writes the field to the CSV file. + When all fields are written for a record, + must be called + to complete writing of the current record. + + The type of the field. + The field to write. + + + + Writes the field to the CSV file. + When all fields are written for a record, + must be called + to complete writing of the current record. + + The type of the field. + The field to write. + The converter used to convert the field into a string. + + + + Writes the field to the CSV file + using the given . + When all fields are written for a record, + must be called + to complete writing of the current record. + + The type of the field. + The type of the converter. + The field to write. + + + + Serializes the row to the . + + + + + Serializes the row to the . + + + + + Ends writing of the current record and starts a new record. + This automatically flushes the writer. + + + + + Ends writing of the current record and starts a new record. + This automatically flushes the writer. + + + + + Writes a comment. + + The comment to write. + + + + Writes the header record from the given members. + + The type of the record. + + + + Writes the header record from the given members. + + The type of the record. + + + + Writes the header record for the given dynamic object. + + The dynamic record to write. + + + + Writes the record to the CSV file. + + The type of the record. + The record to write. + + + + Writes the list of records to the CSV file. + + The records to write. + + + + Writes the list of records to the CSV file. + + Record type. + The records to write. + + + + Writes the list of records to the CSV file. + + The records to write. + + + + Writes the list of records to the CSV file. + + Record type. + The records to write. + + + + Checks if the member can be written. + + The member map that we are checking. + A value indicating if the member can be written. + True if the member can be written, otherwise false. + + + + Gets the type for the record. If the generic type + is an object due to boxing, it will call GetType() + on the record itself. + + The record type. + The record. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + 2 + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + True if the instance needs to be disposed of. + + + + Creates dynamic records. + + + + + Initializes a new instance. + + The reader. + + + + Creates a of type + that will create a record of the given type using the current + reader row. + + The record type. + + + + Creates a dynamic record of the current reader row. + + + + + Write dynamic records. + + + + + Initializes a new instance using the given writer. + + The writer. + + + + Creates a of type + that will write the given record using the current writer row. + + The record type. + The record. + + + + Writes expando objects. + + + + + Initializes a new instance using the given writer. + + The writer. + + + + Creates a of type + that will write the given record using the current writer row. + + The record type. + The record. + + + + Manages expression creation. + + + + + Initializes a new instance using the given reader. + + The reader. + + + + Initializes a new instance using the given writer. + + The writer. + + + + Creates the constructor arguments used to create a type. + + The mapping to create the arguments for. + The arguments that will be added to the mapping. + + + + Creates the member assignments for the given . + + The mapping to create the assignments for. + The assignments that will be added to from the mapping. + + + + Creates an expression the represents getting the field for the given + member and converting it to the member's type. + + The mapping for the member. + + + + Creates a member expression for the given member on the record. + This will recursively traverse the mapping to find the member + and create a safe member accessor for each level as it goes. + + The current member expression. + The mapping to look for the member to map on. + The member map to look for on the mapping. + An Expression to access the given member. + + + + Creates an instance of the given type using (in turn using the ObjectResolver), then assigns + the given member assignments to that instance. + + The type of the record we're creating. + The member assignments that will be assigned to the created instance. + A representing the instance creation and assignments. + + + + Creates an expression that converts the field expression using a type converter. + + The mapping for the member. + The field expression. + + + + Creates an default expression if field expression is empty. + + The mapping for the member. + The field expression. + + + + Creates objects. + + + + + Initializes a new instance using the given reader. + + + + + + Creates a of type + that will create a record of the given type using the current + reader row. + + The record type. + + + + Writes objects. + + + + + Initializes a new instance using the given writer. + + The writer. + + + + Creates a of type + that will write the given record using the current writer row. + + The record type. + The record. + + + + Creates primitive records. + + + + + Initializes a new instance using the given reader. + + The reader. + + + + Creates a of type + that will create a record of the given type using the current + reader row. + + The record type. + + + + Writes primitives. + + + + + Initializes a new instance using the given writer. + + The writer. + + + + Creates a of type + that will write the given record using the current writer row. + + The record type. + The record. + + + + Base implementation for classes that create records. + + + + + The reader. + + + + + The expression manager. + + + + + Initializes a new instance using the given reader. + + The reader. + + + + Create a record of the given type using the current row. + + The record type. + + + + Create a record of the given type using the current row. + + The record type. + + + + Gets the delegate to create a record for the given record type. + If the delegate doesn't exist, one will be created and cached. + + The record type. + + + + Creates a of type + that will create a record of the given type using the current + reader row. + + The record type. + + + + Factory to create record creators. + + + + + Initializes a new instance using the given reader. + + The reader. + + + + Creates a record creator for the given record type. + + The record type. + + + + Hydrates members of an existing record. + + + + + Creates a new instance using the given reader. + + The reader. + + + + Hydrates members of the given record using the current reader row. + + The record type. + The record. + + + + Gets the action delegate used to hydrate a custom class object's members with data from the reader. + + The record type. + + + + Creates the action delegate used to hydrate a record's members with data from the reader. + + The record type. + + + + Manages record manipulation. + + + + + Initializes a new instance using the given reader. + + + + + + Initializes a new instance using the given writer. + + The writer. + + + + Creates a record of the given type using the current reader row. + + The type of record to create. + + + + Creates a record of the given type using the current reader row. + + The type of record to create. + + + + Hydrates the given record using the current reader row. + + The type of the record. + The record to hydrate. + + + + Writes the given record to the current writer row. + + The type of the record. + The record. + + + + Base implementation for classes that write records. + + + + + Gets the writer. + + + + + The expression manager. + + + + + Initializes a new instance using the given writer. + + The writer. + + + + Writes the record to the current row. + + Type of the record. + The record. + + + + Gets the delegate to write the given record. + If the delegate doesn't exist, one will be created and cached. + + The record type. + The record. + + + + Creates a of type + that will write the given record using the current writer row. + + The record type. + The record. + + + + Combines the delegates into a single multicast delegate. + This is needed because Silverlight doesn't have the + Delegate.Combine( params Delegate[] ) overload. + + The delegates to combine. + A multicast delegate combined from the given delegates. + + + + Factory to create record writers. + + + + + Initializes a new instance using the given writer. + + The writer. + + + + Creates a new record writer for the given record. + + The type of the record. + The record. + + + + Creates CsvHelper classes. + + + + + Creates an . + + The text reader to use for the csv parser. + The configuration to use for the csv parser. + The created parser. + + + + Creates an . + + The text reader to use for the csv parser. + The culture information. + + The created parser. + + + + + Creates an . + + The text reader to use for the csv reader. + The configuration to use for the reader. + The created reader. + + + + Creates an . + + The text reader to use for the csv reader. + The culture information. + + The created reader. + + + + + Creates an . + + The parser used to create the reader. + The created reader. + + + + Creates an . + + The text writer to use for the csv writer. + The configuration to use for the writer. + The created writer. + + + + Creates an . + + The text writer to use for the csv writer. + The culture information. + + The created writer. + + + + + Access point for fluent interface to dynamically build a + + Type you will be making a class map for + Options to further configure the + + + + Represents a user supplied field validation failure. + + + + + Gets the field that failed validation. + + + + + Initializes a new instance of the class. + + The reading context. + The field that failed validation. + + + + Initializes a new instance of the class + with a specified error message. + + The reading context. + The field that failed validation. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The reading context. + The field that failed validation. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Represents a header validation failure. + + + + + Gets the header names that are mapped to a CSV field that couldn't be found. + + + + + Gets the header name index that is mapped to a CSV field that couldn't be found. + The index is used when a CSV header has multiple header names with the same value. + + + + + Initializes a new instance of the class. + + The reading context. + The header names that are mapped to a CSV field that couldn't be found. + The header name index that is mapped to a CSV field that couldn't be found. + + + + Initializes a new instance of the class + with a specified error message. + + The reading context. + The header names that are mapped to a CSV field that couldn't be found. + The header name index that is mapped to a CSV field that couldn't be found. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The reading context. + The header names that are mapped to a CSV field that couldn't be found. + The header name index that is mapped to a CSV field that couldn't be found. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Defines methods used to create + CsvHelper classes. + + + + + Creates an . + + The text reader to use for the csv parser. + The configuration to use for the csv parser. + The created parser. + + + + Creates an . + + The text reader to use for the csv parser. + The culture information. + + The created parser. + + + + + Creates an . + + The text reader to use for the csv reader. + The configuration to use for the reader. + The created reader. + + + + Creates an . + + The text reader to use for the csv reader. + The culture information. + + The created reader. + + + + + Creates an . + + The parser used to create the reader. + The created reader. + + + + Creates an . + + The text writer to use for the csv writer. + The configuration to use for the writer. + The created writer. + + + + Creates an . + + The text writer to use for the csv writer. + The culture information. + + The created writer. + + + + + Provides a fluent interface for dynamically creating s + + Type of class to map + Next available options + + + + Defines methods used to read a field in a CSV file. + + + + + Gets the reading context. + + + + + Gets a value indicating if the buffer is empty. + True if the buffer is empty, otherwise false. + + + + + Fills the buffer. + + True if there is more data left. + False if all the data has been read. + + + + Fills the buffer asynchronously. + + True if there is more data left. + False if all the data has been read. + + + + Gets the next char as an . + + + + + Gets the field. This will append any reading progress. + + The current field. + + + + Appends the current reading progress. + + + + + Move's the buffer position according to the given offset. + + The offset to move the buffer. + + + + Sets the start of the field to the current buffer position. + + An offset for the field start. + The offset should be less than 1. + + + + Sets the end of the field to the current buffer position. + + An offset for the field start. + The offset should be less than 1. + + + + Sets the raw record start to the current buffer position; + + An offset for the raw record start. + The offset should be less than 1. + + + + Sets the raw record end to the current buffer position. + + An offset for the raw record end. + The offset should be less than 1. + + + + Defines the functionality of a class that creates objects + from a given type. + + + + + A value indicating if the resolver's + returns false that an object will still be created using + CsvHelper's object creation. True to fallback, otherwise false. + Default value is true. + + + + + A value indicating if the resolver is able to resolve + the given type. True if the type can be resolved, + otherwise false. + + + + + The function that creates an object from a given type. + + + + + Creates an object from the given type using the + function. If is false, the object will be + created using CsvHelper's default object creation. If + is false, an exception is thrown. + + The type to create an instance from. The created object + may not be the same type as the given type. + Constructor arguments used to create the type. + + + + Creates an object from the given type using the + function. If is false, the object will be + created using CsvHelper's default object creation. If + is false, an exception is thrown. + + The type to create an instance from. The created object + may not be the same type as the given type. + Constructor arguments used to create the type. + + + + Defines methods used the parse a CSV file. + + + + + Gets the reading context. + + + + + Gets the configuration. + + + + + Gets the . + + + + + Reads a record from the CSV file. + + A of fields for the record read. + + + + Reads a record from the CSV file asynchronously. + + A of fields for the record read. + + + + Defines methods used to read parsed data + from a CSV file. + + + + + Gets the parser. + + + + + Reads the header record without reading the first row. + + True if there are more records, otherwise false. + + + + Advances the reader to the next record. This will not read headers. + You need to call then + for the headers to be read. + + True if there are more records, otherwise false. + + + + Advances the reader to the next record. This will not read headers. + You need to call then + for the headers to be read. + + True if there are more records, otherwise false. + + + + Gets all the records in the CSV file and + converts each to T. The Read method + should not be used when using this. + + The of the record. + An of records. + + + + Gets all the records in the CSV file and converts + each to T. The read method + should not be used when using this. + + The of the record. + The anonymous type definition to use for the records. + An of records. + + + + Gets all the records in the CSV file and + converts each to T. The Read method + should not be used when using this. + + The of the record. + An of records. + + + + Enumerates the records hydrating the given record instance with row data. + The record instance is re-used and not cleared on each enumeration. + This only works for streaming rows. If any methods are called on the projection + that force the evaluation of the IEnumerable, such as ToList(), the entire list + will contain the same instance of the record, which is the last row. + + The type of the record. + The record to fill each enumeration. + An of records. + + + + Defines methods used to read parsed data + from a CSV file row. + + + + + Gets the reading context. + + + + + Gets or sets the configuration. + + + + + Gets the raw field at position (column) index. + + The zero based index of the field. + The raw field. + + + + Gets the raw field at position (column) name. + + The named index of the field. + The raw field. + + + + Gets the raw field at position (column) name. + + The named index of the field. + The zero based index of the field. + The raw field. + + + + Gets the raw field at position (column) index. + + The zero based index of the field. + The raw field. + + + + Gets the raw field at position (column) name. + + The named index of the field. + The raw field. + + + + Gets the raw field at position (column) name and the index + instance of that field. The index is used when there are + multiple columns with the same header name. + + The named index of the field. + The zero based index of the instance of the field. + The raw field. + + + + Gets the field converted to using + the specified . + + The type of the field. + The index of the field. + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The named index of the field. + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The named index of the field. + The zero based index of the instance of the field. + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The index of the field. + The used to convert the field to . + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The named index of the field. + The used to convert the field to . + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The named index of the field. + The zero based index of the instance of the field. + The used to convert the field to . + The field converted to . + + + + Gets the field converted to T at position (column) index. + + The of the field. + The zero based index of the field. + The field converted to T. + + + + Gets the field converted to T at position (column) name. + + The of the field. + The named index of the field. + The field converted to T. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + + The named index of the field. + The zero based index of the instance of the field. + + + + + Gets the field converted to T at position (column) index using + the given . + + The of the field. + The zero based index of the field. + The used to convert the field to T. + The field converted to T. + + + + Gets the field converted to T at position (column) name using + the given . + + The of the field. + The named index of the field. + The used to convert the field to T. + The field converted to T. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + The of the field. + The named index of the field. + The zero based index of the instance of the field. + The used to convert the field to T. + The field converted to T. + + + + Gets the field converted to T at position (column) index using + the given . + + The of the field. + The used to convert the field to T. + The zero based index of the field. + The field converted to T. + + + + Gets the field converted to T at position (column) name using + the given . + + The of the field. + The used to convert the field to T. + The named index of the field. + The field converted to T. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + The of the field. + The used to convert the field to T. + The named index of the field. + The zero based index of the instance of the field. + The field converted to T. + + + + Gets the field converted to T at position (column) index. + + The of the field. + The zero based index of the field. + The field converted to type T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name. + + The of the field. + The named index of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + The of the field. + The named index of the field. + The zero based index of the instance of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) index + using the specified . + + The of the field. + The zero based index of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The named index of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The named index of the field. + The zero based index of the instance of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) index. + + The of the field. + The zero based index of the field. + The field converted to type T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name. + + The of the field. + The named index of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + + The named index of the field. + The zero based index of the instance of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) index + using the specified . + + The of the field. + The zero based index of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The named index of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The named index of the field. + The zero based index of the instance of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) index + using the specified . + + The of the field. + The used to convert the field to T. + The zero based index of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The used to convert the field to T. + The named index of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The used to convert the field to T. + The named index of the field. + The zero based index of the instance of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the record converted into T. + + The of the record. + The record converted to T. + + + + Get the record converted into T. + + The of the record. + The anonymous type definition to use for the record. + The record converted to T. + + + + Gets the record. + + The of the record. + The record. + + + + Defines methods used to serialize data into a CSV file. + + + + + Gets the writing context. + + + + + Gets the configuration. + + + + + Writes a record to the CSV file. + + The record to write. + + + + Writes a record to the CSV file. + + The record to write. + + + + Writes a new line to the CSV file. + + + + + Writes a new line to the CSV file. + + + + + Defines methods used to write to a CSV file. + + + + + Serializes the row to the . + + + + + Serializes the row to the . + + + + + Ends writing of the current record and starts a new record. + This automatically flushes the writer. + + + + + Ends writing of the current record and starts a new record. + This automatically flushes the writer. + + + + + Writes the list of records to the CSV file. + + The records to write. + + + + Writes the list of records to the CSV file. + + Record type. + The records to write. + + + + Writes the list of records to the CSV file. + + The records to write. + + + + Writes the list of records to the CSV file. + + Record type. + The records to write. + + + + Defines methods used to write a CSV row. + + + + + Gets the writing context. + + + + + Gets or sets the configuration. + + + + + Writes a field that has already been converted to a + from an . + If the field is null, it won't get written. A type converter + will always return a string, even if field is null. If the + converter returns a null, it means that the converter has already + written data, and the returned value should not be written. + + The converted field to write. + + + + Writes the field to the CSV file. The field + may get quotes added to it. + When all fields are written for a record, + must be called + to complete writing of the current record. + + The field to write. + + + + Writes the field to the CSV file. This will + ignore any need to quote and ignore + + and just quote based on the shouldQuote + parameter. + When all fields are written for a record, + must be called + to complete writing of the current record. + + The field to write. + True to quote the field, otherwise false. + + + + Writes the field to the CSV file. + When all fields are written for a record, + must be called + to complete writing of the current record. + + The type of the field. + The field to write. + + + + Writes the field to the CSV file. + When all fields are written for a record, + must be called + to complete writing of the current record. + + The type of the field. + The field to write. + The converter used to convert the field into a string. + + + + Writes the field to the CSV file + using the given . + When all fields are written for a record, + must be called + to complete writing of the current record. + + The type of the field. + The type of the converter. + The field to write. + + + + Writes a comment. + + The comment to write. + + + + Writes the header record from the given members. + + The type of the record. + + + + Writes the header record from the given members. + + The type of the record. + + + + Writes the record to the CSV file. + + The type of the record. + The record to write. + + + + Represents an error caused because a field is missing + in the header while reading a CSV file. + + + + + Initializes a new instance of the class. + + The reading context. + + + + Initializes a new instance of the class + with a specified error message. + + The reading context. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The reading context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Creates objects from a given type. + + + + + Gets or sets the current resolver. + + + + + A value indicating if the resolver's + returns false that an object will still be created using + CsvHelper's object creation. True to fallback, otherwise false. + Default value is true. + + + + + A function that returns a value indicating if the resolver + is able to resolve the given type. True if the type can be + resolved, otherwise false. + + + + + The function that creates an object from a given type. + + + + + Creates an instance of the object resolver using default values. + + + + + Creates an instance of the object resolver using the given can create function + and create function. + + A function that returns a value indicating if the resolver + is able to resolve the given type. True if the type can be + resolved, otherwise false. + The function that creates an object from a given type. + A value indicating if the resolver's + returns false that an object will still be created using + CsvHelper's object creation. True to fallback, otherwise false. + Default value is true. + + + + Creates an object from the given type using the + function. If is false, the object will be + created using CsvHelper's default object creation. If + is false, an exception is thrown. + + The type to create an instance from. The created object + may not be the same type as the given type. + Constructor arguments used to create the type. + + + + Creates an object from the given type using the + function. If is false, the object will be + created using CsvHelper's default object creation. If + is false, an exception is thrown. + + The type to create an instance from. The created object + may not be the same type as the given type. + Constructor arguments used to create the type. + + + + Represents errors that occur while parsing a CSV file. + + + + + Initializes a new instance of the class. + + The reading context. + + + + Initializes a new instance of the class + with a specified error message. + + The reading context. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The reading context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Represents errors that occur while reading a CSV file. + + + + + Initializes a new instance of the class. + + The reading context. + + + + Initializes a new instance of the class + with a specified error message. + + The reading context. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The reading context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + CSV reading state. + + + + + Gets the raw record builder. + + + + + Gets the field builder. + + + + + Gets the record builder. + + + + + Gets the named indexes. + + + + + Gets the named indexes cache. + + + + + Gets the type converter options cache. + + + + + Gets the create record functions. + + + + + Gets the hydrate record actions. + + + + + Gets the reusable member map data. + + + + + Gets the that is read from. + + + + + Gets a value indicating if the + should be left open when disposing. + + + + + Gets the buffer used to store data from the . + + + + + Gets the buffer position. + + + + + Gets the field start position. + + + + + Gets the field end position. + + + + + Gets the raw record start position. + + + + + Gets the raw record end position. + + + + + Gets the number of characters read from the . + + + + + Gets the character position. + + + + + Gets the byte position. + + + + + Gets a value indicating if the field is bad. + True if the field is bad, otherwise false. + A field is bad if a quote is found in a field + that isn't escaped. + + + + + Gets the record. + + + + + Gets the row of the CSV file that the parser is currently on. + + + + + Gets the row of the CSV file that the parser is currently on. + This is the actual file row. + + + + + Gets a value indicating if reading has begun. + + + + + Gets the header record. + + + + + Gets the current index. + + + + + Gets the column count. + + + + + Gets the configuration. + + + + + Gets the configuration. + + + + + Gets all the characters of the record including + quotes, delimiters, and line endings. + + + + + Gets the field. + + + + + Initializes a new instance. + + The reader. + The configuration. + A value indicating if the TextReader should be left open when disposing. + + + + Clears the specified caches. + + The caches to clear. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + 2 + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + True if the instance needs to be disposed of. + + + + Builds CSV records. + + + + + The number of records. + + + + + The total record capacity. + + + + + Creates a new using defaults. + + + + + Creates a new using the given capacity. + + The initial capacity. + + + + Adds a new field to the . + + The field to add. + The current instance of the . + + + + Clears the records. + + The current instance of the . + + + + Returns the record as an . + + The record as an . + + + + Extensions to help with reflection. + + + + + Gets the type from the member. + + The member to get the type from. + The type. + + + + Gets a member expression for the member. + + The member to get the expression for. + The member expression. + The member expression. + + + + Gets a value indicating if the given type is anonymous. + True for anonymous, otherwise false. + + The type. + + + + Gets a value indicating if the given type has a parameterless constructor. + True if it has a parameterless constructor, otherwise false. + + The type. + + + + Gets a value indicating if the given type has any constructors. + + The type. + + + + Gets the constructor that contains the most parameters. + + The type. + + + + Gets a value indicating if the type is a user defined struct. + True if it is a user defined struct, otherwise false. + + The type. + + + + Common reflection tasks. + + + + + Creates an instance of type T using the current . + + The type of instance to create. + The constructor arguments. + A new instance of type T. + + + + Creates an instance of the specified type using the current . + + The type of instance to create. + The constructor arguments. + A new instance of the specified type. + + + + Creates an instance of the specified type without using the + current . + + The type of instance to create. + The constructor arguments. + A new instance of the specified type. + + + + Gets the from the type where the property was declared. + + The type the property belongs to. + The property to search. + Flags for how the property is retrieved. + + + + Walk up the inheritance tree collecting properties. This will get a unique set or properties in the + case where parents have the same property names as children. + + The to get properties for. + The flags for getting the properties. + If true, parent class properties that are hidden by `new` child properties will be overwritten. + + + + Gets the property from the expression. + + The type of the model. + The type of the property. + The expression. + The for the expression. + + + + Gets the member inheritance chain as a stack. + + The type of the model. + The type of the property. + The member expression. + The inheritance chain for the given member expression as a stack. + + + + Converts an to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the object to a string. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Creates a new ByteArrayConverter using the given . + + The options. + + + + Converts the object to a string. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Options for converting byte arrays. + + + + + No options. + + + + + Hexadecimal encoding. + + + + + Base64 encoding. + + + + + Use dashes in between hex values. + + + + + Prefix hex number with 0x. + + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts an to and from a . + + + + + Converts the object to a string. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the object to a string. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts an to and from a . + + + + + Creates a new for the given . + + The type of the Enum. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Throws an exception when used. This is here so that it's apparent + that there is no support for type conversion. A custom + converter will need to be created to have a field convert to and + from an IEnumerable. + + + + + Throws an exception. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Throws an exception. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts an to and from a . + + + + + Converts the object to a string. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts an to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts an to and from a . + + + + + Converts the object to a string. + + The object to convert to a string. + + + The string representation of the object. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts an to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts an to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts an to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts objects to and from strings. + + + + + Converts the object to a string. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Gets the type of the nullable. + + + The type of the nullable. + + + + + Gets the underlying type of the nullable. + + + The underlying type. + + + + + Gets the type converter for the underlying type. + + + The type converter. + + + + + Creates a new for the given . + + The nullable type. + The type converter factory. + type is not a nullable type. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts the object to a string. + + The object to convert to a string. + + + The string representation of the object. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the object to a string. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Throws an exception when used. This is here so that it's apparent + that there is no support for type conversion. A custom + converter will need to be created to have a field convert to and + from . + + + + + Throws an exception. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Throws an exception. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Caches s for a given type. + + + + + Initializes the class. + + + + + Adds the for the given . + + The type the converter converts. + The type converter that converts the type. + + + + Adds the for the given . + + The type the converter converts. + The type converter that converts the type. + + + + Removes the for the given . + + The type to remove the converter for. + + + + Removes the for the given . + + The type to remove the converter for. + + + + Gets the converter for the given . + + The type to get the converter for. + The for the given . + + + + Gets the converter for the given member. If an attribute is + found on the member, that will be used, otherwise the cache + will be used. + + The member to get the converter for. + + + + Gets the converter for the given . + + The type to get the converter for. + The for the given . + + + + Represents errors that occur while reading a CSV file. + + + + + The text used in ConvertFromString. + + + + + The value used in ConvertToString. + + + + + The type converter. + + + + + The member map data used in ConvertFromString and ConvertToString. + + + + + Initializes a new instance of the class. + + The type converter. + The member map data. + The text. + The reading context. + + + + Initializes a new instance of the class. + + The type converter. + The member map data. + The value. + The writing context. + + + + Initializes a new instance of the class + with a specified error message. + + The type converter. + The member map data. + The text. + The reading context. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message. + + The type converter. + The member map data. + The value. + The writing context. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The type converter. + The member map data. + The text. + The reading context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The type converter. + The member map data. + The value. + The writing context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Options used when doing type conversion. + + + + + Gets or sets the culture info. + + + + + Gets or sets the date time style. + + + + + Gets or sets the time span style. + + + + + Gets or sets the number style. + + + + + Gets or sets the string format. + + + + + Gets or sets the . + + + + + Gets the list of values that can be + used to represent a boolean of true. + + + + + Gets the list of values that can be + used to represent a boolean of false. + + + + + Gets the list of values that can be used to represent a null value. + + + + + Merges TypeConverterOptions by applying the values of sources in order on to each other. + The first object is the source object. + + The sources that will be applied. + The updated source object. + + + + Caches for a given type. + + + + + Adds the for the given . + + The type the options are for. + The options. + + + + Adds the for the given . + + The type the options are for. + The options. + + + + Removes the for the given type. + + The type to remove the options for. + + + + Removes the for the given type. + + The type to remove the options for. + + + + Get the for the given . + + The type the options are for. + The options for the given type. + + + + Get the for the given . + + The type the options are for. + The options for the given type. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the to a . + + The string to convert to an object. + The for the current record. + The for the member being created. + + The created from the string. + + + + + Represents a user supplied validation failure. + + + + + Initializes a new instance of the class. + + The reading context. + + + + Initializes a new instance of the class + with a specified error message. + + The reading context. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The reading context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Represents errors that occur while writing a CSV file. + + + + + Initializes a new instance of the class. + + The writing context. + + + + Initializes a new instance of the class + with a specified error message. + + The writing context. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The writing context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + CSV writing state. + + + + + Gets the type actions. + + + + + Gets the type converter options. + + + + + Gets or sets the reusable member map data. + + + + + Gets the writer configuration. + + + + + Gets the serializer configuration. + + + + + Gets the . + + + + + Gets a value indicating if the + should be left open when disposing. + + + + + Gets the current row. + + + + + Get the current record; + + + + + Gets a value indicating if the header has been written. + + + + + Gets a value indicating if a record has been written. + + + + + Initializes a new instance. + + The writer. + The configuration. + A value indicating if the TextWriter should be left open. + + + + Clears the specified caches. + + The caches to clear. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + 2 + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + True if the instance needs to be disposed of. + + + diff --git a/packages/CsvHelper.15.0.5/lib/net47/CsvHelper.dll b/packages/CsvHelper.15.0.5/lib/net47/CsvHelper.dll new file mode 100644 index 0000000..5e80310 Binary files /dev/null and b/packages/CsvHelper.15.0.5/lib/net47/CsvHelper.dll differ diff --git a/packages/CsvHelper.15.0.5/lib/net47/CsvHelper.xml b/packages/CsvHelper.15.0.5/lib/net47/CsvHelper.xml new file mode 100644 index 0000000..16ec07c --- /dev/null +++ b/packages/CsvHelper.15.0.5/lib/net47/CsvHelper.xml @@ -0,0 +1,7655 @@ + + + + CsvHelper + + + + + Represents errors that occur due to bad data. + + + + + Initializes a new instance of the class. + + The reading context. + + + + Initializes a new instance of the class + with a specified error message. + + The reading context. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The reading context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Types of caches. + + + + + None. + + + + + Named index. + + + + + Delegate that creates objects when reading. + + + + + Delegate that writes objects to strings when writing. + + + + + Type converter options. + + + + + Raw record. + + + + + The string values used to represent a boolean false when converting. + + + + + Gets the false values. + + + + + The string values used to represent a boolean false when converting. + + The false values. + + + + The string values used to represent a boolean false when converting. + + The false values. + + + + Applies configuration to the given . + + The member map. + + + + The string values used to represent a boolean true when converting. + + + + + Gets the true values. + + + + + The string values used to represent a boolean true when converting. + + + + + + The string values used to represent a boolean true when converting. + + + + + + Applies configuration to the given . + + The member map. + + + + The constant value that will be used for every record when + reading and writing. This value will always be used no matter + what other mapping configurations are specified. + + + + + Gets the constant. + + + + + The constant value that will be used for every record when + reading and writing. This value will always be used no matter + what other mapping configurations are specified. + + The constant. + + + + Applies configuration to the given . + + The member map. + + + + The used when type converting. + This will override the global + setting. + + + + + Gets the culture info. + + + + + The used when type converting. + This will override the global + setting. + + The culture. + + + + Applies configuration to the given . + + The member map. + + + + The to use when type converting. + This is used when doing any conversions. + + + + + Gets the date time styles. + + + + + The to use when type converting. + This is used when doing any conversions. + + The date time styles. + + + + Applies configuration to the given . + + The member map. + + + + The default value that will be used when reading when + the CSV field is empty. + + + + + Gets the default value. + + + + + The default value that will be used when reading when + the CSV field is empty. + + The default value + + + + Applies configuration to the given . + + The member map. + + + + The string format to be used when type converting. + + + + + Gets the formats. + + + + + The string format to be used when type converting. + + The format. + + + + The string format to be used when type converting. + + The formats. + + + + Applies configuration to the given . + + The member map. + + + + Appends a prefix to the header of each field of the reference member. + + + + + Gets the prefix. + + + + + Appends a prefix to the header of each field of the reference member. + + + + + Appends a prefix to the header of each field of the reference member. + + The prefix. + + + + Applies configuration to the given . + + The reference map. + + + + Ignore the member when reading and writing. + If this member has already been mapped as a reference + member, either by a class map, or by automapping, calling + this method will not ignore all the child members down the + tree that have already been mapped. + + + + + Applies configuration to the given . + + The member map. + + + + Applies configuration to the given . + + The reference map. + + + + + Defines methods to enables pluggable configuration of member mapping. + + + + + Applies configuration to the given . + + The member map. + + + + Defines methods to enables pluggable configuration of member mapping. + + + + + Applies configuration to the given . + + The reference map. + + + + When reading, is used to get the field at + the given index. When writing, the fields + will be written in the order of the field + indexes. + + + + + Gets the index. + + + + + Gets the index end. + + + + + When reading, is used to get the field at + the given index. When writing, the fields + will be written in the order of the field + indexes. + + The index. + The index end. + + + + Applies configuration to the given . + + The member map. + + + + When reading, is used to get the field + at the index of the name if there was a + header specified. It will look for the + first name match in the order listed. + When writing, sets the name of the + field in the header record. + The first name will be used. + + + + + Gets the names. + + + + + When reading, is used to get the field + at the index of the name if there was a + header specified. It will look for the + first name match in the order listed. + When writing, sets the name of the + field in the header record. + The first name will be used. + + The name + + + + When reading, is used to get the field + at the index of the name if there was a + header specified. It will look for the + first name match in the order listed. + When writing, sets the name of the + field in the header record. + The first name will be used. + + The names. + + + + Applies configuration to the given . + + The member map. + + + + When reading, is used to get the + index of the name used when there + are multiple names that are the same. + + + + + The name index. + + + + + When reading, is used to get the + index of the name used when there + are multiple names that are the same. + + The name index. + + + + Applies configuration to the given . + + The member map. + + + + The string values used to represent null when converting. + + + + + Gets the null values. + + + + + The string values used to represent null when converting. + + The null values. + + + + The string values used to represent null when converting. + + The null values. + + + + Applies configuration to the given . + + The member map. + + + + The to use when type converting. + This is used when doing any number conversions. + + + + + Gets the number styles. + + + + + The to use when type converting. + This is used when doing any number conversions. + + The number styles. + + + + Applies configuration to the given . + + The member map. + + + + Ignore the member when reading if no matching field name can be found. + + + + + Applies configuration to the given . + + The member map. + + + + Specifies the to use + when converting the member to and from a CSV field. + + + + + Gets the type converter. + + + + + Specifies the to use + when converting the member to and from a CSV field. + + + + + + Applies configuration to the given . + + The member map. + + + + Maps class members to CSV fields. + + + + + The type of the class this map is for. + + + + + The class constructor parameter mappings. + + + + + The class member mappings. + + + + + The class member reference mappings. + + + + + Allow only internal creation of CsvClassMap. + + The type of the class this map is for. + + + + Maps a member to a CSV field. + + The type of the class this map is for. This may not be the same type + as the member.DeclaringType or the current ClassType due to nested member mappings. + The member to map. + If true, an existing map will be used if available. + If false, a new map is created for the same member. + The member mapping. + + + + Maps a non-member to a CSV field. This allows for writing + data that isn't mapped to a class member. + + The member mapping. + + + + Maps a member to another class map. + + The type of the class map. + The member. + Constructor arguments used to create the reference map. + The reference mapping for the member. + + + + Auto maps all members for the given type. If a member + is mapped again it will override the existing map. + + The culture. + + + + Auto maps all members for the given type. If a member + is mapped again it will override the existing map. + + The configuration. + + + + Get the largest index for the + members and references. + + The max index. + + + + Resets the indexes based on the given start index. + + The index start. + The last index + 1. + + + + Auto maps the given map and checks for circular references as it goes. + + The map to auto map. + The configuration. + The list of parents for the map. + The index starting point. + + + + Auto maps the given map using constructor parameters. + + The map. + The configuration. + The list of parents for the map. + The index starting point. + + + + Checks for circular references. + + The type to check for. + The list of parents to check against. + A value indicating if a circular reference was found. + True if a circular reference was found, otherwise false. + + + + Gets the generic type for this class map. + + + + + Applies attribute configurations to the map. + + The member map. + + + + Applies attribute configurations to the map. + + The reference map. + + + + Has mapping capabilities. + + The class type. + + + + Maps a member to a CSV field. + + The member to map. + If true, an existing map will be used if available. + If false, a new map is created for the same member. + The member mapping. + + + + Options after a mapping call. + + The class type. + The member type. + + + + Has type converter capabilities. + + The class type. + The member type. + + + + Specifies the to use + when converting the member to and from a CSV field. + + The TypeConverter to use. + + + + Specifies the to use + when converting the member to and from a CSV field. + + The of the + to use. + + + + Options after a type converter call. + + The class type. + The member type. + + + + Has index capabilities. + + The class type. + The member type. + + + + When reading, is used to get the field at + the given index. When writing, the fields + will be written in the order of the field + indexes. + + The index of the CSV field. + The end index used when mapping to an member. + + + + Options after an index call. + + The class type. + The member type. + + + + Has optional capabilities. + + The class type. + The member type. + + + + Ignore the member when reading if no matching field name can be found. + + + + + Options after an optional call. + + The class type. + The member type. + + + + Has name capabilities. + + The class type. + The member type. + + + + When reading, is used to get the field + at the index of the name if there was a + header specified. It will look for the + first name match in the order listed. + When writing, sets the name of the + field in the header record. + The first name will be used. + + The possible names of the CSV field. + + + + Options after a name call. + + The class type. + The member type. + + + + Has name index capabilities. + + The class type. + The member type. + + + + When reading, is used to get the + index of the name used when there + are multiple names that are the same. + + The index of the name. + + + + Options after a name index call. + + The class type. + The member type. + + + + Has convert using capabilities. + + The class type. + The member type. + + + + Specifies an expression to be used to convert data in the + row to the member. + + The convert expression. + + + + Specifies an expression to be used to convert the object + to a field. + + The convert expression. + + + + Has default capabilities. + + The class type. + The member type. + + + + The default value that will be used when reading when + the CSV field is empty. + + The default value. + + + + The default value that will be used when reading when + the CSV field is empty. This value is not type checked + and will use a to convert + the field. This could potentially have runtime errors. + + The default value. + + + + Options after a default call. + + The class type. + The member type. + + + + Has constant capabilities. + + The class type. + The member type. + + + + The constant value that will be used for every record when + reading and writing. This value will always be used no matter + what other mapping configurations are specified. + + The constant value. + + + + Has validate capabilities. + + The class type. + The member type. + + + + The validate expression that will be called on every field when reading. + The expression should return true if the field is valid. + If false is returned, a + will be thrown. + + The validation expression. + + + + Has build capabilities. + + The class type. + + + + Builds the . + + + + + Collection that holds CsvClassMaps for record types. + + + + + Gets the for the specified record type. + + + The . + + The record type. + The for the specified record type. + + + + Creates a new instance using the given configuration. + + The configuration. + + + + Finds the for the specified record type. + + The record type. + The for the specified record type. + + + + Adds the specified map for it's record type. If a map + already exists for the record type, the specified + map will replace it. + + The map. + + + + Removes the class map. + + The class map type. + + + + Removes all maps. + + + + + Goes up the inheritance tree to find the type instance of CsvClassMap{}. + + The type to traverse. + The type that is CsvClassMap{}. + + + + Sets defaults for the mapping tree. The defaults used + to be set inside the classes, but this didn't allow for + the TypeConverter to be created from the Configuration's + TypeConverterFactory. + + The map to set defaults on. + + + + Maps class members to CSV fields. + + The of class to map. + + + + Creates an instance of . + + + + + Maps a member to a CSV field. + + The member to map. + If true, an existing map will be used if available. + If false, a new map is created for the same member. + The member mapping. + + + + Meant for internal use only. + Maps a member to another class map. When this is used, accessing a property through + sub-property mapping later won't work. You can only use one or the other. When using + this, ConvertUsing will also not work. + + The type of the class map. + The expression. + Constructor arguments used to create the reference map. + The reference mapping for the member. + + + + Represents configuration errors that occur. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + Holds the default callback methods for delegate members of CsvHelper.Configuration.Configuration. + + + + Throws a if is false. + + + + + Throws a MissingFieldException. + + + + + Throws a . + + + + + Throws the given . + + + + + Returns true if the field contains a , + starts with a space, ends with a space, contains \r or \n, or contains + the . + + The field. + The context. + + + + + Returns false. + + + + + Returns the as given. + + + + + Returns true if : + 1. does not have a parameterless constructor + 2. has a constructor + 3. is not a user defined struct + 4. is not an interface + 5. TypeCode is not an Object. + + + + + Returns the type's constructor with the most parameters. + If two constructors have the same number of parameters, then + there is no guarantee which one will be returned. If you have + that situation, you should probably implement this function yourself. + + + + + Configuration used for reading and writing CSV data. + + + + + Gets or sets the . + + + + + Gets or sets the . + + + + + Gets or sets a value indicating if the + CSV file has a header record. + Default is true. + + + + + Gets or sets the function that is called when a header validation check is ran. The default function + will throw a if there is no header for a given member mapping. + You can supply your own function to do other things like logging the issue instead of throwing an exception. + Arguments: isValid, headerNames, headerNameIndex, context + + + + + Gets or sets the function that is called when a missing field is found. The default function will + throw a . You can supply your own function to do other things + like logging the issue instead of throwing an exception. + Arguments: headerNames, index, context + + + + + Gets or sets the function that is called when bad field data is found. A field + has bad data if it contains a quote and the field is not quoted (escaped). + You can supply your own function to do other things like logging the issue + instead of throwing an exception. + Arguments: context + + + + + Gets or sets the function that is called when a reading exception occurs. + The default function will re-throw the given exception. If you want to ignore + reading exceptions, you can supply your own function to do other things like + logging the issue. + Arguments: exception + + + + + Gets or sets the callback that will be called to + determine whether to skip the given record or not. + + + + + Gets or sets a value indicating if a line break found in a quote field should + be considered bad data. True to consider a line break bad data, otherwise false. + Defaults to false. + + + + + Gets or sets a value indicating if fields should be sanitized + to prevent malicious injection. This covers MS Excel, + Google Sheets and Open Office Calc. + + + + + Gets or sets the characters that are used for injection attacks. + + + + + Gets or sets the character used to escape a detected injection. + + + + + Gets or sets a value indicating whether changes in the column + count should be detected. If true, a + will be thrown if a different column count is detected. + + + true if [detect column count changes]; otherwise, false. + + + + + Prepares the header field for matching against a member name. + The header field and the member name are both ran through this function. + You should do things like trimming, removing whitespace, removing underscores, + and making casing changes to ignore case. + + + + + Determines if constructor parameters should be used to create + the class instead of the default constructor and members. + + + + + Chooses the constructor to use for constructor mapping. + + + + + Gets or sets the comparer used to order the properties + of dynamic objects when writing. The default is null, + which will preserve the order the object properties + were created with. + + + + + Gets or sets a value indicating whether references + should be ignored when auto mapping. True to ignore + references, otherwise false. Default is false. + + + + + Gets or sets the field trimming options. + + + + + Gets or sets the delimiter used to separate fields. + Default is CultureInfo.TextInfo.ListSeparator. + + + + + Gets or sets the escape character used to escape a quote inside a field. + Default is '"'. + + + + + Gets or sets the character used to quote fields. + Default is '"'. + + + + + Gets a string representation of the currently configured Quote character. + + + The new quote string. + + + + + Gets a string representation of two of the currently configured Quote characters. + + + The new double quote string. + + + + + Gets or sets a function that is used to determine if a field should get quoted + when writing. + Arguments: field, context + + + + + Gets or sets the character used to denote + a line that is commented out. Default is '#'. + + + + + Gets or sets a value indicating if comments are allowed. + True to allow commented out lines, otherwise false. + + + + + Gets or sets the size of the buffer + used for reading CSV files. + Default is 2048. + + + + + Gets or sets a value indicating whether the number of bytes should + be counted while parsing. Default is false. This will slow down parsing + because it needs to get the byte count of every char for the given encoding. + The needs to be set correctly for this to be accurate. + + + + + Gets or sets the encoding used when counting bytes. + + + + + Gets or sets the culture info used to read an write CSV files. + Default is . + + + + + Gets or sets a value indicating if quotes should be + ignored when parsing and treated like any other character. + + + + + Gets or sets a value indicating if private + member should be read from and written to. + True to include private member, otherwise false. Default is false. + + + + + Gets or sets the member types that are used when auto mapping. + MemberTypes are flags, so you can choose more than one. + Default is Properties. + + + + + Gets or sets a value indicating if blank lines + should be ignored when reading. + True to ignore, otherwise false. Default is true. + + + + + Gets or sets a callback that will return the prefix for a reference header. + Arguments: memberType, memberName + + + + + The configured s. + + + + + Gets or sets the newline to use when writing. + + + + + Gets the newline string to use when writing. This string is determined + by the value. + + + + + Gets or sets a value indicating that during writing if a new + object should be created when a reference member is null. + True to create a new object and use it's defaults for the + fields, or false to leave the fields empty for all the + reference member's member. + + + + + Initializes a new instance of the class + using the given . Since + uses for it's default, the given + will be used instead. + + The culture information. + + + + Use a to configure mappings. + When using a class map, no members are mapped by default. + Only member specified in the mapping are used. + + The type of mapping class to use. + + + + Use a to configure mappings. + When using a class map, no members are mapped by default. + Only members specified in the mapping are used. + + The type of mapping class to use. + + + + Registers the class map. + + The class map to register. + + + + Unregisters the class map. + + The map type to unregister. + + + + Unregisters the class map. + + The map type to unregister. + + + + Unregisters all class maps. + + + + + Generates a for the type. + + The type to generate the map for. + The generate map. + + + + Generates a for the type. + + The type to generate for the map. + The generate map. + + + + A default that can be used + to create a class map dynamically. + + + + + + Configuration used for the . + + + + + Gets or sets the size of the buffer + used for reading CSV files. + Default is 2048. + + + + + Gets or sets a value indicating whether the number of bytes should + be counted while parsing. Default is false. This will slow down parsing + because it needs to get the byte count of every char for the given encoding. + The needs to be set correctly for this to be accurate. + + + + + Gets or sets the encoding used when counting bytes. + + + + + Gets or sets the function that is called when bad field data is found. A field + has bad data if it contains a quote and the field is not quoted (escaped). + You can supply your own function to do other things like logging the issue + instead of throwing an exception. + Arguments: context + + + + + Gets or sets a value indicating if a line break found in a quote field should + be considered bad data. True to consider a line break bad data, otherwise false. + Defaults to false. + + + + + Gets or sets the character used to denote + a line that is commented out. Default is '#'. + + + + + Gets or sets a value indicating if comments are allowed. + True to allow commented out lines, otherwise false. + + + + + Gets or sets a value indicating if blank lines + should be ignored when reading. + True to ignore, otherwise false. Default is true. + + + + + Gets or sets a value indicating if quotes should be + ignored when parsing and treated like any other character. + + + + + Gets or sets the character used to quote fields. + Default is '"'. + + + + + Gets or sets the delimiter used to separate fields. + Default is CultureInfo.CurrentCulture.TextInfo.ListSeparator. + + + + + Gets or sets the escape character used to escape a quote inside a field. + Default is '"'. + + + + + Gets or sets the field trimming options. + + + + + Configuration used for the . + + + + + Gets or sets a value indicating if the + CSV file has a header record. + Default is true. + + + + + Gets or sets the function that is called when a header validation check is ran. The default function + will throw a if there is no header for a given member mapping. + You can supply your own function to do other things like logging the issue instead of throwing an exception. + Arguments: isValid, headerNames, headerNameIndex, context + + + + + Gets or sets the function that is called when a missing field is found. The default function will + throw a . You can supply your own function to do other things + like logging the issue instead of throwing an exception. + Arguments: headerNames, index, context + + + + + Gets or sets the function that is called when a reading exception occurs. + The default function will re-throw the given exception. If you want to ignore + reading exceptions, you can supply your own function to do other things like + logging the issue. + Arguments: exception + + + + + Gets or sets the culture info used to read an write CSV files. + + + + + Gets or sets the . + + + + + Gets or sets the . + + + + + Prepares the header field for matching against a member name. + The header field and the member name are both ran through this function. + You should do things like trimming, removing whitespace, removing underscores, + and making casing changes to ignore case. + + + + + Determines if constructor parameters should be used to create + the class instead of the default constructor and members. + + + + + Chooses the constructor to use for constructor mapping. + + + + + Gets or sets a value indicating whether references + should be ignored when auto mapping. True to ignore + references, otherwise false. Default is false. + + + + + Gets or sets the callback that will be called to + determine whether to skip the given record or not. + + + + + Gets or sets a value indicating if private + member should be read from and written to. + True to include private member, otherwise false. Default is false. + + + + + Gets or sets a callback that will return the prefix for a reference header. + Arguments: memberType, memberName + + + + + Gets or sets a value indicating whether changes in the column + count should be detected. If true, a + will be thrown if a different column count is detected. + + + true if [detect column count changes]; otherwise, false. + + + + + Gets or sets the member types that are used when auto mapping. + MemberTypes are flags, so you can choose more than one. + Default is Properties. + + + + + The configured s. + + + + + Use a to configure mappings. + When using a class map, no members are mapped by default. + Only member specified in the mapping are used. + + The type of mapping class to use. + + + + Use a to configure mappings. + When using a class map, no member are mapped by default. + Only member specified in the mapping are used. + + The type of mapping class to use. + + + + Registers the class map. + + The class map to register. + + + + Unregisters the class map. + + The map type to unregister. + + + + Unregisters the class map. + + The map type to unregister. + + + + Unregisters all class maps. + + + + + Generates a for the type. + + The type to generate the map for. + The generate map. + + + + Generates a for the type. + + The type to generate for the map. + The generate map. + + + + Configuration used for the . + + + + + Gets or sets the delimiter used to separate fields. + Default is ','; + + + + + Gets or sets the character used to quote fields. + Default is '"'. + + + + + Gets or sets the escape character used to escape a quote inside a field. + Default is '"'. + + + + + Gets or sets the field trimming options. + + + + + Gets or sets a value indicating if fields should be sanitized + to prevent malicious injection. This covers MS Excel, + Google Sheets and Open Office Calc. + + + + + Gets or sets the characters that are used for injection attacks. + + + + + Gets or sets the character used to escape a detected injection. + + + + + Gets or sets the newline to use when writing. + + + + + Gets the newline string to use when writing. This string is determined + by the value. + + + + + Configuration used for the . + + + + + Gets a string representation of the currently configured Quote character. + + + The new quote string. + + + + + Gets a string representation of two of the currently configured Quote characters. + + + The new double quote string. + + + + + Gets or sets a function that is used to determine if a field should get quoted + when writing. + Arguments: field, context + + + + + Gets or sets the culture info used to read an write CSV files. + + + + + Gets or sets the . + + + + + Gets or sets the . + + + + + Gets or sets a value indicating if comments are allowed. + True to allow commented out lines, otherwise false. + + + + + Gets or sets the character used to denote + a line that is commented out. Default is '#'. + + + + + Gets or sets a value indicating if the + CSV file has a header record. + Default is true. + + + + + Gets or sets a value indicating whether references + should be ignored when auto mapping. True to ignore + references, otherwise false. Default is false. + + + + + Gets or sets a value indicating if private + member should be read from and written to. + True to include private member, otherwise false. Default is false. + + + + + Gets or sets a callback that will return the prefix for a reference header. + Arguments: memberType, memberName + + + + + Gets or sets the member types that are used when auto mapping. + MemberTypes are flags, so you can choose more than one. + Default is Properties. + + + + + The configured s. + + + + + Use a to configure mappings. + When using a class map, no member are mapped by default. + Only member specified in the mapping are used. + + The type of mapping class to use. + + + + Use a to configure mappings. + When using a class map, no member are mapped by default. + Only member specified in the mapping are used. + + The type of mapping class to use. + + + + Registers the class map. + + The class map to register. + + + + Unregisters the class map. + + The map type to unregister. + + + + Unregisters the class map. + + The map type to unregister. + + + + Unregisters all class maps. + + + + + Generates a for the type. + + The type to generate the map for. + The generate map. + + + + Generates a for the type. + + The type to generate for the map. + The generate map. + + + + Gets or sets a value indicating that during writing if a new + object should be created when a reference member is null. + True to create a new object and use it's defaults for the + fields, or false to leave the fields empty for all the + reference member's member. + + + + + Gets or sets the comparer used to order the properties + of dynamic objects when writing. The default is null, + which will preserve the order the object properties + were created with. + + + + + Sets type converter options on a member map. + + + + + Creates a new instance using the given . + + The member map the options are being applied to. + + + + The used when type converting. + This will override the global + setting. + + The culture info. + + + + The to use when type converting. + This is used when doing any conversions. + + The date time style. + + + + The to use when type converting. + This is used when doing converting. + + The time span styles. + + + + The to use when type converting. + This is used when doing any number conversions. + + + + + + The string format to be used when type converting. + + The format. + + + + The to use when converting. + This is used when doing conversions. + + Kind of the URI. + + + + The string values used to represent a boolean when converting. + + A value indicating whether true values or false values are being set. + A value indication if the current values should be cleared before adding the new ones. + The string boolean values. + + + + The string values used to represent null when converting. + + The values that represent null. + + + + + The string values used to represent null when converting. + + A value indication if the current values should be cleared before adding the new ones. + The values that represent null. + + + + + Mapping info for a member to a CSV field. + + + + + Gets the member map data. + + + + + Type converter options. + + + + + Creates an instance of using the given Type and . + + Type of the class the member being mapped belongs to. + The member being mapped. + + + + When reading, is used to get the field + at the index of the name if there was a + header specified. It will look for the + first name match in the order listed. + When writing, sets the name of the + field in the header record. + The first name will be used. + + The possible names of the CSV field. + + + + When reading, is used to get the + index of the name used when there + are multiple names that are the same. + + The index of the name. + + + + When reading, is used to get the field at + the given index. When writing, the fields + will be written in the order of the field + indexes. + + The index of the CSV field. + The end index used when mapping to an member. + + + + Ignore the member when reading and writing. + If this member has already been mapped as a reference + member, either by a class map, or by automapping, calling + this method will not ignore all the child members down the + tree that have already been mapped. + + + + + Ignore the member when reading and writing. + If this member has already been mapped as a reference + member, either by a class map, or by automapping, calling + this method will not ignore all the child members down the + tree that have already been mapped. + + True to ignore, otherwise false. + + + + The default value that will be used when reading when + the CSV field is empty. + + The default value. + + + + The default value that will be used when reading when + the CSV field is empty. This value is not type checked + and will use a to convert + the field. This could potentially have runtime errors. + + The default value. + + + + The constant value that will be used for every record when + reading and writing. This value will always be used no matter + what other mapping configurations are specified. + + The constant value. + + + + Specifies the to use + when converting the member to and from a CSV field. + + The TypeConverter to use. + + + + Specifies the to use + when converting the member to and from a CSV field. + + The of the + to use. + + + + Specifies an expression to be used to validate a field when reading. + + + + + + A collection that holds 's. + + + + + Gets the number of elements contained in the . + + + The number of elements contained in the . + + + + + Gets a value indicating whether the is read-only. + + + true if the is read-only; otherwise, false. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The comparer to use when sorting the member maps. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + 1 + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + 2 + + + + Adds an item to the . + + The object to add to the . + The is read-only. + + + + + Adds a range of items to the . + + The collection to add. + + + + Removes all items from the . + + The is read-only. + + + + + Determines whether the contains a specific value. + + + true if is found in the ; otherwise, false. + + The object to locate in the . + + + + + Copies the elements of the to an , starting at a particular index. + + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.The zero-based index in at which copying begins. is null. is less than 0.The number of elements in the source is greater than the available space from to the end of the destination . + + + + Removes the first occurrence of a specific object from the . + + + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + + The object to remove from the . + The is read-only. + + + + + Determines the index of a specific item in the . + + + The index of if found in the list; otherwise, -1. + + The object to locate in the . + + + + + Inserts an item to the at the specified index. + + The zero-based index at which should be inserted. + The object to insert into the . + is not a valid index in the . + The is read-only. + + + + + Removes the item at the specified index. + + The zero-based index of the item to remove. + is not a valid index in the . + The is read-only. + + + + + Gets or sets the element at the specified index. + + + The element at the specified index. + + The zero-based index of the element to get or set. + is not a valid index in the . + The member is set and the is read-only. + + + + + Finds the using the given member expression. + + The the member is on. + The member expression. + The for the given expression, or null if not found. + + + + Finds the using the given member. + + The member. + The for the given expression, or null if not found. + + + + Adds the members from the mapping. This will recursively + traverse the mapping tree and add all members for + reference maps. + + The mapping where the members are added from. + + + + Used to compare s. + The order is by field index ascending. Any + fields that don't have an index are pushed + to the bottom. + + + + + Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. + + + Value + Condition + Less than zero + is less than . + Zero + equals . + Greater than zero + is greater than . + + The first object to compare. + The second object to compare. + Neither nor implements the interface. + -or- + and are of different types and neither one can handle comparisons with the other. + 2 + + + + Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other. + + + Value + Condition + Less than zero + is less than . + Zero + equals . + Greater than zero + is greater than . + + The first object to compare. + The second object to compare. + + + + + The configured data for the member map. + + + + + Gets the that the data + is associated with. + + + + + Gets the list of column names. + + + + + Gets or sets the index of the name. + This is used if there are multiple + columns with the same names. + + + + + Gets or sets a value indicating if the name was + explicitly set. True if it was explicitly set, + otherwise false. + + + + + Gets or sets the column index. + + + + + Gets or sets the index end. The Index end is used to specify a range for use + with a collection member. Index is used as the start of the range, and IndexEnd + is the end of the range. + + + + + Gets or sets a value indicating if the index was + explicitly set. True if it was explicitly set, + otherwise false. + + + + + Gets or sets the type converter. + + + + + Gets or sets the type converter options. + + + + + Gets or sets a value indicating whether the field should be ignored. + + + + + Gets or sets the default value used when a CSV field is empty. + + + + + Gets or sets a value indicating whether this instance is default value set. + the default value was explicitly set. True if it was + explicitly set, otherwise false. + + + + + Gets or sets the constant value used for every record. + + + + + Gets or sets a value indicating if a constant was explicitly set. + + + + + Gets or sets the expression used to convert data in the + row to the member. + + + + + Gets or sets the expression to be used to convert the object + to a field. + + + + + Gets or sets the expression use to validate a field. + + + + + Gets or sets a value indicating if a field is optional. + + + + + Initializes a new instance of the class. + + The member. + + + + Mapping info for a member to a CSV field. + + + + + Creates a new instance using the specified member. + + + + + When reading, is used to get the field + at the index of the name if there was a + header specified. It will look for the + first name match in the order listed. + When writing, sets the name of the + field in the header record. + The first name will be used. + + The possible names of the CSV field. + + + + When reading, is used to get the + index of the name used when there + are multiple names that are the same. + + The index of the name. + + + + When reading, is used to get the field at + the given index. When writing, the fields + will be written in the order of the field + indexes. + + The index of the CSV field. + The end index used when mapping to an member. + + + + Ignore the member when reading and writing. + If this member has already been mapped as a reference + member, either by a class map, or by automapping, calling + this method will not ignore all the child members down the + tree that have already been mapped. + + + + + Ignore the member when reading and writing. + If this member has already been mapped as a reference + member, either by a class map, or by automapping, calling + this method will not ignore all the child members down the + tree that have already been mapped. + + True to ignore, otherwise false. + + + + The default value that will be used when reading when + the CSV field is empty. + + The default value. + + + + The default value that will be used when reading when + the CSV field is empty. This value is not type checked + and will use a to convert + the field. This could potentially have runtime errors. + + The default value. + + + + The constant value that will be used for every record when + reading and writing. This value will always be used no matter + what other mapping configurations are specified. + + The constant value. + + + + Specifies the to use + when converting the member to and from a CSV field. + + The TypeConverter to use. + + + + Specifies the to use + when converting the member to and from a CSV field. + + The of the + to use. + + + + Specifies an expression to be used to convert data in the + row to the member. + + The convert expression. + + + + Specifies an expression to be used to convert the object + to a field. + + The convert expression. + + + + Ignore the member when reading if no matching field name can be found. + + + + + Specifies an expression to be used to validate a field when reading. + + + + + + A collection that holds member names. + + + + + Gets the name at the given index. If a prefix is set, + it will be prepended to the name. + + + + + + + Gets the prefix to use for each name. + + + + + Gets the raw list of names without + the prefix being prepended. + + + + + Gets the count. + + + + + Adds the given name to the collection. + + The name to add. + + + + Clears all names from the collection. + + + + + Adds a range of names to the collection. + + The range to add. + + + + Returns an enumerator that iterates through the collection. + + + A that can be used to iterate through the collection. + + 1 + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + 2 + + + + Mapping info for a reference member mapping to a class. + + + + + Gets the member reference map data. + + + + + Initializes a new instance of the class. + + The member. + The to use for the reference map. + + + + Appends a prefix to the header of each field of the reference member. + + The prefix to be prepended to headers of each reference member. + The current + + + + Get the largest index for the + members and references. + + The max index. + + + + A collection that holds 's. + + + + Gets the number of elements contained in the . + The number of elements contained in the . + + + Gets a value indicating whether the is read-only. + true if the is read-only; otherwise, false. + + + Gets or sets the element at the specified index. + The element at the specified index. + The zero-based index of the element to get or set. + + is not a valid index in the . + The member is set and the is read-only. + + + Returns an enumerator that iterates through the collection. + A that can be used to iterate through the collection. + 1 + + + Returns an enumerator that iterates through a collection. + An object that can be used to iterate through the collection. + 2 + + + Adds an item to the . + The object to add to the . + The is read-only. + + + Removes all items from the . + The is read-only. + + + Determines whether the contains a specific value. + true if is found in the ; otherwise, false. + The object to locate in the . + + + Copies the elements of the to an , starting at a particular index. + The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing. + The zero-based index in at which copying begins. + + is null. + + is less than 0. + The number of elements in the source is greater than the available space from to the end of the destination . + + + Removes the first occurrence of a specific object from the . + true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . + The object to remove from the . + The is read-only. + + + Determines the index of a specific item in the . + The index of if found in the list; otherwise, -1. + The object to locate in the . + + + Inserts an item to the at the specified index. + The zero-based index at which should be inserted. + The object to insert into the . + + is not a valid index in the . + The is read-only. + + + Removes the item at the specified index. + The zero-based index of the item to remove. + + is not a valid index in the . + The is read-only. + + + + Finds the using the given member expression. + + The the member is on. + The member expression. + The for the given expression, or null if not found. + + + + Finds the using the given member. + + The member. + The for the given expression, or null if not found. + + + + The configuration data for the reference map. + + + + + Gets or sets the header prefix to use. + + + + + Gets the that the data + is associated with. + + + + + Gets the mapping this is a reference for. + + + + + Initializes a new instance of the class. + + The member. + The mapping this is a reference for. + + + + Flags for the type of members that + can be used for auto mapping. + + + + + No members. This is not a valid value + and will cause an exception if used. + + + + + Properties on a class. + + + + + Fields on a class. + + + + + Types of new lines. + + + + + Windows line feed. + + + + + Classic MAC + + + + + Unix + + + + + Use the setting. + + + + + New line constants. + + + + + Windows line feed. + + + + + Class MAC line feed. + + + + + Unix line feed. + + + + + Mapping for a constructor parameter. + This may contain value type data, a constructor type map, + or a reference map, depending on the type of the parameter. + + + + + Gets the parameter map data. + + + + + Gets or sets the map for a constructor type. + + + + + Gets or sets the map for a reference type. + + + + + Creates an instance of using + the given information. + + The parameter being mapped. + + + + The constructor parameter data for the map. + + + + + Gets the that the data + is associated with. + + + + + Gets or sets the type converter. + + + + + Gets or sets the type converter options. + + + + + Gets or sets the column index. + + + + + Gets or sets the column name. + + + + + Initializes a new instance of the class. + + The constructor parameter. + + + + Mapping info for a reference parameter mapping to a class. + + + + + Gets the parameter reference map data. + + + + + Initializes a new instance of the class. + + The parameter. + The to use for the reference map. + + + + Appends a prefix to the header of each field of the reference parameter. + + The prefix to be prepended to headers of each reference parameter. + The current + + + + Get the largest index for the + members and references. + + The max index. + + + + The configuration data for the reference map. + + + + + Gets or sets the header prefix to use. + + + + + Gets the that the data + is associated with. + + + + + Gets the mapping this is a reference for. + + + + + Initializes a new instance of the class. + + The parameter. + The mapping this is a reference for. + + + + Options for trimming of fields. + + + + + No trimming. + + + + + Trims the whitespace around a field. + + + + + Trims the whitespace inside of quotes around a field. + + + + + Provides a means of reading a CSV file forward-only by using CsvReader. + + + + + + Gets the column with the specified index. + + + The . + + The i. + + + + + Gets the column with the specified name. + + + The . + + The name. + + + + + Gets a value indicating the depth of nesting for the current row. + + + + + Gets a value indicating whether the data reader is closed. + + + + + Gets the number of rows changed, inserted, or deleted by execution of the SQL statement. + + + + + Gets the number of columns in the current row. + + + + + Initializes a new instance of the class. + + The CSV. + + + + Closes the Object. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Gets the value of the specified column as a Boolean. + + The zero-based column ordinal. + + The value of the column. + + + + + Gets the 8-bit unsigned integer value of the specified column. + + The zero-based column ordinal. + + The 8-bit unsigned integer value of the specified column. + + + + + Reads a stream of bytes from the specified column offset into the buffer as an array, starting at the given buffer offset. + + The zero-based column ordinal. + The index within the field from which to start the read operation. + The buffer into which to read the stream of bytes. + The index for buffer to start the read operation. + The number of bytes to read. + + The actual number of bytes read. + + + + + Gets the character value of the specified column. + + The zero-based column ordinal. + + The character value of the specified column. + + + + + Reads a stream of characters from the specified column offset into the buffer as an array, starting at the given buffer offset. + + The zero-based column ordinal. + The index within the row from which to start the read operation. + The buffer into which to read the stream of bytes. + The index for buffer to start the read operation. + The number of bytes to read. + + The actual number of characters read. + + + + + Returns an for the specified column ordinal. + + The index of the field to find. + + The for the specified column ordinal. + + + + + Gets the data type information for the specified field. + + The index of the field to find. + + The data type information for the specified field. + + + + + Gets the date and time data value of the specified field. + + The index of the field to find. + + The date and time data value of the specified field. + + + + + Gets the fixed-position numeric value of the specified field. + + The index of the field to find. + + The fixed-position numeric value of the specified field. + + + + + Gets the double-precision floating point number of the specified field. + + The index of the field to find. + + The double-precision floating point number of the specified field. + + + + + Gets the information corresponding to the type of that would be returned from . + + The index of the field to find. + + The information corresponding to the type of that would be returned from . + + + + + Gets the single-precision floating point number of the specified field. + + The index of the field to find. + + The single-precision floating point number of the specified field. + + + + + Returns the GUID value of the specified field. + + The index of the field to find. + + The GUID value of the specified field. + + + + + Gets the 16-bit signed integer value of the specified field. + + The index of the field to find. + + The 16-bit signed integer value of the specified field. + + + + + Gets the 32-bit signed integer value of the specified field. + + The index of the field to find. + + The 32-bit signed integer value of the specified field. + + + + + Gets the 64-bit signed integer value of the specified field. + + The index of the field to find. + + The 64-bit signed integer value of the specified field. + + + + + Gets the name for the field to find. + + The index of the field to find. + + The name of the field or the empty string (""), if there is no value to return. + + + + + Return the index of the named field. + + The name of the field to find. + + The index of the named field. + + + + + Returns a that describes the column metadata of the . + + + A that describes the column metadata. + + + + + Gets the string value of the specified field. + + The index of the field to find. + + The string value of the specified field. + + + + + Return the value of the specified field. + + The index of the field to find. + + The which will contain the field value upon return. + + + + + Populates an array of objects with the column values of the current record. + + An array of to copy the attribute fields into. + + The number of instances of in the array. + + + + + Return whether the specified field is set to null. + + The index of the field to find. + + true if the specified field is set to null; otherwise, false. + + + + + Advances the data reader to the next result, when reading the results of batch SQL statements. + + + true if there are more rows; otherwise, false. + + + + + Advances the to the next record. + + + true if there are more rows; otherwise, false. + + + + + Reads fields from a . + + + + + Gets the reading context. + + + + + Gets a value indicating if the buffer is empty. + True if the buffer is empty, otherwise false. + + + + + Fills the buffer. + + True if there is more data left. + False if all the data has been read. + + + + Fills the buffer. + + True if there is more data left. + False if all the data has been read. + + + + Creates a new using the given + and . + + The text reader. + The configuration. + + + + Creates a new using the given + , + and leaveOpen flag. + + The text reader. + The configuration. + A value indicating if the should be left open when disposing. + + + + Gets the next char as an . + + + + + Gets the field. This will append any reading progress. + + The current field. + + + + Appends the current reading progress. + + + + + Move's the buffer position according to the given offset. + + The offset to move the buffer. + + + + Sets the start of the field to the current buffer position. + + An offset for the field start. + The offset should be less than 1. + + + + Sets the end of the field to the current buffer position. + + An offset for the field start. + The offset should be less than 1. + + + + Sets the raw record start to the current buffer position; + + An offset for the raw record start. + The offset should be less than 1. + + + + Sets the raw record end to the current buffer position. + + An offset for the raw record end. + The offset should be less than 1. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + 2 + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + True if the instance needs to be disposed of. + + + + Represents errors that occur in CsvHelper. + + + + + Gets the context used when reading. + + + + + Gets the context used when writing. + + + + + Initializes a new instance of the CsvHelperException class. + + + + + Initializes a new instance of the CsvHelperException class. + + The message that describes the error. + + + + Initializes a new instance of the CsvHelperException class. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The reading context. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The reading context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class + with a specified error message. + + The writing context. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The writing context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Parses a CSV file. + + + + + Gets the reading context. + + + + + Gets the configuration. + + + + + Gets the . + + + + + Creates a new parser using the given . + + The with the CSV file data. + The culture. + + + + Creates a new parser using the given . + + The with the CSV file data. + The culture. + true to leave the reader open after the CsvReader object is disposed, otherwise false. + + + + Creates a new parser using the given and . + + The with the CSV file data. + The configuration. + + + + Creates a new parser using the given and . + + The with the CSV file data. + The configuration. + true to leave the reader open after the CsvReader object is disposed, otherwise false. + + + + Creates a new parser using the given . + + The field reader. + + + + Reads a record from the CSV file. + + A of fields for the record read. + + + + Reads a record from the CSV file asynchronously. + + A of fields for the record read. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + 2 + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + True if the instance needs to be disposed of. + + + + Reads a line of the CSV file. + + The CSV line. + + + + Reads a line of the CSV file. + + The CSV line. + + + + Reads a blank line. This accounts for empty lines + and commented out lines. + + + + + Reads a blank line. This accounts for empty lines + and commented out lines. + + + + + Reads until a delimiter or line ending is found. + + True if the end of the line was found, otherwise false. + + + + Reads until a delimiter or line ending is found. + + True if the end of the line was found, otherwise false. + + + + Reads until the field is not quoted and a delimiter is found. + + True if the end of the line was found, otherwise false. + + + + Reads until the field is not quoted and a delimiter is found. + + True if the end of the line was found, otherwise false. + + + + Reads until the delimiter is done. + + True if a delimiter was read. False if the sequence of + chars ended up not being the delimiter. + + + + Reads until the delimiter is done. + + True if a delimiter was read. False if the sequence of + chars ended up not being the delimiter. + + + + Reads until the line ending is done. + + The field start offset. + + + + Reads until the line ending is done. + + The field start offset. + + + + Reads until a non-space character is found. + + True if there is more data to read. + False if the end of the file has been reached. + + + + Reads until a non-space character is found. + + True if there is more data to read. + False if the end of the file has been reached. + + + + Reads data that was parsed from . + + + + + Gets the reading context. + + + + + Gets the configuration. + + + + + Gets the parser. + + + + + Creates a new CSV reader using the given . + + The reader. + The culture. + + + + Creates a new CSV reader using the given . + + The reader. + The culture. + true to leave the reader open after the CsvReader object is disposed, otherwise false. + + + + Creates a new CSV reader using the given and + and as the default parser. + + The reader. + The configuration. + + + + Creates a new CSV reader using the given . + + The reader. + The configuration. + true to leave the reader open after the CsvReader object is disposed, otherwise false. + + + + Creates a new CSV reader using the given . + + The used to parse the CSV file. + + + + Reads the header record without reading the first row. + + True if there are more records, otherwise false. + + + + Validates the header. A header is bad if all the mapped members don't match. + If the header is not valid, a will be thrown. + + The type to validate the header against. + + + + Validates the header. A header is bad if all the mapped members don't match. + If the header is not valid, a will be thrown. + + The type to validate the header against. + + + + Validates the header against the given map. + + The map to validate against. + + + + Advances the reader to the next record. This will not read headers. + You need to call then + for the headers to be read. + + True if there are more records, otherwise false. + + + + Advances the reader to the next record. This will not read headers. + You need to call then + for the headers to be read. + + True if there are more records, otherwise false. + + + + Gets the raw field at position (column) index. + + The zero based index of the field. + The raw field. + + + + Gets the raw field at position (column) name. + + The named index of the field. + The raw field. + + + + Gets the raw field at position (column) name. + + The named index of the field. + The zero based index of the field. + The raw field. + + + + Gets the raw field at position (column) index. + + The zero based index of the field. + The raw field. + + + + Gets the raw field at position (column) name. + + The named index of the field. + The raw field. + + + + Gets the raw field at position (column) name and the index + instance of that field. The index is used when there are + multiple columns with the same header name. + + The named index of the field. + The zero based index of the instance of the field. + The raw field. + + + + Gets the field converted to using + the specified . + + The type of the field. + The index of the field. + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The named index of the field. + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The named index of the field. + The zero based index of the instance of the field. + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The index of the field. + The used to convert the field to . + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The named index of the field. + The used to convert the field to . + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The named index of the field. + The zero based index of the instance of the field. + The used to convert the field to . + The field converted to . + + + + Gets the field converted to T at position (column) index. + + The of the field. + The zero based index of the field. + The field converted to T. + + + + Gets the field converted to T at position (column) name. + + The of the field. + The named index of the field. + The field converted to T. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + + The named index of the field. + The zero based index of the instance of the field. + + + + + Gets the field converted to T at position (column) index using + the given . + + The of the field. + The zero based index of the field. + The used to convert the field to T. + The field converted to T. + + + + Gets the field converted to T at position (column) name using + the given . + + The of the field. + The named index of the field. + The used to convert the field to T. + The field converted to T. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + + The named index of the field. + The zero based index of the instance of the field. + The used to convert the field to T. + The field converted to T. + + + + Gets the field converted to T at position (column) index using + the given . + + The of the field. + The used to convert the field to T. + The zero based index of the field. + The field converted to T. + + + + Gets the field converted to T at position (column) name using + the given . + + The of the field. + The used to convert the field to T. + The named index of the field. + The field converted to T. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + The of the field. + The used to convert the field to T. + The named index of the field. + The zero based index of the instance of the field. + The field converted to T. + + + + Gets the field converted to T at position (column) index. + + The of the field. + The zero based index of the field. + The field converted to type T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name. + + The of the field. + The named index of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + The of the field. + The named index of the field. + The zero based index of the instance of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) index + using the specified . + + The of the field. + The zero based index of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The named index of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The named index of the field. + The zero based index of the instance of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) index. + + The of the field. + The zero based index of the field. + The field converted to type T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name. + + The of the field. + The named index of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + + The named index of the field. + The zero based index of the instance of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) index + using the specified . + + The of the field. + The zero based index of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The named index of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The named index of the field. + The zero based index of the instance of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) index + using the specified . + + The of the field. + The used to convert the field to T. + The zero based index of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The used to convert the field to T. + The named index of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The used to convert the field to T. + The named index of the field. + The zero based index of the instance of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the record converted into T. + + The of the record. + The record converted to T. + + + + Get the record converted into T. + + The of the record. + The anonymous type definition to use for the record. + The record converted to T. + + + + Gets the record. + + The of the record. + The record. + + + + Gets all the records in the CSV file and + converts each to T. The Read method + should not be used when using this. + + The of the record. + An of records. + + + + Gets all the records in the CSV file and converts + each to T. The read method + should not be used when using this. + + The of the record. + The anonymous type definition to use for the records. + An of records. + + + + Gets all the records in the CSV file and + converts each to T. The Read method + should not be used when using this. + + The of the record. + An of records. + + + + Enumerates the records hydrating the given record instance with row data. + The record instance is re-used and not cleared on each enumeration. + This only works for streaming rows. If any methods are called on the projection + that force the evaluation of the IEnumerable, such as ToList(), the entire list + will contain the same instance of the record, which is the last row. + + The type of the record. + The record to fill each enumeration. + An of records. + + + + Gets all the records in the CSV file and + converts each to T. The Read method + should not be used when using this. + + The of the record. + An of records. + + + + Gets all the records in the CSV file and converts + each to T. The read method + should not be used when using this. + + The of the record. + The anonymous type definition to use for the records. + An of records. + + + + Gets all the records in the CSV file and + converts each to T. The Read method + should not be used when using this. + + The of the record. + An of records. + + + + Enumerates the records hydrating the given record instance with row data. + The record instance is re-used and not cleared on each enumeration. + This only works for streaming rows. If any methods are called on the projection + that force the evaluation of the IEnumerable, such as ToList(), the entire list + will contain the same instance of the record, which is the last row. + + The type of the record. + The record to fill each enumeration. + An of records. + + + + Gets the index of the field at name if found. + + The name of the field to get the index for. + The index of the field if there are multiple fields with the same name. + A value indicating if the call was initiated from a TryGet. + The index of the field if found, otherwise -1. + Thrown if there is no header record. + Thrown if there isn't a field with name. + + + + Gets the index of the field at name if found. + + The possible names of the field to get the index for. + The index of the field if there are multiple fields with the same name. + A value indicating if the call was initiated from a TryGet. + A value indicating if the call was initiated for an optional field. + The index of the field if found, otherwise -1. + Thrown if there is no header record. + Thrown if there isn't a field with name. + + + + Determines if the member for the + can be read. + + The member map. + A value indicating of the member can be read. True if it can, otherwise false. + + + + Determines if the member for the + can be read. + + The reference map. + A value indicating of the member can be read. True if it can, otherwise false. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + 2 + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + True if the instance needs to be disposed of. + + + + Checks if the reader has been read yet. + + + + + + Parses the named indexes from the header record. + + + + + Defines methods used to serialize data into a CSV file. + + + + + Gets the writing context. + + + + + Gets the configuration. + + + + + Creates a new serializer using the given . + + The to write the CSV file data to. + The culture information. + + + + Creates a new serializer using the given . + + The to write the CSV file data to. + The culture information. + true to leave the reader open after the CsvReader object is disposed, otherwise false. + + + + Creates a new serializer using the given + and . + + The to write the CSV file data to. + The configuration. + + + + Creates a new serializer using the given + and . + + The to write the CSV file data to. + The configuration. + true to leave the reader open after the CsvReader object is disposed, otherwise false. + + + + Writes a record to the CSV file. + + The record to write. + + + + Writes a record to the CSV file. + + The record to write. + + + + Writes a new line to the CSV file. + + + + + Writes a new line to the CSV file. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + 2 + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + True if the instance needs to be disposed of. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + 2 + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + True if the instance needs to be disposed of. + + + + Sanitizes the field to prevent injection. + + The field to sanitize. + + + + Used to write CSV files. + + + + + Gets the writing context. + + + + + Gets the configuration. + + + + + Creates a new CSV writer using the given . + + The writer used to write the CSV file. + The culture information. + + + + Creates a new CSV writer using the given . + + The writer used to write the CSV file. + The culture information. + true to leave the writer open after the CsvWriter object is disposed, otherwise false. + + + + Creates a new CSV writer using the given . + + The use to write the CSV file. + The configuration. + + + + Creates a new CSV writer using the given . + + The use to write the CSV file. + The configuration. + true to leave the writer open after the CsvWriter object is disposed, otherwise false. + + + + Creates a new CSV writer using the given . + + The serializer. + + + + Writes a field that has already been converted to a + from an . + If the field is null, it won't get written. A type converter + will always return a string, even if field is null. If the + converter returns a null, it means that the converter has already + written data, and the returned value should not be written. + + The converted field to write. + + + + Writes the field to the CSV file. The field + may get quotes added to it. + When all fields are written for a record, + must be called + to complete writing of the current record. + + The field to write. + + + + Writes the field to the CSV file. This will + ignore any need to quote and ignore + + and just quote based on the shouldQuote + parameter. + When all fields are written for a record, + must be called + to complete writing of the current record. + + The field to write. + True to quote the field, otherwise false. + + + + Writes the field to the CSV file. + When all fields are written for a record, + must be called + to complete writing of the current record. + + The type of the field. + The field to write. + + + + Writes the field to the CSV file. + When all fields are written for a record, + must be called + to complete writing of the current record. + + The type of the field. + The field to write. + The converter used to convert the field into a string. + + + + Writes the field to the CSV file + using the given . + When all fields are written for a record, + must be called + to complete writing of the current record. + + The type of the field. + The type of the converter. + The field to write. + + + + Serializes the row to the . + + + + + Serializes the row to the . + + + + + Ends writing of the current record and starts a new record. + This automatically flushes the writer. + + + + + Ends writing of the current record and starts a new record. + This automatically flushes the writer. + + + + + Writes a comment. + + The comment to write. + + + + Writes the header record from the given members. + + The type of the record. + + + + Writes the header record from the given members. + + The type of the record. + + + + Writes the header record for the given dynamic object. + + The dynamic record to write. + + + + Writes the record to the CSV file. + + The type of the record. + The record to write. + + + + Writes the list of records to the CSV file. + + The records to write. + + + + Writes the list of records to the CSV file. + + Record type. + The records to write. + + + + Writes the list of records to the CSV file. + + The records to write. + + + + Writes the list of records to the CSV file. + + Record type. + The records to write. + + + + Checks if the member can be written. + + The member map that we are checking. + A value indicating if the member can be written. + True if the member can be written, otherwise false. + + + + Gets the type for the record. If the generic type + is an object due to boxing, it will call GetType() + on the record itself. + + The record type. + The record. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + 2 + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + True if the instance needs to be disposed of. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + 2 + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + True if the instance needs to be disposed of. + + + + Creates dynamic records. + + + + + Initializes a new instance. + + The reader. + + + + Creates a of type + that will create a record of the given type using the current + reader row. + + The record type. + + + + Creates a dynamic record of the current reader row. + + + + + Write dynamic records. + + + + + Initializes a new instance using the given writer. + + The writer. + + + + Creates a of type + that will write the given record using the current writer row. + + The record type. + The record. + + + + Writes expando objects. + + + + + Initializes a new instance using the given writer. + + The writer. + + + + Creates a of type + that will write the given record using the current writer row. + + The record type. + The record. + + + + Manages expression creation. + + + + + Initializes a new instance using the given reader. + + The reader. + + + + Initializes a new instance using the given writer. + + The writer. + + + + Creates the constructor arguments used to create a type. + + The mapping to create the arguments for. + The arguments that will be added to the mapping. + + + + Creates the member assignments for the given . + + The mapping to create the assignments for. + The assignments that will be added to from the mapping. + + + + Creates an expression the represents getting the field for the given + member and converting it to the member's type. + + The mapping for the member. + + + + Creates a member expression for the given member on the record. + This will recursively traverse the mapping to find the member + and create a safe member accessor for each level as it goes. + + The current member expression. + The mapping to look for the member to map on. + The member map to look for on the mapping. + An Expression to access the given member. + + + + Creates an instance of the given type using (in turn using the ObjectResolver), then assigns + the given member assignments to that instance. + + The type of the record we're creating. + The member assignments that will be assigned to the created instance. + A representing the instance creation and assignments. + + + + Creates an expression that converts the field expression using a type converter. + + The mapping for the member. + The field expression. + + + + Creates an default expression if field expression is empty. + + The mapping for the member. + The field expression. + + + + Creates objects. + + + + + Initializes a new instance using the given reader. + + + + + + Creates a of type + that will create a record of the given type using the current + reader row. + + The record type. + + + + Writes objects. + + + + + Initializes a new instance using the given writer. + + The writer. + + + + Creates a of type + that will write the given record using the current writer row. + + The record type. + The record. + + + + Creates primitive records. + + + + + Initializes a new instance using the given reader. + + The reader. + + + + Creates a of type + that will create a record of the given type using the current + reader row. + + The record type. + + + + Writes primitives. + + + + + Initializes a new instance using the given writer. + + The writer. + + + + Creates a of type + that will write the given record using the current writer row. + + The record type. + The record. + + + + Base implementation for classes that create records. + + + + + The reader. + + + + + The expression manager. + + + + + Initializes a new instance using the given reader. + + The reader. + + + + Create a record of the given type using the current row. + + The record type. + + + + Create a record of the given type using the current row. + + The record type. + + + + Gets the delegate to create a record for the given record type. + If the delegate doesn't exist, one will be created and cached. + + The record type. + + + + Creates a of type + that will create a record of the given type using the current + reader row. + + The record type. + + + + Factory to create record creators. + + + + + Initializes a new instance using the given reader. + + The reader. + + + + Creates a record creator for the given record type. + + The record type. + + + + Hydrates members of an existing record. + + + + + Creates a new instance using the given reader. + + The reader. + + + + Hydrates members of the given record using the current reader row. + + The record type. + The record. + + + + Gets the action delegate used to hydrate a custom class object's members with data from the reader. + + The record type. + + + + Creates the action delegate used to hydrate a record's members with data from the reader. + + The record type. + + + + Manages record manipulation. + + + + + Initializes a new instance using the given reader. + + + + + + Initializes a new instance using the given writer. + + The writer. + + + + Creates a record of the given type using the current reader row. + + The type of record to create. + + + + Creates a record of the given type using the current reader row. + + The type of record to create. + + + + Hydrates the given record using the current reader row. + + The type of the record. + The record to hydrate. + + + + Writes the given record to the current writer row. + + The type of the record. + The record. + + + + Base implementation for classes that write records. + + + + + Gets the writer. + + + + + The expression manager. + + + + + Initializes a new instance using the given writer. + + The writer. + + + + Writes the record to the current row. + + Type of the record. + The record. + + + + Gets the delegate to write the given record. + If the delegate doesn't exist, one will be created and cached. + + The record type. + The record. + + + + Creates a of type + that will write the given record using the current writer row. + + The record type. + The record. + + + + Combines the delegates into a single multicast delegate. + This is needed because Silverlight doesn't have the + Delegate.Combine( params Delegate[] ) overload. + + The delegates to combine. + A multicast delegate combined from the given delegates. + + + + Factory to create record writers. + + + + + Initializes a new instance using the given writer. + + The writer. + + + + Creates a new record writer for the given record. + + The type of the record. + The record. + + + + Creates CsvHelper classes. + + + + + Creates an . + + The text reader to use for the csv parser. + The configuration to use for the csv parser. + The created parser. + + + + Creates an . + + The text reader to use for the csv parser. + The culture information. + + The created parser. + + + + + Creates an . + + The text reader to use for the csv reader. + The configuration to use for the reader. + The created reader. + + + + Creates an . + + The text reader to use for the csv reader. + The culture information. + + The created reader. + + + + + Creates an . + + The parser used to create the reader. + The created reader. + + + + Creates an . + + The text writer to use for the csv writer. + The configuration to use for the writer. + The created writer. + + + + Creates an . + + The text writer to use for the csv writer. + The culture information. + + The created writer. + + + + + Access point for fluent interface to dynamically build a + + Type you will be making a class map for + Options to further configure the + + + + Represents a user supplied field validation failure. + + + + + Gets the field that failed validation. + + + + + Initializes a new instance of the class. + + The reading context. + The field that failed validation. + + + + Initializes a new instance of the class + with a specified error message. + + The reading context. + The field that failed validation. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The reading context. + The field that failed validation. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Represents a header validation failure. + + + + + Gets the header names that are mapped to a CSV field that couldn't be found. + + + + + Gets the header name index that is mapped to a CSV field that couldn't be found. + The index is used when a CSV header has multiple header names with the same value. + + + + + Initializes a new instance of the class. + + The reading context. + The header names that are mapped to a CSV field that couldn't be found. + The header name index that is mapped to a CSV field that couldn't be found. + + + + Initializes a new instance of the class + with a specified error message. + + The reading context. + The header names that are mapped to a CSV field that couldn't be found. + The header name index that is mapped to a CSV field that couldn't be found. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The reading context. + The header names that are mapped to a CSV field that couldn't be found. + The header name index that is mapped to a CSV field that couldn't be found. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Defines methods used to create + CsvHelper classes. + + + + + Creates an . + + The text reader to use for the csv parser. + The configuration to use for the csv parser. + The created parser. + + + + Creates an . + + The text reader to use for the csv parser. + The culture information. + + The created parser. + + + + + Creates an . + + The text reader to use for the csv reader. + The configuration to use for the reader. + The created reader. + + + + Creates an . + + The text reader to use for the csv reader. + The culture information. + + The created reader. + + + + + Creates an . + + The parser used to create the reader. + The created reader. + + + + Creates an . + + The text writer to use for the csv writer. + The configuration to use for the writer. + The created writer. + + + + Creates an . + + The text writer to use for the csv writer. + The culture information. + + The created writer. + + + + + Provides a fluent interface for dynamically creating s + + Type of class to map + Next available options + + + + Defines methods used to read a field in a CSV file. + + + + + Gets the reading context. + + + + + Gets a value indicating if the buffer is empty. + True if the buffer is empty, otherwise false. + + + + + Fills the buffer. + + True if there is more data left. + False if all the data has been read. + + + + Fills the buffer asynchronously. + + True if there is more data left. + False if all the data has been read. + + + + Gets the next char as an . + + + + + Gets the field. This will append any reading progress. + + The current field. + + + + Appends the current reading progress. + + + + + Move's the buffer position according to the given offset. + + The offset to move the buffer. + + + + Sets the start of the field to the current buffer position. + + An offset for the field start. + The offset should be less than 1. + + + + Sets the end of the field to the current buffer position. + + An offset for the field start. + The offset should be less than 1. + + + + Sets the raw record start to the current buffer position; + + An offset for the raw record start. + The offset should be less than 1. + + + + Sets the raw record end to the current buffer position. + + An offset for the raw record end. + The offset should be less than 1. + + + + Defines the functionality of a class that creates objects + from a given type. + + + + + A value indicating if the resolver's + returns false that an object will still be created using + CsvHelper's object creation. True to fallback, otherwise false. + Default value is true. + + + + + A value indicating if the resolver is able to resolve + the given type. True if the type can be resolved, + otherwise false. + + + + + The function that creates an object from a given type. + + + + + Creates an object from the given type using the + function. If is false, the object will be + created using CsvHelper's default object creation. If + is false, an exception is thrown. + + The type to create an instance from. The created object + may not be the same type as the given type. + Constructor arguments used to create the type. + + + + Creates an object from the given type using the + function. If is false, the object will be + created using CsvHelper's default object creation. If + is false, an exception is thrown. + + The type to create an instance from. The created object + may not be the same type as the given type. + Constructor arguments used to create the type. + + + + Defines methods used the parse a CSV file. + + + + + Gets the reading context. + + + + + Gets the configuration. + + + + + Gets the . + + + + + Reads a record from the CSV file. + + A of fields for the record read. + + + + Reads a record from the CSV file asynchronously. + + A of fields for the record read. + + + + Defines methods used to read parsed data + from a CSV file. + + + + + Gets the parser. + + + + + Reads the header record without reading the first row. + + True if there are more records, otherwise false. + + + + Advances the reader to the next record. This will not read headers. + You need to call then + for the headers to be read. + + True if there are more records, otherwise false. + + + + Advances the reader to the next record. This will not read headers. + You need to call then + for the headers to be read. + + True if there are more records, otherwise false. + + + + Gets all the records in the CSV file and + converts each to T. The Read method + should not be used when using this. + + The of the record. + An of records. + + + + Gets all the records in the CSV file and converts + each to T. The read method + should not be used when using this. + + The of the record. + The anonymous type definition to use for the records. + An of records. + + + + Gets all the records in the CSV file and + converts each to T. The Read method + should not be used when using this. + + The of the record. + An of records. + + + + Enumerates the records hydrating the given record instance with row data. + The record instance is re-used and not cleared on each enumeration. + This only works for streaming rows. If any methods are called on the projection + that force the evaluation of the IEnumerable, such as ToList(), the entire list + will contain the same instance of the record, which is the last row. + + The type of the record. + The record to fill each enumeration. + An of records. + + + + Gets all the records in the CSV file and + converts each to T. The Read method + should not be used when using this. + + The of the record. + An of records. + + + + Gets all the records in the CSV file and converts + each to T. The read method + should not be used when using this. + + The of the record. + The anonymous type definition to use for the records. + An of records. + + + + Gets all the records in the CSV file and + converts each to T. The Read method + should not be used when using this. + + The of the record. + An of records. + + + + Enumerates the records hydrating the given record instance with row data. + The record instance is re-used and not cleared on each enumeration. + This only works for streaming rows. If any methods are called on the projection + that force the evaluation of the IEnumerable, such as ToList(), the entire list + will contain the same instance of the record, which is the last row. + + The type of the record. + The record to fill each enumeration. + An of records. + + + + Defines methods used to read parsed data + from a CSV file row. + + + + + Gets the reading context. + + + + + Gets or sets the configuration. + + + + + Gets the raw field at position (column) index. + + The zero based index of the field. + The raw field. + + + + Gets the raw field at position (column) name. + + The named index of the field. + The raw field. + + + + Gets the raw field at position (column) name. + + The named index of the field. + The zero based index of the field. + The raw field. + + + + Gets the raw field at position (column) index. + + The zero based index of the field. + The raw field. + + + + Gets the raw field at position (column) name. + + The named index of the field. + The raw field. + + + + Gets the raw field at position (column) name and the index + instance of that field. The index is used when there are + multiple columns with the same header name. + + The named index of the field. + The zero based index of the instance of the field. + The raw field. + + + + Gets the field converted to using + the specified . + + The type of the field. + The index of the field. + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The named index of the field. + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The named index of the field. + The zero based index of the instance of the field. + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The index of the field. + The used to convert the field to . + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The named index of the field. + The used to convert the field to . + The field converted to . + + + + Gets the field converted to using + the specified . + + The type of the field. + The named index of the field. + The zero based index of the instance of the field. + The used to convert the field to . + The field converted to . + + + + Gets the field converted to T at position (column) index. + + The of the field. + The zero based index of the field. + The field converted to T. + + + + Gets the field converted to T at position (column) name. + + The of the field. + The named index of the field. + The field converted to T. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + + The named index of the field. + The zero based index of the instance of the field. + + + + + Gets the field converted to T at position (column) index using + the given . + + The of the field. + The zero based index of the field. + The used to convert the field to T. + The field converted to T. + + + + Gets the field converted to T at position (column) name using + the given . + + The of the field. + The named index of the field. + The used to convert the field to T. + The field converted to T. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + The of the field. + The named index of the field. + The zero based index of the instance of the field. + The used to convert the field to T. + The field converted to T. + + + + Gets the field converted to T at position (column) index using + the given . + + The of the field. + The used to convert the field to T. + The zero based index of the field. + The field converted to T. + + + + Gets the field converted to T at position (column) name using + the given . + + The of the field. + The used to convert the field to T. + The named index of the field. + The field converted to T. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + The of the field. + The used to convert the field to T. + The named index of the field. + The zero based index of the instance of the field. + The field converted to T. + + + + Gets the field converted to T at position (column) index. + + The of the field. + The zero based index of the field. + The field converted to type T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name. + + The of the field. + The named index of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + The of the field. + The named index of the field. + The zero based index of the instance of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) index + using the specified . + + The of the field. + The zero based index of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The named index of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The named index of the field. + The zero based index of the instance of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) index. + + The of the field. + The zero based index of the field. + The field converted to type T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name. + + The of the field. + The named index of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position + (column) name and the index instance of that field. The index + is used when there are multiple columns with the same header name. + + + The named index of the field. + The zero based index of the instance of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) index + using the specified . + + The of the field. + The zero based index of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The named index of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The named index of the field. + The zero based index of the instance of the field. + The used to convert the field to T. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) index + using the specified . + + The of the field. + The used to convert the field to T. + The zero based index of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The used to convert the field to T. + The named index of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the field converted to T at position (column) name + using the specified . + + The of the field. + The used to convert the field to T. + The named index of the field. + The zero based index of the instance of the field. + The field converted to T. + A value indicating if the get was successful. + + + + Gets the record converted into T. + + The of the record. + The record converted to T. + + + + Get the record converted into T. + + The of the record. + The anonymous type definition to use for the record. + The record converted to T. + + + + Gets the record. + + The of the record. + The record. + + + + Defines methods used to serialize data into a CSV file. + + + + + Gets the writing context. + + + + + Gets the configuration. + + + + + Writes a record to the CSV file. + + The record to write. + + + + Writes a record to the CSV file. + + The record to write. + + + + Writes a new line to the CSV file. + + + + + Writes a new line to the CSV file. + + + + + Defines methods used to write to a CSV file. + + + + + Serializes the row to the . + + + + + Serializes the row to the . + + + + + Ends writing of the current record and starts a new record. + This automatically flushes the writer. + + + + + Ends writing of the current record and starts a new record. + This automatically flushes the writer. + + + + + Writes the list of records to the CSV file. + + The records to write. + + + + Writes the list of records to the CSV file. + + Record type. + The records to write. + + + + Writes the list of records to the CSV file. + + The records to write. + + + + Writes the list of records to the CSV file. + + Record type. + The records to write. + + + + Defines methods used to write a CSV row. + + + + + Gets the writing context. + + + + + Gets or sets the configuration. + + + + + Writes a field that has already been converted to a + from an . + If the field is null, it won't get written. A type converter + will always return a string, even if field is null. If the + converter returns a null, it means that the converter has already + written data, and the returned value should not be written. + + The converted field to write. + + + + Writes the field to the CSV file. The field + may get quotes added to it. + When all fields are written for a record, + must be called + to complete writing of the current record. + + The field to write. + + + + Writes the field to the CSV file. This will + ignore any need to quote and ignore + + and just quote based on the shouldQuote + parameter. + When all fields are written for a record, + must be called + to complete writing of the current record. + + The field to write. + True to quote the field, otherwise false. + + + + Writes the field to the CSV file. + When all fields are written for a record, + must be called + to complete writing of the current record. + + The type of the field. + The field to write. + + + + Writes the field to the CSV file. + When all fields are written for a record, + must be called + to complete writing of the current record. + + The type of the field. + The field to write. + The converter used to convert the field into a string. + + + + Writes the field to the CSV file + using the given . + When all fields are written for a record, + must be called + to complete writing of the current record. + + The type of the field. + The type of the converter. + The field to write. + + + + Writes a comment. + + The comment to write. + + + + Writes the header record from the given members. + + The type of the record. + + + + Writes the header record from the given members. + + The type of the record. + + + + Writes the record to the CSV file. + + The type of the record. + The record to write. + + + + Represents an error caused because a field is missing + in the header while reading a CSV file. + + + + + Initializes a new instance of the class. + + The reading context. + + + + Initializes a new instance of the class + with a specified error message. + + The reading context. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The reading context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Creates objects from a given type. + + + + + Gets or sets the current resolver. + + + + + A value indicating if the resolver's + returns false that an object will still be created using + CsvHelper's object creation. True to fallback, otherwise false. + Default value is true. + + + + + A function that returns a value indicating if the resolver + is able to resolve the given type. True if the type can be + resolved, otherwise false. + + + + + The function that creates an object from a given type. + + + + + Creates an instance of the object resolver using default values. + + + + + Creates an instance of the object resolver using the given can create function + and create function. + + A function that returns a value indicating if the resolver + is able to resolve the given type. True if the type can be + resolved, otherwise false. + The function that creates an object from a given type. + A value indicating if the resolver's + returns false that an object will still be created using + CsvHelper's object creation. True to fallback, otherwise false. + Default value is true. + + + + Creates an object from the given type using the + function. If is false, the object will be + created using CsvHelper's default object creation. If + is false, an exception is thrown. + + The type to create an instance from. The created object + may not be the same type as the given type. + Constructor arguments used to create the type. + + + + Creates an object from the given type using the + function. If is false, the object will be + created using CsvHelper's default object creation. If + is false, an exception is thrown. + + The type to create an instance from. The created object + may not be the same type as the given type. + Constructor arguments used to create the type. + + + + Represents errors that occur while parsing a CSV file. + + + + + Initializes a new instance of the class. + + The reading context. + + + + Initializes a new instance of the class + with a specified error message. + + The reading context. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The reading context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Represents errors that occur while reading a CSV file. + + + + + Initializes a new instance of the class. + + The reading context. + + + + Initializes a new instance of the class + with a specified error message. + + The reading context. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The reading context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + CSV reading state. + + + + + Gets the raw record builder. + + + + + Gets the field builder. + + + + + Gets the record builder. + + + + + Gets the named indexes. + + + + + Gets the named indexes cache. + + + + + Gets the type converter options cache. + + + + + Gets the create record functions. + + + + + Gets the hydrate record actions. + + + + + Gets the reusable member map data. + + + + + Gets the that is read from. + + + + + Gets a value indicating if the + should be left open when disposing. + + + + + Gets the buffer used to store data from the . + + + + + Gets the buffer position. + + + + + Gets the field start position. + + + + + Gets the field end position. + + + + + Gets the raw record start position. + + + + + Gets the raw record end position. + + + + + Gets the number of characters read from the . + + + + + Gets the character position. + + + + + Gets the byte position. + + + + + Gets a value indicating if the field is bad. + True if the field is bad, otherwise false. + A field is bad if a quote is found in a field + that isn't escaped. + + + + + Gets the record. + + + + + Gets the row of the CSV file that the parser is currently on. + + + + + Gets the row of the CSV file that the parser is currently on. + This is the actual file row. + + + + + Gets a value indicating if reading has begun. + + + + + Gets the header record. + + + + + Gets the current index. + + + + + Gets the column count. + + + + + Gets the configuration. + + + + + Gets the configuration. + + + + + Gets all the characters of the record including + quotes, delimiters, and line endings. + + + + + Gets the field. + + + + + Initializes a new instance. + + The reader. + The configuration. + A value indicating if the TextReader should be left open when disposing. + + + + Clears the specified caches. + + The caches to clear. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + 2 + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + True if the instance needs to be disposed of. + + + + Builds CSV records. + + + + + The number of records. + + + + + The total record capacity. + + + + + Creates a new using defaults. + + + + + Creates a new using the given capacity. + + The initial capacity. + + + + Adds a new field to the . + + The field to add. + The current instance of the . + + + + Clears the records. + + The current instance of the . + + + + Returns the record as an . + + The record as an . + + + + Extensions to help with reflection. + + + + + Gets the type from the member. + + The member to get the type from. + The type. + + + + Gets a member expression for the member. + + The member to get the expression for. + The member expression. + The member expression. + + + + Gets a value indicating if the given type is anonymous. + True for anonymous, otherwise false. + + The type. + + + + Gets a value indicating if the given type has a parameterless constructor. + True if it has a parameterless constructor, otherwise false. + + The type. + + + + Gets a value indicating if the given type has any constructors. + + The type. + + + + Gets the constructor that contains the most parameters. + + The type. + + + + Gets a value indicating if the type is a user defined struct. + True if it is a user defined struct, otherwise false. + + The type. + + + + Common reflection tasks. + + + + + Creates an instance of type T using the current . + + The type of instance to create. + The constructor arguments. + A new instance of type T. + + + + Creates an instance of the specified type using the current . + + The type of instance to create. + The constructor arguments. + A new instance of the specified type. + + + + Creates an instance of the specified type without using the + current . + + The type of instance to create. + The constructor arguments. + A new instance of the specified type. + + + + Gets the from the type where the property was declared. + + The type the property belongs to. + The property to search. + Flags for how the property is retrieved. + + + + Walk up the inheritance tree collecting properties. This will get a unique set or properties in the + case where parents have the same property names as children. + + The to get properties for. + The flags for getting the properties. + If true, parent class properties that are hidden by `new` child properties will be overwritten. + + + + Gets the property from the expression. + + The type of the model. + The type of the property. + The expression. + The for the expression. + + + + Gets the member inheritance chain as a stack. + + The type of the model. + The type of the property. + The member expression. + The inheritance chain for the given member expression as a stack. + + + + Converts an to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the object to a string. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Creates a new ByteArrayConverter using the given . + + The options. + + + + Converts the object to a string. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Options for converting byte arrays. + + + + + No options. + + + + + Hexadecimal encoding. + + + + + Base64 encoding. + + + + + Use dashes in between hex values. + + + + + Prefix hex number with 0x. + + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts an to and from a . + + + + + Converts the object to a string. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the object to a string. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts an to and from a . + + + + + Creates a new for the given . + + The type of the Enum. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Throws an exception when used. This is here so that it's apparent + that there is no support for type conversion. A custom + converter will need to be created to have a field convert to and + from an IEnumerable. + + + + + Throws an exception. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Throws an exception. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts an to and from a . + + + + + Converts the object to a string. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts an to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts an to and from a . + + + + + Converts the object to a string. + + The object to convert to a string. + + + The string representation of the object. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts an to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts an to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts an to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts objects to and from strings. + + + + + Converts the object to a string. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Gets the type of the nullable. + + + The type of the nullable. + + + + + Gets the underlying type of the nullable. + + + The underlying type. + + + + + Gets the type converter for the underlying type. + + + The type converter. + + + + + Creates a new for the given . + + The nullable type. + The type converter factory. + type is not a nullable type. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts the object to a string. + + The object to convert to a string. + + + The string representation of the object. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the object to a string. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Throws an exception when used. This is here so that it's apparent + that there is no support for type conversion. A custom + converter will need to be created to have a field convert to and + from . + + + + + Throws an exception. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Throws an exception. + + The object to convert to a string. + The for the current record. + The for the member being written. + The string representation of the object. + + + + Caches s for a given type. + + + + + Initializes the class. + + + + + Adds the for the given . + + The type the converter converts. + The type converter that converts the type. + + + + Adds the for the given . + + The type the converter converts. + The type converter that converts the type. + + + + Removes the for the given . + + The type to remove the converter for. + + + + Removes the for the given . + + The type to remove the converter for. + + + + Gets the converter for the given . + + The type to get the converter for. + The for the given . + + + + Gets the converter for the given member. If an attribute is + found on the member, that will be used, otherwise the cache + will be used. + + The member to get the converter for. + + + + Gets the converter for the given . + + The type to get the converter for. + The for the given . + + + + Represents errors that occur while reading a CSV file. + + + + + The text used in ConvertFromString. + + + + + The value used in ConvertToString. + + + + + The type converter. + + + + + The member map data used in ConvertFromString and ConvertToString. + + + + + Initializes a new instance of the class. + + The type converter. + The member map data. + The text. + The reading context. + + + + Initializes a new instance of the class. + + The type converter. + The member map data. + The value. + The writing context. + + + + Initializes a new instance of the class + with a specified error message. + + The type converter. + The member map data. + The text. + The reading context. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message. + + The type converter. + The member map data. + The value. + The writing context. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The type converter. + The member map data. + The text. + The reading context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The type converter. + The member map data. + The value. + The writing context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Options used when doing type conversion. + + + + + Gets or sets the culture info. + + + + + Gets or sets the date time style. + + + + + Gets or sets the time span style. + + + + + Gets or sets the number style. + + + + + Gets or sets the string format. + + + + + Gets or sets the . + + + + + Gets the list of values that can be + used to represent a boolean of true. + + + + + Gets the list of values that can be + used to represent a boolean of false. + + + + + Gets the list of values that can be used to represent a null value. + + + + + Merges TypeConverterOptions by applying the values of sources in order on to each other. + The first object is the source object. + + The sources that will be applied. + The updated source object. + + + + Caches for a given type. + + + + + Adds the for the given . + + The type the options are for. + The options. + + + + Adds the for the given . + + The type the options are for. + The options. + + + + Removes the for the given type. + + The type to remove the options for. + + + + Removes the for the given type. + + The type to remove the options for. + + + + Get the for the given . + + The type the options are for. + The options for the given type. + + + + Get the for the given . + + The type the options are for. + The options for the given type. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the string to an object. + + The string to convert to an object. + The for the current record. + The for the member being created. + The object created from the string. + + + + Converts a to and from a . + + + + + Converts the to a . + + The string to convert to an object. + The for the current record. + The for the member being created. + + The created from the string. + + + + + Represents a user supplied validation failure. + + + + + Initializes a new instance of the class. + + The reading context. + + + + Initializes a new instance of the class + with a specified error message. + + The reading context. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The reading context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Represents errors that occur while writing a CSV file. + + + + + Initializes a new instance of the class. + + The writing context. + + + + Initializes a new instance of the class + with a specified error message. + + The writing context. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The writing context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + CSV writing state. + + + + + Gets the type actions. + + + + + Gets the type converter options. + + + + + Gets or sets the reusable member map data. + + + + + Gets the writer configuration. + + + + + Gets the serializer configuration. + + + + + Gets the . + + + + + Gets a value indicating if the + should be left open when disposing. + + + + + Gets the current row. + + + + + Get the current record; + + + + + Gets a value indicating if the header has been written. + + + + + Gets a value indicating if a record has been written. + + + + + Initializes a new instance. + + The writer. + The configuration. + A value indicating if the TextWriter should be left open. + + + + Clears the specified caches. + + The caches to clear. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + 2 + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + True if the instance needs to be disposed of. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + 2 + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + True if the instance needs to be disposed of. + + + diff --git a/packages/CsvHelper.15.0.5/lib/netstandard2.0/CsvHelper.dll b/packages/CsvHelper.15.0.5/lib/netstandard2.0/CsvHelper.dll new file mode 100644 index 0000000..6395d7e Binary files /dev/null and b/packages/CsvHelper.15.0.5/lib/netstandard2.0/CsvHelper.dll differ diff --git a/packages/CsvHelper.15.0.5/lib/netstandard2.0/CsvHelper.xml b/packages/CsvHelper.15.0.5/lib/netstandard2.0/CsvHelper.xml new file mode 100644 index 0000000..16ec07c --- /dev/null +++ b/packages/CsvHelper.15.0.5/lib/netstandard2.0/CsvHelper.xml @@ -0,0 +1,7655 @@ + + + + CsvHelper + + + + + Represents errors that occur due to bad data. + + + + + Initializes a new instance of the class. + + The reading context. + + + + Initializes a new instance of the class + with a specified error message. + + The reading context. + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The reading context. + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Types of caches. + + + + + None. + + + + + Named index. + + + + + Delegate that creates objects when reading. + + + + + Delegate that writes objects to strings when writing. + + + + + Type converter options. + + + + + Raw record. + + + + + The string values used to represent a boolean false when converting. + + + + + Gets the false values. + + + + + The string values used to represent a boolean false when converting. + + The false values. + + + + The string values used to represent a boolean false when converting. + + The false values. + + + + Applies configuration to the given . + + The member map. + + + + The string values used to represent a boolean true when converting. + + + + + Gets the true values. + + + + + The string values used to represent a boolean true when converting. + + + + + + The string values used to represent a boolean true when converting. + + + + + + Applies configuration to the given . + + The member map. + + + + The constant value that will be used for every record when + reading and writing. This value will always be used no matter + what other mapping configurations are specified. + + + + + Gets the constant. + + + + + The constant value that will be used for every record when + reading and writing. This value will always be used no matter + what other mapping configurations are specified. + + The constant. + + + + Applies configuration to the given . + + The member map. + + + + The used when type converting. + This will override the global + setting. + + + + + Gets the culture info. + + + + + The used when type converting. + This will override the global + setting. + + The culture. + + + + Applies configuration to the given . + + The member map. + + + + The to use when type converting. + This is used when doing any conversions. + + + + + Gets the date time styles. + + + + + The to use when type converting. + This is used when doing any conversions. + + The date time styles. + + + + Applies configuration to the given . + + The member map. + + + + The default value that will be used when reading when + the CSV field is empty. + + + + + Gets the default value. + + + + + The default value that will be used when reading when + the CSV field is empty. + + The default value + + + + Applies configuration to the given . + + The member map. + + + + The string format to be used when type converting. + + + + + Gets the formats. + + + + + The string format to be used when type converting. + + The format. + + + + The string format to be used when type converting. + + The formats. + + + + Applies configuration to the given . + + The member map. + + + + Appends a prefix to the header of each field of the reference member. + + + + + Gets the prefix. + + + + + Appends a prefix to the header of each field of the reference member. + + + + + Appends a prefix to the header of each field of the reference member. + + The prefix. + + + + Applies configuration to the given . + + The reference map. + + + + Ignore the member when reading and writing. + If this member has already been mapped as a reference + member, either by a class map, or by automapping, calling + this method will not ignore all the child members down the + tree that have already been mapped. + + + + + Applies configuration to the given . + + The member map. + + + + Applies configuration to the given . + + The reference map. + + + + + Defines methods to enables pluggable configuration of member mapping. + + + + + Applies configuration to the given . + + The member map. + + + + Defines methods to enables pluggable configuration of member mapping. + + + + + Applies configuration to the given . + + The reference map. + + + + When reading, is used to get the field at + the given index. When writing, the fields + will be written in the order of the field + indexes. + + + + + Gets the index. + + + + + Gets the index end. + + + + + When reading, is used to get the field at + the given index. When writing, the fields + will be written in the order of the field + indexes. + + The index. + The index end. + + + + Applies configuration to the given . + + The member map. + + + + When reading, is used to get the field + at the index of the name if there was a + header specified. It will look for the + first name match in the order listed. + When writing, sets the name of the + field in the header record. + The first name will be used. + + + + + Gets the names. + + + + + When reading, is used to get the field + at the index of the name if there was a + header specified. It will look for the + first name match in the order listed. + When writing, sets the name of the + field in the header record. + The first name will be used. + + The name + + + + When reading, is used to get the field + at the index of the name if there was a + header specified. It will look for the + first name match in the order listed. + When writing, sets the name of the + field in the header record. + The first name will be used. + + The names. + + + + Applies configuration to the given . + + The member map. + + + + When reading, is used to get the + index of the name used when there + are multiple names that are the same. + + + + + The name index. + + + + + When reading, is used to get the + index of the name used when there + are multiple names that are the same. + + The name index. + + + + Applies configuration to the given . + + The member map. + + + + The string values used to represent null when converting. + + + + + Gets the null values. + + + + + The string values used to represent null when converting. + + The null values. + + + + The string values used to represent null when converting. + + The null values. + + + + Applies configuration to the given . + + The member map. + + + + The to use when type converting. + This is used when doing any number conversions. + + + + + Gets the number styles. + + + + + The to use when type converting. + This is used when doing any number conversions. + + The number styles. + + + + Applies configuration to the given . + + The member map. + + + + Ignore the member when reading if no matching field name can be found. + + + + + Applies configuration to the given . + + The member map. + + + + Specifies the to use + when converting the member to and from a CSV field. + + + + + Gets the type converter. + + + + + Specifies the to use + when converting the member to and from a CSV field. + + + + + + Applies configuration to the given . + + The member map. + + + + Maps class members to CSV fields. + + + + + The type of the class this map is for. + + + + + The class constructor parameter mappings. + + + + + The class member mappings. + + + + + The class member reference mappings. + + + + + Allow only internal creation of CsvClassMap. + + The type of the class this map is for. + + + + Maps a member to a CSV field. + + The type of the class this map is for. This may not be the same type + as the member.DeclaringType or the current ClassType due to nested member mappings. + The member to map. + If true, an existing map will be used if available. + If false, a new map is created for the same member. + The member mapping. + + + + Maps a non-member to a CSV field. This allows for writing + data that isn't mapped to a class member. + + The member mapping. + + + + Maps a member to another class map. + + The type of the class map. + The member. + Constructor arguments used to create the reference map. + The reference mapping for the member. + + + + Auto maps all members for the given type. If a member + is mapped again it will override the existing map. + + The culture. + + + + Auto maps all members for the given type. If a member + is mapped again it will override the existing map. + + The configuration. + + + + Get the largest index for the + members and references. + + The max index. + + + + Resets the indexes based on the given start index. + + The index start. + The last index + 1. + + + + Auto maps the given map and checks for circular references as it goes. + + The map to auto map. + The configuration. + The list of parents for the map. + The index starting point. + + + + Auto maps the given map using constructor parameters. + + The map. + The configuration. + The list of parents for the map. + The index starting point. + + + + Checks for circular references. + + The type to check for. + The list of parents to check against. + A value indicating if a circular reference was found. + True if a circular reference was found, otherwise false. + + + + Gets the generic type for this class map. + + + + + Applies attribute configurations to the map. + + The member map. + + + + Applies attribute configurations to the map. + + The reference map. + + + + Has mapping capabilities. + + The class type. + + + + Maps a member to a CSV field. + + The member to map. + If true, an existing map will be used if available. + If false, a new map is created for the same member. + The member mapping. + + + + Options after a mapping call. + + The class type. + The member type. + + + + Has type converter capabilities. + + The class type. + The member type. + + + + Specifies the to use + when converting the member to and from a CSV field. + + The TypeConverter to use. + + + + Specifies the to use + when converting the member to and from a CSV field. + + The of the + to use. + + + + Options after a type converter call. + + The class type. + The member type. + + + + Has index capabilities. + + The class type. + The member type. + + + + When reading, is used to get the field at + the given index. When writing, the fields + will be written in the order of the field + indexes. + + The index of the CSV field. + The end index used when mapping to an member. + + + + Options after an index call. + + The class type. + The member type. + + + + Has optional capabilities. + + The class type. + The member type. + + + + Ignore the member when reading if no matching field name can be found. + + + + + Options after an optional call. + + The class type. + The member type. + + + + Has name capabilities. + + The class type. + The member type. + + + + When reading, is used to get the field + at the index of the name if there was a + header specified. It will look for the + first name match in the order listed. + When writing, sets the name of the + field in the header record. + The first name will be used. + + The possible names of the CSV field. + + + + Options after a name call. + + The class type. + The member type. + + + + Has name index capabilities. + + The class type. + The member type. + + + + When reading, is used to get the + index of the name used when there + are multiple names that are the same. + + The index of the name. + + + + Options after a name index call. + + The class type. + The member type. + + + + Has convert using capabilities. + + The class type. + The member type. + + + + Specifies an expression to be used to convert data in the + row to the member. + + The convert expression. + + + + Specifies an expression to be used to convert the object + to a field. + + The convert expression. + + + + Has default capabilities. + + The class type. + The member type. + + + + The default value that will be used when reading when + the CSV field is empty. + + The default value. + + + + The default value that will be used when reading when + the CSV field is empty. This value is not type checked + and will use a to convert + the field. This could potentially have runtime errors. + + The default value. + + + + Options after a default call. + + The class type. + The member type. + + + + Has constant capabilities. + + The class type. + The member type. + + + + The constant value that will be used for every record when + reading and writing. This value will always be used no matter + what other mapping configurations are specified. + + The constant value. + + + + Has validate capabilities. + + The class type. + The member type. + + + + The validate expression that will be called on every field when reading. + The expression should return true if the field is valid. + If false is returned, a + will be thrown. + + The validation expression. + + + + Has build capabilities. + + The class type. + + + + Builds the . + + + + + Collection that holds CsvClassMaps for record types. + + + + + Gets the for the specified record type. + + + The . + + The record type. + The for the specified record type. + + + + Creates a new instance using the given configuration. + + The configuration. + + + + Finds the for the specified record type. + + The record type. + The for the specified record type. + + + + Adds the specified map for it's record type. If a map + already exists for the record type, the specified + map will replace it. + + The map. + + + + Removes the class map. + + The class map type. + + + + Removes all maps. + + + + + Goes up the inheritance tree to find the type instance of CsvClassMap{}. + + The type to traverse. + The type that is CsvClassMap{}. + + + + Sets defaults for the mapping tree. The defaults used + to be set inside the classes, but this didn't allow for + the TypeConverter to be created from the Configuration's + TypeConverterFactory. + + The map to set defaults on. + + + + Maps class members to CSV fields. + + The of class to map. + + + + Creates an instance of . + + + + + Maps a member to a CSV field. + + The member to map. + If true, an existing map will be used if available. + If false, a new map is created for the same member. + The member mapping. + + + + Meant for internal use only. + Maps a member to another class map. When this is used, accessing a property through + sub-property mapping later won't work. You can only use one or the other. When using + this, ConvertUsing will also not work. + + The type of the class map. + The expression. + Constructor arguments used to create the reference map. + The reference mapping for the member. + + + + Represents configuration errors that occur. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class + with a specified error message. + + The message that describes the error. + + + + Initializes a new instance of the class + with a specified error message and a reference to the inner exception that + is the cause of this exception. + + The error message that explains the reason for the exception. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + Holds the default callback methods for delegate members of CsvHelper.Configuration.Configuration. + + + + Throws a if is false. + + + + + Throws a MissingFieldException. + + + + + Throws a . + + + + + Throws the given . + + + + + Returns true if the field contains a , + starts with a space, ends with a space, contains \r or \n, or contains + the . + + The field. + The context. + + + + + Returns false. + + + + + Returns the as given. + + + + + Returns true if : + 1. does not have a parameterless constructor + 2. has a constructor + 3. is not a user defined struct + 4. is not an interface + 5. TypeCode is not an Object. + + + + + Returns the type's constructor with the most parameters. + If two constructors have the same number of parameters, then + there is no guarantee which one will be returned. If you have + that situation, you should probably implement this function yourself. + + + + + Configuration used for reading and writing CSV data. + + + + + Gets or sets the . + + + + + Gets or sets the . + + + + + Gets or sets a value indicating if the + CSV file has a header record. + Default is true. + + + + + Gets or sets the function that is called when a header validation check is ran. The default function + will throw a if there is no header for a given member mapping. + You can supply your own function to do other things like logging the issue instead of throwing an exception. + Arguments: isValid, headerNames, headerNameIndex, context + + + + + Gets or sets the function that is called when a missing field is found. The default function will + throw a . You can supply your own function to do other things + like logging the issue instead of throwing an exception. + Arguments: headerNames, index, context + + + + + Gets or sets the function that is called when bad field data is found. A field + has bad data if it contains a quote and the field is not quoted (escaped). + You can supply your own function to do other things like logging the issue + instead of throwing an exception. + Arguments: context + + + + + Gets or sets the function that is called when a reading exception occurs. + The default function will re-throw the given exception. If you want to ignore + reading exceptions, you can supply your own function to do other things like + logging the issue. + Arguments: exception + + + + + Gets or sets the callback that will be called to + determine whether to skip the given record or not. + + + + + Gets or sets a value indicating if a line break found in a quote field should + be considered bad data. True to consider a line break bad data, otherwise false. + Defaults to false. + + + + + Gets or sets a value indicating if fields should be sanitized + to prevent malicious injection. This covers MS Excel, + Google Sheets and Open Office Calc. + + + + + Gets or sets the characters that are used for injection attacks. + + + + + Gets or sets the character used to escape a detected injection. + + + + + Gets or sets a value indicating whether changes in the column + count should be detected. If true, a + will be thrown if a different column count is detected. + + + true if [detect column count changes]; otherwise, false. + + + + + Prepares the header field for matching against a member name. + The header field and the member name are both ran through this function. + You should do things like trimming, removing whitespace, removing underscores, + and making casing changes to ignore case. + + + + + Determines if constructor parameters should be used to create + the class instead of the default constructor and members. + + + + + Chooses the constructor to use for constructor mapping. + + + + + Gets or sets the comparer used to order the properties + of dynamic objects when writing. The default is null, + which will preserve the order the object properties + were created with. + + + + + Gets or sets a value indicating whether references + should be ignored when auto mapping. True to ignore + references, otherwise false. Default is false. + + + + + Gets or sets the field trimming options. + + + + + Gets or sets the delimiter used to separate fields. + Default is CultureInfo.TextInfo.ListSeparator. + + + + + Gets or sets the escape character used to escape a quote inside a field. + Default is '"'. + + + + + Gets or sets the character used to quote fields. + Default is '"'. + + + + + Gets a string representation of the currently configured Quote character. + + + The new quote string. + + + + + Gets a string representation of two of the currently configured Quote characters. + + + The new double quote string. + + + + + Gets or sets a function that is used to determine if a field should get quoted + when writing. + Arguments: field, context + + + + + Gets or sets the character used to denote + a line that is commented out. Default is '#'. + + + + + Gets or sets a value indicating if comments are allowed. + True to allow commented out lines, otherwise false. + + + + + Gets or sets the size of the buffer + used for reading CSV files. + Default is 2048. + + + + + Gets or sets a value indicating whether the number of bytes should + be counted while parsing. Default is false. This will slow down parsing + because it needs to get the byte count of every char for the given encoding. + The needs to be set correctly for this to be accurate. + + + + + Gets or sets the encoding used when counting bytes. + + + + + Gets or sets the culture info used to read an write CSV files. + Default is . + + + + + Gets or sets a value indicating if quotes should be + ignored when parsing and treated like any other character. + + + + + Gets or sets a value indicating if private + member should be read from and written to. + True to include private member, otherwise false. Default is false. + + + + + Gets or sets the member types that are used when auto mapping. + MemberTypes are flags, so you can choose more than one. + Default is Properties. + + + + + Gets or sets a value indicating if blank lines + should be ignored when reading. + True to ignore, otherwise false. Default is true. + + + + + Gets or sets a callback that will return the prefix for a reference header. + Arguments: memberType, memberName + + + + + The configured s. + + + + + Gets or sets the newline to use when writing. + + + + + Gets the newline string to use when writing. This string is determined + by the value. + + + + + Gets or sets a value indicating that during writing if a new + object should be created when a reference member is null. + True to create a new object and use it's defaults for the + fields, or false to leave the fields empty for all the + reference member's member. + + + + + Initializes a new instance of the class + using the given . Since + uses for it's default, the given + will be used instead. + + The culture information. + + + + Use a to configure mappings. + When using a class map, no members are mapped by default. + Only member specified in the mapping are used. + + The type of mapping class to use. + + + + Use a to configure mappings. + When using a class map, no members are mapped by default. + Only members specified in the mapping are used. + + The type of mapping class to use. + + + + Registers the class map. + + The class map to register. + + + + Unregisters the class map. + + The map type to unregister. + + + + Unregisters the class map. + + The map type to unregister. + + + + Unregisters all class maps. + + + + + Generates a for the type. + + The type to generate the map for. + The generate map. + + + + Generates a for the type. + + The type to generate for the map. + The generate map. + + + + A default that can be used + to create a class map dynamically. + + + + + + Configuration used for the . + + + + + Gets or sets the size of the buffer + used for reading CSV files. + Default is 2048. + + + + + Gets or sets a value indicating whether the number of bytes should + be counted while parsing. Default is false. This will slow down parsing + because it needs to get the byte count of every char for the given encoding. + The needs to be set correctly for this to be accurate. + + + + + Gets or sets the encoding used when counting bytes. + + + + + Gets or sets the function that is called when bad field data is found. A field + has bad data if it contains a quote and the field is not quoted (escaped). + You can supply your own function to do other things like logging the issue + instead of throwing an exception. + Arguments: context + + + + + Gets or sets a value indicating if a line break found in a quote field should + be considered bad data. True to consider a line break bad data, otherwise false. + Defaults to false. + + + + + Gets or sets the character used to denote + a line that is commented out. Default is '#'. + + + + + Gets or sets a value indicating if comments are allowed. + True to allow commented out lines, otherwise false. + + + + + Gets or sets a value indicating if blank lines + should be ignored when reading. + True to ignore, otherwise false. Default is true. + + + + + Gets or sets a value indicating if quotes should be + ignored when parsing and treated like any other character. + + + + + Gets or sets the character used to quote fields. + Default is '"'. + + + + + Gets or sets the delimiter used to separate fields. + Default is CultureInfo.CurrentCulture.TextInfo.ListSeparator. + + + + + Gets or sets the escape character used to escape a quote inside a field. + Default is '"'. + + + + + Gets or sets the field trimming options. + + + + + Configuration used for the . + + + + + Gets or sets a value indicating if the + CSV file has a header record. + Default is true. + + + + + Gets or sets the function that is called when a header validation check is ran. The default function + will throw a if there is no header for a given member mapping. + You can supply your own function to do other things like logging the issue instead of throwing an exception. + Arguments: isValid, headerNames, headerNameIndex, context + + + + + Gets or sets the function that is called when a missing field is found. The default function will + throw a . You can supply your own function to do other things + like logging the issue instead of throwing an exception. + Arguments: headerNames, index, context + + + + + Gets or sets the function that is called when a reading exception occurs. + The default function will re-throw the given exception. If you want to ignore + reading exceptions, you can supply your own function to do other things like + logging the issue. + Arguments: exception + + + + + Gets or sets the culture info used to read an write CSV files. + + + + + Gets or sets the . + + + + + Gets or sets the . + + + + + Prepares the header field for matching against a member name. + The header field and the member name are both ran through this function. + You should do things like trimming, removing whitespace, removing underscores, + and making casing changes to ignore case. + + + + + Determines if constructor parameters should be used to create + the class instead of the default constructor and members. + + + + + Chooses the constructor to use for constructor mapping. + + + + + Gets or sets a value indicating whether references + should be ignored when auto mapping. True to ignore + references, otherwise false. Default is false. + + + + + Gets or sets the callback that will be called to + determine whether to skip the given record or not. + + + + + Gets or sets a value indicating if private + member should be read from and written to. + True to include private member, otherwise false. Default is false. + + + + + Gets or sets a callback that will return the prefix for a reference header. + Arguments: memberType, memberName + + + + + Gets or sets a value indicating whether changes in the column + count should be detected. If true, a + will be thrown if a different column count is detected. + + + true if [detect column count changes]; otherwise, false. + + + + + Gets or sets the member types that are used when auto mapping. + MemberTypes are flags, so you can choose more than one. + Default is Properties. + + + + + The configured s. + + + + + Use a to configure mappings. + When using a class map, no members are mapped by default. + Only member specified in the mapping are used. + + The type of mapping class to use. + + + + Use a to configure mappings. + When using a class map, no member are mapped by default. + Only member specified in the mapping are used. + + The type of mapping class to use. + + + + Registers the class map. + + The class map to register. + + + + Unregisters the class map. + + The map type to unregister. + + + + Unregisters the class map. + + The map type to unregister. + + + + Unregisters all class maps. + + + + + Generates a for the type. + + The type to generate the map for. + The generate map. + + + + Generates a for the type. + + The type to generate for the map. + The generate map. + + + + Configuration used for the . + + + + + Gets or sets the delimiter used to separate fields. + Default is ','; + + + + + Gets or sets the character used to quote fields. + Default is '"'. + + + + + Gets or sets the escape character used to escape a quote inside a field. + Default is '"'. + + + + + Gets or sets the field trimming options. + + + + + Gets or sets a value indicating if fields should be sanitized + to prevent malicious injection. This covers MS Excel, + Google Sheets and Open Office Calc. + + + + + Gets or sets the characters that are used for injection attacks. + + + + + Gets or sets the character used to escape a detected injection. + + + + + Gets or sets the newline to use when writing. + + + + + Gets the newline string to use when writing. This string is determined + by the value. + + + + + Configuration used for the . + + + + + Gets a string representation of the currently configured Quote character. + + + The new quote string. + + + + + Gets a string representation of two of the currently configured Quote characters. + + + The new double quote string. + + + + + Gets or sets a function that is used to determine if a field should get quoted + when writing. + Arguments: field, context + + + + + Gets or sets the culture info used to read an write CSV files. + + + + + Gets or sets the . + + + + + Gets or sets the . + + + + + Gets or sets a value indicating if comments are allowed. + True to allow commented out lines, otherwise false. + + + + + Gets or sets the character used to denote + a line that is commented out. Default is '#'. + + + + + Gets or sets a value indicating if the + CSV file has a header record. + Default is true. + + + + + Gets or sets a value indicating whether references + should be ignored when auto mapping. True to ignore + references, otherwise false. Default is false. + + + + + Gets or sets a value indicating if private + member should be read from and written to. + True to include private member, otherwise false. Default is false. + + + + + Gets or sets a callback that will return the prefix for a reference header. + Arguments: memberType, memberName + + + + + Gets or sets the member types that are used when auto mapping. + MemberTypes are flags, so you can choose more than one. + Default is Properties. + + + + + The configured s. + + + + + Use a to configure mappings. + When using a class map, no member are mapped by default. + Only member specified in the mapping are used. + + The type of mapping class to use. + + + + Use a to configure mappings. + When using a class map, no member are mapped by default. + Only member specified in the mapping are used. + + The type of mapping class to use. + + + + Registers the class map. + + The class map to register. + + + + Unregisters the class map. + + The map type to unregister. + + + + Unregisters the class map. + + The map type to unregister. + + + + Unregisters all class maps. + + + + + Generates a for the type. + + The type to generate the map for. + The generate map. + + + + Generates a for the type. + + The type to generate for the map. + The generate map. + + + + Gets or sets a value indicating that during writing if a new + object should be created when a reference member is null. + True to create a new object and use it's defaults for the + fields, or false to leave the fields empty for all the + reference member's member. + + + + + Gets or sets the comparer used to order the properties + of dynamic objects when writing. The default is null, + which will preserve the order the object properties + were created with. + + + + + Sets type converter options on a member map. + + + + + Creates a new instance using the given . + + The member map the options are being applied to. + + + + The used when type converting. + This will override the global + setting. + + The culture info. + + + + The to use when type converting. + This is used when doing any conversions. + + The date time style. + + + + The to use when type converting. + This is used when doing converting. + + The time span styles. + + + + The to use when type converting. + This is used when doing any number conversions. + + + + + + The string format to be used when type converting. + + The format. + + + + The to use when converting. + This is used when doing conversions. + + Kind of the URI. + + + + The string values used to represent a boolean when converting. + + A value indicating whether true values or false values are being set. + A value indication if the current values should be cleared before adding the new ones. + The string boolean values. + + + + The string values used to represent null when converting. + + The values that represent null. + + + + + The string values used to represent null when converting. + + A value indication if the current values should be cleared before adding the new ones. + The values that represent null. + + + + + Mapping info for a member to a CSV field. + + + + + Gets the member map data. + + + + + Type converter options. + + + + + Creates an instance of using the given Type and . + + Type of the class the member being mapped belongs to. + The member being mapped. + + + + When reading, is used to get the field + at the index of the name if there was a + header specified. It will look for the + first name match in the order listed. + When writing, sets the name of the + field in the header record. + The first name will be used. + + The possible names of the CSV field. + + + + When reading, is used to get the + index of the name used when there + are multiple names that are the same. + + The index of the name. + + + + When reading, is used to get the field at + the given index. When writing, the fields + will be written in the order of the field + indexes. + + The index of the CSV field. + The end index used when mapping to an member. + + + + Ignore the member when reading and writing. + If this member has already been mapped as a reference + member, either by a class map, or by automapping, calling + this method will not ignore all the child members down the + tree that have already been mapped. + + + + + Ignore the member when reading and writing. + If this member has already been mapped as a reference + member, either by a class map, or by automapping, calling + this method will not ignore all the child members down the + tree that have already been mapped. + + True to ignore, otherwise false. + + + + The default value that will be used when reading when + the CSV field is empty. + + The default value. + + + + The default value that will be used when reading when + the CSV field is empty. This value is not type checked + and will use a to convert + the field. This could potentially have runtime errors. + + The default value. + + + + The constant value that will be used for every record when + reading and writing. This value will always be used no matter + what other mapping configurations are specified. + + The constant value. + + + + Specifies the