/// <summary> /// Sends a message to a queue named like the service. /// </summary> public async Task SendAsync <T>(T input, string serviceName, TimeSpan?initialVisibilityDelay = null) where T : class { var newContext = new AFBusMessageContext(); newContext.MessageID = Guid.NewGuid(); newContext.TransactionID = Context.TransactionID ?? Guid.NewGuid(); newContext.BodyType = typeof(T).AssemblyQualifiedName; newContext.BodyInFile = false; newContext.Destination = serviceName; newContext.SenderServiceName = Context.ActualServiceName; if (initialVisibilityDelay != null) { newContext.MessageDelayedTime = initialVisibilityDelay; newContext.MessageFinalWakeUpTimeStamp = DateTime.UtcNow + initialVisibilityDelay; } else { newContext.MessageDelayedTime = null; newContext.MessageFinalWakeUpTimeStamp = null; } await sender.SendMessageAsync(input, serviceName, newContext).ConfigureAwait(false); }
/// <summary> /// Sends a message to a queue named like the service. /// </summary> public static async Task SendAsync <T>(T input, string serviceName, TimeSpan?initialVisibilityDelay = null, ISerializeMessages serializer = null, ISendMessages sender = null) where T : class { serializer = serializer ?? new JSONSerializer(); sender = sender ?? new AzureStorageQueueSendTransport(serializer); var context = new AFBusMessageContext { MessageID = Guid.NewGuid(), TransactionID = Guid.NewGuid(), BodyType = typeof(T).AssemblyQualifiedName }; if (initialVisibilityDelay != null) { context.MessageDelayedTime = initialVisibilityDelay.Value; context.MessageFinalWakeUpTimeStamp = DateTime.UtcNow + initialVisibilityDelay; } await sender.SendMessageAsync(input, serviceName, context).ConfigureAwait(false); }