aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Entities/BaseItemExtensions.cs
diff options
context:
space:
mode:
authorErwin de Haan <EraYaN@users.noreply.github.com>2018-12-30 01:24:30 +0100
committerErwin de Haan <EraYaN@users.noreply.github.com>2018-12-30 01:25:42 +0100
commit9c1c29325d0c5693f36059b60954e2af2834205e (patch)
treeeff7f3f0e5c8760f6b383ffaf4636f505bcc8fe4 /MediaBrowser.Controller/Entities/BaseItemExtensions.cs
parentde7fcaadb3d8fa77802ddcfb9bbd5b9306c49224 (diff)
Added extra extension method that create a new instance of the destination object.
Diffstat (limited to 'MediaBrowser.Controller/Entities/BaseItemExtensions.cs')
-rw-r--r--MediaBrowser.Controller/Entities/BaseItemExtensions.cs17
1 files changed, 16 insertions, 1 deletions
diff --git a/MediaBrowser.Controller/Entities/BaseItemExtensions.cs b/MediaBrowser.Controller/Entities/BaseItemExtensions.cs
index 97e56d1fd..8ab1788b5 100644
--- a/MediaBrowser.Controller/Entities/BaseItemExtensions.cs
+++ b/MediaBrowser.Controller/Entities/BaseItemExtensions.cs
@@ -68,7 +68,9 @@ namespace MediaBrowser.Controller.Entities
/// </summary>
/// <param name="source">The source object.</param>
/// <param name="dest">The destination object.</param>
- public static void DeepCopy<T, TU>(this T source, TU dest)
+ public static void DeepCopy<T, TU>(this T source, TU dest)
+ where T : BaseItem
+ where TU : BaseItem
{
var sourceProps = typeof (T).GetProperties().Where(x => x.CanRead).ToList();
var destProps = typeof(TU).GetProperties()
@@ -87,6 +89,19 @@ namespace MediaBrowser.Controller.Entities
}
+ /// <summary>
+ /// Copies all properties on newly created object. Skips properties that do not exist.
+ /// </summary>
+ /// <param name="source">The source object.</param>
+ public static TU DeepCopy<T, TU>(this T source)
+ where T : BaseItem
+ where TU : BaseItem, new()
+ {
+ var dest = new TU();
+ source.DeepCopy(dest);
+ return dest;
+ }
+
}
}