public object Execute(string value, int row)
{
if (!String.IsNullOrEmpty(value))
{
switch (dataType)
{
case "Int16":
{
try
{
if (!String.IsNullOrEmpty(value)) Convert.ToInt16(value);
}
catch (Exception ex)
{
return new Error(ErrorType.Value, "Can not convert to", new object[] { name, value, row, dataType });
}
return Convert.ToInt16(value);
}
case "Int32":
{
try
{
if (!String.IsNullOrEmpty(value)) Convert.ToInt32(value);
}
catch (Exception ex)
{
return new Error(ErrorType.Value, "Can not convert to", new object[] { name, value, row, dataType });
}
return Convert.ToInt32(value);
}
case "Double":
{
//double convertedValue = 0;
//if(double.TryParse(value,NumberStyles.Number,CultureInfo.InvariantCulture, out convertedValue))
//{
if (decimalCharacter.Equals(DecimalCharacter.point))
{
string[] temp = value.Split('.');
if (temp.Length <= 2)
{
if (!temp[temp.Length - 1].Contains(',') )
{
return Convert.ToDouble(value, new CultureInfo("en-US"));
}
else
{
return new Error(ErrorType.Value, "False decimal character.", new object[] { name, value, row, dataType });
}
}
else
{
return new Error(ErrorType.Value, "Can not convert to.", new object[] { name, value, row, dataType });
}
}
if (decimalCharacter.Equals(DecimalCharacter.comma))
{
string[] temp = value.Split(',');
if (temp.Length <= 2)
{
if (!temp[temp.Length - 1].Contains('.'))
{
return Convert.ToDouble(value, new CultureInfo("de-DE"));
}
else
{
return new Error(ErrorType.Value, "False decimal character.", new object[] { name, value, row, dataType });
}
}
else
{
return new Error(ErrorType.Value, "Can not convert to.", new object[] { name, value, row, dataType });
}
}
//}
//else
//{
// return new Error(ErrorType.Value, "Can not convert to", new object[] { _name, value, row, _dataType });
//}
return Convert.ToDouble(value);
}
case "DateTime":
{
DateTime dateTime;
if(DateTime.TryParse(value,out dateTime))
{
return dateTime;
}
if(DateTime.TryParse(value,new CultureInfo("de-DE", false),DateTimeStyles.None,out dateTime))
{
return dateTime;
}
if(DateTime.TryParse(value,new CultureInfo("en-US", false),DateTimeStyles.None,out dateTime))
{
return dateTime;
}
if (DateTime.TryParse(value,CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
{
return dateTime;
}
return new Error(ErrorType.Value, "Can not convert to", new object[] { name, value, row, dataType });
}
case "String":
{
return value;
}
}
}
return value;
}