Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MessageQueueWriter : IMessageWriter
- {
- private readonly ISession session;
- private IDestination messageDestination;
- private string queueName;
- private IEndpoint queue;
- private IDropEndpoint dropEndpoint;
- public MessageQueueWriter(ISession session, IDropEndpoint dropEndpoint, string queueName) => (this.session, this.dropEndpoint, this.queueName) = (session, dropEndpoint, queueName);
- public void Configure(EndpointProperties queueProperties)
- {
- this.queue = ContextFactory.Instance.CreateQueue(this.queueName);
- this.session.Provision(queue, queueProperties, ProvisionFlag.IgnoreErrorIfEndpointAlreadyExists | ProvisionFlag.WaitForConfirm, null);
- this.messageDestination = queue as IDestination;
- }
- /// <summary>
- /// </summary>
- /// <param name="message"></param>
- /// <param name="mode"></param>
- /// <returns></returns>
- public MsgInfo SendMessage(IMessage message, MessageDeliveryMode mode = MessageDeliveryMode.Persistent)
- {
- message.Destination = this.messageDestination;
- message.DeliveryMode = mode;
- var msgInfo = new MsgInfo(message, 1);
- ReturnCode status = session.Send(message);
- return msgInfo;
- }
- public bool RemoveEndpoint(bool waitUntilComplete = true)
- {
- return this.dropEndpoint.RemoveEndpoint(this.session, this.queue, true);
- }
- }
Add Comment
Please, Sign In to add comment