moved conversion into a different project.

This commit is contained in:
David Lebée
2018-04-17 21:43:54 -05:00
parent 118f7c30f8
commit 01e7652c06
17 changed files with 167 additions and 33 deletions
@@ -327,17 +327,8 @@ namespace PoweredSoft.DynamicLinq.Helpers
if (value == null)
return Expression.Constant(null);
// the types.
var valueType = value.GetType();
var memberType = member.Type;
// if match.
if (valueType == memberType)
return Expression.Constant(value);
// attempt a conversion.
object convertedValue = TypeHelpers.ConvertFrom(memberType, value);
return Expression.Constant(convertedValue, memberType);
var convertedValue = PoweredSoft.Types.Converter.To(value, member.Type);
return Expression.Constant(convertedValue, member.Type);
}
public static ConstantExpression ResolveConstant(Expression member, object value, QueryConvertStrategy convertStrategy)
@@ -474,7 +465,7 @@ namespace PoweredSoft.DynamicLinq.Helpers
foreach (var o in enumerableValue)
{
if (convertStrategy == QueryConvertStrategy.ConvertConstantToComparedPropertyOrField)
list.Add(TypeHelpers.ConvertFrom(memberExpression.Type, o));
list.Add(PoweredSoft.Types.Converter.To(o, memberExpression.Type));
else
list.Add(o);
}
+1 -20
View File
@@ -24,26 +24,7 @@ namespace PoweredSoft.DynamicLinq.Helpers
}
public static object ConvertFrom(Type type, object source)
{
object ret = null;
// safe if null.
if (source == null)
return ret;
// not nullable type.
var notNullableType = Nullable.GetUnderlyingType(type);
if (notNullableType == null)
{
ret = Convert.ChangeType(source, type);
return ret;
}
// the ret.
ret = Convert.ChangeType(source, notNullableType);
return ret;
}
/*
/// <summary>
@@ -2,7 +2,7 @@
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<Company>Powered Softwares Inc.</Company>
<Authors>David Lebée</Authors>
<Copyright></Copyright>
@@ -22,6 +22,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="PoweredSoft.Types" Version="1.0.0" />
<PackageReference Include="System.Reflection.Emit" Version="4.3.0" />
</ItemGroup>