using System; using System.Collections.Generic; using System.Linq; using System.Web; using Windsor.Commons.Core; using System.IO; using System.Text; namespace Sleis.Utility { public class SleisCsvParser : CommaSeparatedFileParser { public SleisCsvParser(Stream stream) : base(stream) { } public SleisCsvParser(TextReader reader) : base(reader) { } public SleisCsvParser(string path) : base(path) { } public SleisCsvParser(Stream stream, Encoding defaultEncoding) : base(stream, defaultEncoding) { } public SleisCsvParser(string path, Encoding defaultEncoding) : base(path, defaultEncoding) { } public SleisCsvParser(Stream stream, Encoding defaultEncoding, bool detectEncoding) : base(stream, defaultEncoding, detectEncoding) { } public SleisCsvParser(string path, Encoding defaultEncoding, bool detectEncoding) : base(path, defaultEncoding, detectEncoding) { } public SleisCsvParser(Stream stream, Encoding defaultEncoding, bool detectEncoding, bool leaveOpen) : base(stream, defaultEncoding, detectEncoding, leaveOpen) { } /// /// Gets Value by column name. This will allow for nullable types. /// /// /// /// Value public override T GetValue(string columnName) { string strValue = GetColumnString(columnName); if (string.IsNullOrEmpty(strValue)) { return default(T); } else { return ChangeType(strValue); } } protected override T ChangeType(string strValue) { if (typeof(T).IsEnum) { return (T)Enum.Parse(typeof(T), strValue); } else { return strValue.ConvertTo(); //return (T)Convert.ChangeType(strValue, typeof(T)); } } } }