internal static bool ToBoolean(object value)
{
if (IsUnknown(value))
return false;
if (value is bool)
return (bool)value;
if (value is SqlBoolean)
{
return (((SqlBoolean)value).IsTrue);
}
//check for SqlString is not added, value for true and false should be given with String, not with SqlString
if (value is string)
{
try
{
return bool.Parse((string)value);
}
catch (Exception e) when (ADP.IsCatchableExceptionType(e))
{
ExceptionBuilder.TraceExceptionForCapture(e);
throw ExprException.DatavalueConvertion(value, typeof(bool), e);
}
}
throw ExprException.DatavalueConvertion(value, typeof(bool), null);
}
}