add csharpier

This commit is contained in:
Adam Hathcock
2024-05-21 16:34:46 +01:00
parent 1734d5162a
commit e341772cbc
110 changed files with 1096 additions and 656 deletions
@@ -11,9 +11,15 @@ namespace ProxyInterfaceConsumerForPnP.Interfaces;
[SuppressMessage("ReSharper", "InconsistentNaming")]
public partial class ClientContextProxy
{
public Task ExecuteQueryRetryAsync(Interfaces.IClientRuntimeContext clientContext, int retryCount = 10, string? userAgent = null)
public Task ExecuteQueryRetryAsync(
Interfaces.IClientRuntimeContext clientContext,
int retryCount = 10,
string? userAgent = null
)
{
ClientRuntimeContext clientObject_ = Mapster.TypeAdapter.Adapt<ClientRuntimeContext>(clientContext);
ClientRuntimeContext clientObject_ = Mapster.TypeAdapter.Adapt<ClientRuntimeContext>(
clientContext
);
return clientObject_.ExecuteQueryRetryAsync(retryCount, userAgent);
}
@@ -25,17 +31,24 @@ public partial class ClientContextProxy
_Instance.Load<T>(clientObject_, retrievals_);
}
public void Load<TSource, TTarget>(Interfaces.IClientObject clientObject, params Expression<Func<TSource, object>>[] retrievals)
public void Load<TSource, TTarget>(
Interfaces.IClientObject clientObject,
params Expression<Func<TSource, object>>[] retrievals
)
where TSource : Interfaces.IClientObject
where TTarget : ClientObject
{
TTarget clientObject_ = Mapster.TypeAdapter.Adapt<TTarget>(clientObject);
Expression<Func<TTarget, object>>[] retrievals_ = retrievals.Select(MapExpression<TSource, TTarget>).ToArray();
Expression<Func<TTarget, object>>[] retrievals_ = retrievals
.Select(MapExpression<TSource, TTarget>)
.ToArray();
_Instance.Load(clientObject_, retrievals_);
}
private static Expression<Func<TTarget, object>> MapExpression<TSource, TTarget>(Expression<Func<TSource, object>> expression)
private static Expression<Func<TTarget, object>> MapExpression<TSource, TTarget>(
Expression<Func<TSource, object>> expression
)
where TSource : Interfaces.IClientObject
where TTarget : ClientObject
{
@@ -45,20 +58,28 @@ public partial class ClientContextProxy
switch (expression.Body)
{
case MemberExpression memberExpression:
memberAccessExpression = Expression.PropertyOrField(parameterExpression, memberExpression.Member.Name);
memberAccessExpression = Expression.PropertyOrField(
parameterExpression,
memberExpression.Member.Name
);
break;
case UnaryExpression unaryExpression:
var expressionOperand = (MemberExpression)unaryExpression.Operand;
memberAccessExpression = Expression.PropertyOrField(parameterExpression, expressionOperand.Member.Name);
memberAccessExpression = Expression.PropertyOrField(
parameterExpression,
expressionOperand.Member.Name
);
memberAccessExpression = Expression.Convert(memberAccessExpression, typeof(object));
break;
default:
throw new NotSupportedException();
}
return Expression.Lambda<Func<TTarget, object>>(memberAccessExpression, parameterExpression);
return Expression.Lambda<Func<TTarget, object>>(
memberAccessExpression,
parameterExpression
);
}
}
}