static async Task <ScheduledMessage> Schedule(ConsumeContext context, DateTime scheduledTime, object message, Type messageType, ScheduleMessageContextPipe pipe, CancellationToken cancellationToken) { await context.Publish(message, messageType, pipe, cancellationToken).ConfigureAwait(false); var destinationAddress = GetDestinationAddress(context, message); return(new ScheduledMessageHandle(pipe.ScheduledMessageId ?? NewId.NextGuid(), scheduledTime, destinationAddress)); }
static async Task <ScheduledMessage <T> > Schedule <T>(ConsumeContext context, DateTime scheduledTime, object values, ScheduleMessageContextPipe <T> pipe, CancellationToken cancellationToken) where T : class { var message = await MessageInitializerCache <T> .InitializeMessage(values, cancellationToken).ConfigureAwait(false); await context.Publish(message, pipe, cancellationToken).ConfigureAwait(false); var destinationAddress = GetDestinationAddress(context, message); return(new ScheduledMessageHandle <T>(pipe.ScheduledMessageId ?? NewId.NextGuid(), scheduledTime, destinationAddress, message)); }
static async Task <ScheduledMessage <T> > Schedule <T>(ConsumeContext context, DateTime scheduledTime, T message, ScheduleMessageContextPipe <T> pipe, CancellationToken cancellationToken) where T : class { await context.Publish(message, pipe, cancellationToken).ConfigureAwait(false); var destinationAddress = GetDestinationAddress <T>(context); return(new ScheduledMessageHandle <T>(pipe.ScheduledMessageId ?? NewId.NextGuid(), scheduledTime, destinationAddress, message)); }