DotNetWorkQueue.Transport.Redis.Basic.RedisQueueSend.SendAsync C# (CSharp) Method

SendAsync() public method

Sends the message async.
public SendAsync ( IMessage messageToSend, IAdditionalMessageData data ) : Task
messageToSend IMessage The message to send.
data IAdditionalMessageData The data.
return Task
        public async Task<IQueueOutputMessage> SendAsync(IMessage messageToSend, IAdditionalMessageData data)
        {
            try
            {
                //TODO - temp - fail all messages with routes, as they are not supported yet
                if (!string.IsNullOrEmpty(data.Route))
                {
                    throw new NotImplementedException("Redis transport does not yet support routes");
                }

                //correlationID must be stored as a message header
                messageToSend.SetHeader(_headers.CorelationId, new RedisQueueCorrelationIdSerialized((Guid)data.CorrelationId.Id.Value));
                var messageId = await _sendMessageAsync.Handle(new SendMessageCommand(messageToSend, data)).ConfigureAwait(false);
                if (messageId == "JobAlreadyExists")
                {
                    return new QueueOutputMessage(_sentMessageFactory.Create(null, data.CorrelationId), new DotNetWorkQueueException("Failed to enqueue a record. The job already exists"));
                }
                return new QueueOutputMessage(_sentMessageFactory.Create(new RedisQueueId(messageId), data.CorrelationId));
            }
            catch (Exception exception)
            {
                return new QueueOutputMessage(_sentMessageFactory.Create(null, data.CorrelationId), exception);
            }
        }

Same methods

RedisQueueSend::SendAsync ( IAdditionalMessageData>.List messages ) : Task