public static object SetObjectStatusAsync(this IObjectState state, Func <object, object> newStatusFactory) { state.NotNull(nameof(state)); newStatusFactory.NotNull(nameof(newStatusFactory)); var newStatus = state.GetObjectStatus(); return(state.SetObjectStatus(newStatusFactory.Invoke(newStatus))); }
public static async ValueTask <object> SetObjectStatusAsync(this IObjectState state, Func <object, object> newStatusFactory, CancellationToken cancellationToken = default) { state.NotNull(nameof(state)); newStatusFactory.NotNull(nameof(newStatusFactory)); var newStatus = await state.GetObjectStatusAsync(cancellationToken).ConfigureAwait(); return(await state.SetObjectStatusAsync(newStatusFactory.Invoke(newStatus), cancellationToken) .ConfigureAwait()); }