public static object SetObjectPublishedBy(this IObjectPublication publication, Func <object, object> newPublishedByFactory) { publication.NotNull(nameof(publication)); newPublishedByFactory.NotNull(nameof(newPublishedByFactory)); var newPublishedBy = publication.GetObjectPublishedBy(); return(publication.SetObjectPublishedBy(newPublishedByFactory.Invoke(newPublishedBy))); }
public static async ValueTask <object> SetObjectPublishedByAsync(this IObjectPublication publication, Func <object, object> newPublishedByFactory, CancellationToken cancellationToken = default) { publication.NotNull(nameof(publication)); newPublishedByFactory.NotNull(nameof(newPublishedByFactory)); var newPublishedBy = await publication.GetObjectPublishedByAsync(cancellationToken).ConfigureAwait(); return(await publication.SetObjectPublishedByAsync(newPublishedByFactory.Invoke(newPublishedBy), cancellationToken) .ConfigureAwait()); }