using System; using System.Linq.Expressions; namespace NzbDrone.Common.EnsureThat { public static class Ensure { public static Param That(T value, string name = Param.DefaultName) { return new Param(name, value); } public static Param That(Expression> expression) { var memberExpression = expression.GetRightMostMember(); return new Param( memberExpression.ToPath(), expression.Compile().Invoke()); } public static TypeParam ThatTypeFor(T value, string name = Param.DefaultName) { return new TypeParam(name, value.GetType()); } } }