aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Core
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2020-02-26 18:25:52 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2020-02-26 18:25:52 +0200
commitafb6bbb2123932b3562e1af993eb847d8147bf58 (patch)
treea2c458a077551af5be35a729c4e6d976a92b9387 /Software/Visual_Studio/Tango.Core
parent61f2658295193dca0fdaa58744925d90bd2f4044 (diff)
downloadTango-afb6bbb2123932b3562e1af993eb847d8147bf58.tar.gz
Tango-afb6bbb2123932b3562e1af993eb847d8147bf58.zip
Major Changes Regarding RML & SPOOL parameters changes!
Diffstat (limited to 'Software/Visual_Studio/Tango.Core')
-rw-r--r--Software/Visual_Studio/Tango.Core/ExtensionMethods/ObjectExtensions.cs12
-rw-r--r--Software/Visual_Studio/Tango.Core/ExtensionMethods/TypeExtensions.cs15
-rw-r--r--Software/Visual_Studio/Tango.Core/Tango.Core.csproj2
3 files changed, 22 insertions, 7 deletions
diff --git a/Software/Visual_Studio/Tango.Core/ExtensionMethods/ObjectExtensions.cs b/Software/Visual_Studio/Tango.Core/ExtensionMethods/ObjectExtensions.cs
index e8ef9addd..cee991507 100644
--- a/Software/Visual_Studio/Tango.Core/ExtensionMethods/ObjectExtensions.cs
+++ b/Software/Visual_Studio/Tango.Core/ExtensionMethods/ObjectExtensions.cs
@@ -35,9 +35,9 @@ namespace Tango.Core.ExtensionMethods
NoReferenceTypes = 8,
/// <summary>
- /// Map only primitive values.
+ /// Map only value types.
/// </summary>
- PrimitivesOnly,
+ ValueTypesOnly,
}
/// <summary>
@@ -59,7 +59,7 @@ namespace Tango.Core.ExtensionMethods
foreach (var prop in typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(x => x.SetMethod != null))
{
- if (!prop.PropertyType.IsGenericType)
+ if (!prop.PropertyType.IsGenericTypeAndNotNullable())
{
prop.SetValue(cloned, prop.GetValue(obj));
}
@@ -78,7 +78,7 @@ namespace Tango.Core.ExtensionMethods
{
foreach (var prop in typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(x => x.SetMethod != null))
{
- if (!prop.PropertyType.IsGenericType)
+ if (!prop.PropertyType.IsGenericTypeAndNotNullable())
{
prop.SetValue(destination, prop.GetValue(source));
}
@@ -104,7 +104,7 @@ namespace Tango.Core.ExtensionMethods
if (!condition(prop)) continue;
}
- if (!propType.IsPrimitive && flags.HasFlag(MappingFlags.PrimitivesOnly))
+ if (!propType.IsValueType && flags.HasFlag(MappingFlags.ValueTypesOnly))
{
continue;
}
@@ -141,7 +141,7 @@ namespace Tango.Core.ExtensionMethods
/// <param name="destination">The destination.</param>
public static void MapPrimitivesTo(this object source, object destination)
{
- source.MapPropertiesTo(destination, MappingFlags.PrimitivesOnly);
+ source.MapPropertiesTo(destination, MappingFlags.ValueTypesOnly);
}
/// <summary>
diff --git a/Software/Visual_Studio/Tango.Core/ExtensionMethods/TypeExtensions.cs b/Software/Visual_Studio/Tango.Core/ExtensionMethods/TypeExtensions.cs
index c6fd3d811..66978ec19 100644
--- a/Software/Visual_Studio/Tango.Core/ExtensionMethods/TypeExtensions.cs
+++ b/Software/Visual_Studio/Tango.Core/ExtensionMethods/TypeExtensions.cs
@@ -122,4 +122,19 @@ public static class TypeExtensions
{
return type.GetProperties().Where(x => x.GetCustomAttribute<T>() != null);
}
+
+ public static bool IsGenericTypeAndNotNullable(this Type type)
+ {
+ return type.IsGenericType && Nullable.GetUnderlyingType(type) == null;
+ }
+
+ public static bool IsNullable(this Type type)
+ {
+ return Nullable.GetUnderlyingType(type) != null;
+ }
+
+ public static bool IsValueTypeOrString(this Type type)
+ {
+ return type.IsValueType || type == typeof(String);
+ }
}
diff --git a/Software/Visual_Studio/Tango.Core/Tango.Core.csproj b/Software/Visual_Studio/Tango.Core/Tango.Core.csproj
index 891c5e58f..7c794c276 100644
--- a/Software/Visual_Studio/Tango.Core/Tango.Core.csproj
+++ b/Software/Visual_Studio/Tango.Core/Tango.Core.csproj
@@ -205,7 +205,7 @@
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
<VisualStudio>
- <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" />
+ <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" />
</VisualStudio>
</ProjectExtensions>
<Import Project="..\packages\System.Data.SQLite.Core.1.0.108.0\build\net46\System.Data.SQLite.Core.targets" Condition="Exists('..\packages\System.Data.SQLite.Core.1.0.108.0\build\net46\System.Data.SQLite.Core.targets')" />