// Copyright (c) Philipp Wagner. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. using Modules.Library.Domain.Entities; using System; using System.Linq.Expressions; using System.Reflection; namespace Modules.Library.Domain.Utils; public static class ExpressionUtils { //public static void SetPropertyValue(this T target, Expression> memberLamda, TValue value) //{ // var memberSelectorExpression = memberLamda.Body as MemberExpression; // if (memberSelectorExpression != null) // { // var property = memberSelectorExpression.Member as PropertyInfo; // if (property != null) // { // property.SetValue(target, value, null); // } // } //} public static Action SetProperty(TEntity entity, Expression> e, TProperty value) { var expr = Expression.Assign(e.Body, Expression.Constant(value)); LambdaExpression lambda = Expression.Lambda(typeof(Action), expr, e.Parameters[0]); return (Action)lambda.Compile(); } //public static Expression> SetPropertyExpresion(TEntity entity, Expression> e, TProperty value) //{ // var expr = Expression.Assign(e.Body, Expression.Constant(value)); // return Expression.Lambda(typeof(Action), expr, e.Parameters[0]); //} //public static Action SetEntityValues(TEntity entity) where TEntity : Entity //{ //} }