Guest User

Untitled

a guest
Dec 16th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. public class MessageQueueWriter : IMessageWriter
  2. {
  3. private readonly ISession session;
  4. private IDestination messageDestination;
  5. private string queueName;
  6. private IEndpoint queue;
  7. private IDropEndpoint dropEndpoint;
  8.  
  9. public MessageQueueWriter(ISession session, IDropEndpoint dropEndpoint, string queueName) => (this.session, this.dropEndpoint, this.queueName) = (session, dropEndpoint, queueName);
  10.  
  11. public void Configure(EndpointProperties queueProperties)
  12. {
  13. this.queue = ContextFactory.Instance.CreateQueue(this.queueName);
  14. this.session.Provision(queue, queueProperties, ProvisionFlag.IgnoreErrorIfEndpointAlreadyExists | ProvisionFlag.WaitForConfirm, null);
  15. this.messageDestination = queue as IDestination;
  16. }
  17.  
  18. /// <summary>
  19. /// </summary>
  20. /// <param name="message"></param>
  21. /// <param name="mode"></param>
  22. /// <returns></returns>
  23. public MsgInfo SendMessage(IMessage message, MessageDeliveryMode mode = MessageDeliveryMode.Persistent)
  24. {
  25. message.Destination = this.messageDestination;
  26. message.DeliveryMode = mode;
  27. var msgInfo = new MsgInfo(message, 1);
  28. ReturnCode status = session.Send(message);
  29. return msgInfo;
  30. }
  31.  
  32. public bool RemoveEndpoint(bool waitUntilComplete = true)
  33. {
  34. return this.dropEndpoint.RemoveEndpoint(this.session, this.queue, true);
  35. }
  36. }
Add Comment
Please, Sign In to add comment