private static void RegisterConverters( ITypeConverterRegistry registry) { RegisterDateTimeConversions(registry); RegisterGuidConversions(registry); RegisterUriConversions(registry); RegisterBooleanConversions(registry); RegisterStringConversions(registry); RegisterNameStringConversions(registry); RegisterByteConversions(registry); RegisterUInt16Conversions(registry); RegisterUInt32Conversions(registry); RegisterUInt64Conversions(registry); RegisterInt16Conversions(registry); RegisterInt32Conversions(registry); RegisterInt64Conversions(registry); RegisterSingleConversions(registry); RegisterDoubleConversions(registry); RegisterDecimalConversions(registry); RegisterStringListConversions(registry); }
public static void Register( this ITypeConverterRegistry registry, ITypeConverter converter) { if (converter == null) { throw new ArgumentNullException(nameof(converter)); } registry.Register(converter.From, converter.To, converter.Convert); }
private static void RegisterBooleanConversions( ITypeConverterRegistry registry) { registry.Register <bool, string>(from => from.ToString(CultureInfo.InvariantCulture)); registry.Register <bool, short>(from => from ? (short)1 : (short)0); registry.Register <bool, int>(from => from ? (int)1 : (int)0); registry.Register <bool, long>(from => from ? (long)1 : (long)0); }
private static void RegisterDecimalConversions( ITypeConverterRegistry registry) { registry.Register <decimal, short>(from => SysConv.ToInt16(from)); registry.Register <decimal, int>(from => SysConv.ToInt32(from)); registry.Register <decimal, long>(from => SysConv.ToInt64(from)); registry.Register <decimal, ushort>(from => SysConv.ToUInt16(from)); registry.Register <decimal, uint>(from => SysConv.ToUInt32(from)); registry.Register <decimal, ulong>(from => SysConv.ToUInt64(from)); registry.Register <decimal, float>(from => SysConv.ToSingle(from)); registry.Register <decimal, double>(from => SysConv.ToDouble(from)); registry.Register <decimal, string>(from => from.ToString("E", CultureInfo.InvariantCulture)); }
private static void RegisterDateTimeConversions( ITypeConverterRegistry registry) { registry.Register <DateTimeOffset, DateTime>( from => from.UtcDateTime); registry.Register <DateTime, DateTimeOffset>( from => (DateTimeOffset)from); registry.Register <DateTimeOffset, long>( from => from.ToUnixTimeSeconds()); registry.Register <long, DateTimeOffset>( from => DateTimeOffset.FromUnixTimeSeconds(from)); registry.Register <DateTime, long>( from => ((DateTimeOffset)from).ToUnixTimeSeconds()); registry.Register <long, DateTime>( from => DateTimeOffset.FromUnixTimeSeconds(from).UtcDateTime); registry.Register <DateTimeOffset, string>( from => { if (from.Offset == TimeSpan.Zero) { return(from.ToString( _utcFormat, CultureInfo.InvariantCulture)); } return(from.ToString( _localFormat, CultureInfo.InvariantCulture)); }); registry.Register <DateTime, string>( from => { var offset = new DateTimeOffset(from); if (offset.Offset == TimeSpan.Zero) { return(offset.ToString( _utcFormat, CultureInfo.InvariantCulture)); } return(offset.ToString( _localFormat, CultureInfo.InvariantCulture)); }); }
private static void RegisterDoubleConversions( ITypeConverterRegistry registry) { registry.Register <double, byte>(from => SysConv.ToByte(from)); registry.Register <double, short>(from => SysConv.ToInt16(from)); registry.Register <double, int>(from => SysConv.ToInt32(from)); registry.Register <double, long>(from => SysConv.ToInt64(from)); registry.Register <double, ushort>(from => SysConv.ToUInt16(from)); registry.Register <double, uint>(from => SysConv.ToUInt32(from)); registry.Register <double, ulong>(from => SysConv.ToUInt64(from)); registry.Register <double, decimal>(from => SysConv.ToDecimal(from)); registry.Register <double, float>(from => SysConv.ToSingle(from)); registry.Register <double, string>(from => from.ToString(CultureInfo.InvariantCulture)); }
private static void RegisterDateTimeConversions( ITypeConverterRegistry registry) { registry.Register <DateTimeOffset, DateTime>( from => from.UtcDateTime); registry.Register <DateTime, DateTimeOffset>( from => (DateTimeOffset)from); registry.Register <DateTimeOffset, long>( from => from.ToUnixTimeSeconds()); registry.Register <long, DateTimeOffset>( from => DateTimeOffset.FromUnixTimeSeconds(from)); registry.Register <DateTime, long>( from => ((DateTimeOffset)from).ToUnixTimeSeconds()); registry.Register <long, DateTime>( from => DateTimeOffset.FromUnixTimeSeconds(from).UtcDateTime); }
private static void RegisterStringConversions( ITypeConverterRegistry registry) { registry.Register <string, Guid>(from => Guid.Parse(from)); registry.Register <string, Uri>(from => new Uri(from, UriKind.RelativeOrAbsolute)); registry.Register <string, short>(from => short.Parse(from, NumberStyles.Integer, CultureInfo.InvariantCulture)); registry.Register <string, int>(from => int.Parse(from, NumberStyles.Integer, CultureInfo.InvariantCulture)); registry.Register <string, long>(from => long.Parse(from, NumberStyles.Integer, CultureInfo.InvariantCulture)); registry.Register <string, ushort>(from => ushort.Parse(from, NumberStyles.Integer, CultureInfo.InvariantCulture)); registry.Register <string, uint>(from => uint.Parse(from, NumberStyles.Integer, CultureInfo.InvariantCulture)); registry.Register <string, ulong>(from => ulong.Parse(from, NumberStyles.Integer, CultureInfo.InvariantCulture)); registry.Register <string, float>(from => ushort.Parse(from, NumberStyles.Float, CultureInfo.InvariantCulture)); registry.Register <string, double>(from => double.Parse(from, NumberStyles.Float, CultureInfo.InvariantCulture)); registry.Register <string, decimal>(from => decimal.Parse(from, NumberStyles.Float, CultureInfo.InvariantCulture)); registry.Register <string, bool>(from => bool.Parse(from)); registry.Register <string, NameString>(from => from); }
private static void RegisterStringListConversions( ITypeConverterRegistry registry) { registry.Register <IEnumerable <string>, string>( from => string.Join(",", from)); registry.Register <IReadOnlyCollection <string>, string>( from => string.Join(",", from)); registry.Register <IReadOnlyList <string>, string>( from => string.Join(",", from)); registry.Register <ICollection <string>, string>( from => string.Join(",", from)); registry.Register <IList <string>, string>( from => string.Join(",", from)); registry.Register <string[], string>( from => string.Join(",", from)); registry.Register <List <string>, string>( from => string.Join(",", from)); }
private static void RegisterUriConversions( ITypeConverterRegistry registry) { registry.Register <Uri, string>(from => from.ToString()); }
private static void RegisterGuidConversions( ITypeConverterRegistry registry) { registry.Register <Guid, string>(from => from.ToString("N")); }
private static void RegisterNameStringConversions( ITypeConverterRegistry registry) { registry.Register <NameString, string>(from => from); }