/// <summary>
/// Helper method to create a deep clone of a DTO
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
public static T Clone<T> (T obj)
{
if (obj.GetType().FullName.StartsWith("System.Data.Entity.Dynamic"))
{
throw new Exception("Cannot Clone Entity");
}
return JsonConvert.DeserializeObject<T>(JsonConvert.SerializeObject(obj));
}