public ConversionResult Convert(ConversionContext conversion) { if (conversion.HasValue==false) return null; if(conversion.Is<DateTime?>()) { return conversion.Result(conversion.Value.As<DateTime?>().Value.ToUniversalTime()); } return conversion.Result(conversion.Value.As<DateTime>().ToUniversalTime()); }
public ConversionResult Convert(ConversionContext conversion) { if (conversion.HasValue==false) return conversion.Unconverted(); var converter=new NullableConverter(typeof(Nullable<>).MakeGenericType(conversion.GetType())); return conversion.Result(converter.ConvertTo(conversion, converter.UnderlyingType)); }
public ConversionResult Convert(ConversionContext conversion) { try { if (IsConvertible(conversion)) return conversion.Unconverted(); var destPropType = conversion.DestinationPropertyType; if (destPropType.IsNullableType() && conversion.HasValue) destPropType = new NullableConverter(destPropType).UnderlyingType; return conversion.Result(System.Convert.ChangeType(conversion.Value, destPropType)); } catch(InvalidCastException) { //gulp return conversion.Unconverted(); } }
private ConversionResult TryListConversion(ConversionContext context) { var collectionTypeSpec = new SupportedCollectionTypeSpecification(); if (collectionTypeSpec.IsSatisfiedBy(context.DestinationPropertyType) == false || collectionTypeSpec.IsSatisfiedBy(context.Value)==false) return context.Unconverted(); var destColl = (IList)activate.CreateCollectionInstance(context.DestinationPropertyType,collectionTypeSpec.GetLength(context.Value)); var destElement = context.DestinationPropertyType.ElementType(); var srcList = (IEnumerable) context.Value; var enumerator = srcList.GetEnumerator(); int index = 0; while(enumerator.MoveNext()) { object element = enumerator.Current ?? destElement.DefaultValue(); destColl.AddElement(element,index++); } return context.Result(destColl); }
public ConversionResult Convert(ConversionContext conversion) { if (conversion.HasValue == false || conversion.ValueType == conversion.DestinationPropertyType) return conversion.Result(conversion.Value); ConversionResult result = conversion.Unconverted(); var attempts = new Func<ConversionContext, ConversionResult>[] { TryListConversion, TryNullableConversion, TrySystemConversion }; foreach (var attempt in attempts) { result = attempt(conversion); if(result is Unconverted) continue; return result; } return result; }
public ConversionResult Convert(ConversionContext conversion) { return conversion.Result(conversion.DestinationPropertyType.DefaultValue()); }
public ConversionResult Convert(ConversionContext conversion) { return(conversion.Result(DateTime.Parse(conversion.Value.ToString()))); }
public ConversionResult Convert(ConversionContext conversion) { return(conversion.Result(conversion.HasValue?conversion.Value.ToString():null)); }
public ConversionResult Convert(ConversionContext conversion) { return conversion.Result(DateTime.Parse(conversion.Value.ToString())); }
public ConversionResult Convert(ConversionContext conversion) { return conversion.Result(conversion.HasValue?conversion.Value.ToString():null); }