public virtual async Task UpdateFieldById <TField>(TKey id, Expression <Func <TEntity, TField> > memberExpression, TField value) { var entity = (await DbSet.FirstOrDefaultAsync(q => q.Id.Equals(id))) ?? throw new KeyNotFoundException( $"there is no item in {typeof(TEntity).Name} with id : {id}"); var memberName = LambdaExpressions.GetName(memberExpression); entity.GetType() .GetProperty(memberName) ?.SetValue(entity, value); }
public virtual async Task UpdateFieldById <TField>(object[] ids, Expression <Func <TEntity, TField> > memberExpression, TField value) { var entity = await DbSet.FindAsync(ids) ?? throw new KeyNotFoundException( $"there is no item in {typeof(TEntity).Name} with id : {ids}"); var memberName = LambdaExpressions.GetName(memberExpression); entity.GetType() .GetProperty(memberName) ?.SetValue(entity, value); }
/// <inheritdoc /> public virtual async Task UpdateField <TField>(Expression <Func <TEntity, bool> > filterExpression, Expression <Func <TEntity, TField> > memberExpression, TField value) { var entity = (await DbSet.FirstOrDefaultAsync(filterExpression)) ?? throw new KeyNotFoundException( $"there is no item in {typeof(TEntity).Name} with query : {filterExpression}"); var memberName = LambdaExpressions.GetName(memberExpression); entity.GetType() .GetProperty(memberName) ?.SetValue(entity, value); }
public virtual Result UpdateOne <TField>(TKey id, Expression <Func <TEntity, TField> > memberExpression, TField value) { var entity = base.DbSet.FirstOrDefault(q => q.Id.Equals(id)); if (entity == null) { return(Result.Error($"there is no item in {typeof(TEntity).Name} with id : {id}")); } try { var memberName = LambdaExpressions.GetName(memberExpression); entity.GetType().GetProperty(memberName).SetValue(entity, value); var item = base.Context.SaveChanges(); return(Result.Okay(Messages.ItemUpdated)); //return Result.Okay($"{item} item successfully updated."); } catch (Exception ex) { return(Result.Exception(ex)); } }