/// <summary> /// Adds a mutator for the property pointed to by <paramref name="propertyAccessor"/> and /// specified <paramref name="newValue"/>. /// </summary> /// <typeparam name="TVal">The property type.</typeparam> /// <param name="propertyAccessor"></param> /// <param name="newValue"></param> /// <returns>A new API to enable a more fluent API.</returns> public ISubsequentPropertyChangeSetApi <TRecord> Mutate <TVal>(Expression <Func <TRecord, TVal> > propertyAccessor, TVal newValue) { var propertyInfo = PropertyMutator <TRecord> .GetPropertyFromExpression(propertyAccessor); var mutator = PropertyMutator <TRecord> .FromAssignment(propertyInfo, newValue); return(Mutate(mutator)); }
/// <summary> /// Adds a mutator for the property named <paramref name="propertyName"/> and specified /// <paramref name="newValue"/>. /// </summary> /// <typeparam name="TVal">The property type.</typeparam> /// <param name="propertyName"></param> /// <param name="newValue"></param> /// <exception cref="MissingMemberException"> /// Thrown if <paramref name="propertyName"/> is not a property on <typeparamref name="TRecord"/>. /// </exception> /// <returns>A new API to enable a more fluent API.</returns> public ISubsequentPropertyChangeSetApi <TRecord> Mutate <TVal>(string propertyName, TVal newValue) { return(Mutate(PropertyMutator <TRecord> .FromAssignment(propertyName, newValue))); }