AipDbLoggingManager.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using AipGateway.Messaging.Models;
  2. using Experimental.System.Messaging;
  3. using System;
  4. namespace AipGateway.Messaging.DbLogging
  5. {
  6. public class AipDbLoggingManager
  7. {
  8. private MessageQueue _messageQueue;
  9. private int _errNo;
  10. private string _errMsg;
  11. public AipDbLoggingManager()
  12. {
  13. _errNo = 0;
  14. _errMsg = string.Empty;
  15. }
  16. private void SetError(int errNo, string errMsg)
  17. {
  18. _errNo = errNo;
  19. _errMsg = errMsg;
  20. }
  21. public bool InitializeQueue()
  22. {
  23. string queuePath = CommonConstants.QueueName;
  24. if (!MessageQueue.Exists(queuePath))
  25. {
  26. _messageQueue = MessageQueue.Create(queuePath);
  27. }
  28. else
  29. {
  30. _messageQueue = new MessageQueue(queuePath);
  31. }
  32. //_messageQueue.Formatter = new BinaryMessageFormatter();
  33. _messageQueue.Formatter = new XmlMessageFormatter(new Type[1]
  34. {
  35. typeof(PayloadBase)
  36. });
  37. return true;
  38. }
  39. public bool Send(PayloadBase payload)
  40. {
  41. if (payload != null)
  42. {
  43. if (payload.PayloadType == PayloadType.ApiCall)
  44. {
  45. var callLog = payload as ApiCallLog;
  46. using (var msg = new Message(payload))
  47. {
  48. msg.Label = "apicall";
  49. msg.Formatter = new XmlMessageFormatter(new Type[] { typeof(ApiCallLog) });
  50. _messageQueue.Send(msg);
  51. }
  52. }
  53. else if (payload.PayloadType == PayloadType.FileJob)
  54. {
  55. var filejob = payload as FileJobLog;
  56. using (var msg = new Message(filejob))
  57. {
  58. msg.Label = "filejob";
  59. msg.Formatter = new XmlMessageFormatter(new Type[] { typeof(FileJobLog) });
  60. _messageQueue.Send(msg);
  61. }
  62. }
  63. };
  64. //_messageQueue.Send(payload);
  65. return true;
  66. }
  67. }
  68. }