Update of /cvsroot/nhibernate/NHibernateContrib/src/Nullables/TypeConverters
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20749/src/Nullables/TypeConverters
Modified Files:
NullableDateTimeConverter.cs
Log Message:
Added converting to/from DateTime for NullableDateTime. .NET DateTimePicker still doesn't handle nulls, but it can at least bind to a nullable type.
Index: NullableDateTimeConverter.cs
===================================================================
RCS file: /cvsroot/nhibernate/NHibernateContrib/src/Nullables/TypeConverters/NullableDateTimeConverter.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** NullableDateTimeConverter.cs 6 Dec 2004 13:36:58 -0000 1.2
--- NullableDateTimeConverter.cs 6 Dec 2004 13:55:05 -0000 1.3
***************
*** 16,19 ****
--- 16,23 ----
if (sourceType == typeof(string))
return true;
+ else if (sourceType == typeof(DateTime))
+ return true;
+ else if (sourceType == typeof(DBNull))
+ return true;
else
return base.CanConvertFrom (context, sourceType);
***************
*** 24,27 ****
--- 28,33 ----
if (destinationType == typeof(InstanceDescriptor))
return true;
+ else if (destinationType == typeof(DateTime))
+ return true;
else
return base.CanConvertTo (context, destinationType);
***************
*** 34,37 ****
--- 40,51 ----
return NullableDateTime.Default;
}
+ if (value is DateTime)
+ {
+ return new NullableDateTime((DateTime)value);
+ }
+ if (value is DBNull)
+ {
+ return NullableDateTime.Default;
+ }
if (value is string)
{
***************
*** 50,54 ****
else
{
! return base.ConvertFrom (context, culture, value);
}
}
--- 64,68 ----
else
{
! return base.ConvertFrom(context, culture, value);
}
}
***************
*** 69,72 ****
--- 83,95 ----
}
}
+ else if (destinationType == typeof(DateTime))
+ {
+ NullableDateTime ndt = (NullableDateTime)value;
+
+ if (ndt.HasValue)
+ return ndt.Value;
+ else
+ return DBNull.Value;
+ }
return base.ConvertTo (context, culture, value, destinationType);
|