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));
}
}
}
}