/// <summary> /// Configures an option to delay the delivery of a message until the specified time has elapsed. /// </summary> /// <param name="options">The extended <see cref="PublishOptions"/>.</param> /// <param name="delay">The <see cref="TimeSpan">amount of time</see> to delay delivery by.</param> /// <returns>The original <paramref name="options"/> instance.</returns> public static PublishOptions DelayDeliveryBy(this PublishOptions options, TimeSpan delay) { Arg.NotNull(options, nameof(options)); Contract.Ensures(Contract.Result <PublishOptions>() != null); options.Add(new DelayDeliveryBy(delay)); return(options); }
/// <summary> /// Configures an option to delay the delivery of a message until the specified date and time. /// </summary> /// <param name="options">The extended <see cref="PublishOptions"/>.</param> /// <param name="when">The <see cref="DateTimeOffset">date and time</see> when the message should be delivered.</param> /// <returns>The original <paramref name="options"/> instance.</returns> public static PublishOptions DoNotDeliverBefore(this PublishOptions options, DateTimeOffset when) { Arg.NotNull(options, nameof(options)); Contract.Ensures(Contract.Result <PublishOptions>() != null); options.Add(new DoNotDeliverBefore(when.UtcDateTime)); return(options); }