mirror of
https://github.com/lidarr/lidarr.git
synced 2025-08-21 05:53:33 -07:00
upgraded to autofac 3. created nancy only mode for nzbdrone.exe /n
This commit is contained in:
parent
177f88303c
commit
b0940ed8de
77 changed files with 3930 additions and 113 deletions
46
NzbDrone.Common/EnsureThat/ExpressionExtensions.cs
Normal file
46
NzbDrone.Common/EnsureThat/ExpressionExtensions.cs
Normal file
|
@ -0,0 +1,46 @@
|
|||
using System.Linq.Expressions;
|
||||
|
||||
namespace NzbDrone.Common.EnsureThat
|
||||
{
|
||||
internal static class ExpressionExtensions
|
||||
{
|
||||
internal static string ToPath(this MemberExpression e)
|
||||
{
|
||||
var path = "";
|
||||
var parent = e.Expression as MemberExpression;
|
||||
|
||||
if (parent != null)
|
||||
path = parent.ToPath() + ".";
|
||||
|
||||
return path + e.Member.Name;
|
||||
}
|
||||
|
||||
internal static MemberExpression GetRightMostMember(this Expression e)
|
||||
{
|
||||
if (e is LambdaExpression)
|
||||
return GetRightMostMember(((LambdaExpression)e).Body);
|
||||
|
||||
if (e is MemberExpression)
|
||||
return (MemberExpression)e;
|
||||
|
||||
if (e is MethodCallExpression)
|
||||
{
|
||||
var callExpression = (MethodCallExpression)e;
|
||||
|
||||
if (callExpression.Object is MethodCallExpression || callExpression.Object is MemberExpression)
|
||||
return GetRightMostMember(callExpression.Object);
|
||||
|
||||
var member = callExpression.Arguments.Count > 0 ? callExpression.Arguments[0] : callExpression.Object;
|
||||
return GetRightMostMember(member);
|
||||
}
|
||||
|
||||
if (e is UnaryExpression)
|
||||
{
|
||||
var unaryExpression = (UnaryExpression)e;
|
||||
return GetRightMostMember(unaryExpression.Operand);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue