public static object SetObjectCreatedBy(this IObjectCreation creation, Func <object, object> newCreatedByFactory) { creation.NotNull(nameof(creation)); newCreatedByFactory.NotNull(nameof(newCreatedByFactory)); var newCreatedBy = creation.GetObjectCreatedBy(); return(creation.SetObjectCreatedBy(newCreatedByFactory.Invoke(newCreatedBy))); }
public static async ValueTask <object> SetObjectCreatedByAsync(this IObjectCreation creation, Func <object, object> newCreatedByFactory, CancellationToken cancellationToken = default) { creation.NotNull(nameof(creation)); newCreatedByFactory.NotNull(nameof(newCreatedByFactory)); var newCreatedBy = await creation.GetObjectCreatedByAsync(cancellationToken).ConfigureAwait(); return(await creation.SetObjectCreatedByAsync(newCreatedByFactory.Invoke(newCreatedBy), cancellationToken) .ConfigureAwait()); }