|
|
|
|
@ -106,62 +106,5 @@ namespace System
|
|
|
|
|
|
|
|
|
|
return obj;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Resets all fields of a given object to their default values.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <typeparam name="T">Type of the object.</typeparam>
|
|
|
|
|
/// <param name="obj">An object</param>
|
|
|
|
|
/// <param name="customReset">Alternative custom method to reset the values.</param>
|
|
|
|
|
/// <returns>Returns the original object.</returns>
|
|
|
|
|
public static T ResetState<T>(this T obj, Action<T> customReset = null)
|
|
|
|
|
{
|
|
|
|
|
if (customReset != null)
|
|
|
|
|
{
|
|
|
|
|
customReset(obj);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
var properties = typeof(T).GetProperties();
|
|
|
|
|
|
|
|
|
|
foreach (var property in properties)
|
|
|
|
|
{
|
|
|
|
|
if (!property.CanWrite)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
property.SetValue(obj, null);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return obj;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Applies all fields of a given object from it's counterpart.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <typeparam name="T">Type of the object.</typeparam>
|
|
|
|
|
/// <param name="obj">An object.</param>
|
|
|
|
|
/// <param name="other">An object from which we copy the values.</param>
|
|
|
|
|
/// <returns>Returns the original object.</returns>
|
|
|
|
|
public static T ApplyState<T>(this T obj, T other)
|
|
|
|
|
{
|
|
|
|
|
// This code is not production ready and it should be removed once
|
|
|
|
|
// the proper validation in Blazorise is done!
|
|
|
|
|
var properties = typeof(T).GetProperties();
|
|
|
|
|
|
|
|
|
|
foreach (var property in properties)
|
|
|
|
|
{
|
|
|
|
|
if (!property.CanWrite)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
property.SetValue(obj, typeof(T).GetProperty(property.Name).GetValue(other));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return obj;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|