From: Donald L M. Jr. <lu...@us...> - 2004-12-06 13:55:17
|
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); |