93 lines
4.0 KiB
VB.net
93 lines
4.0 KiB
VB.net
Imports Microsoft.VisualBasic
|
|
Imports System
|
|
Imports System.Linq
|
|
Imports System.Text
|
|
Imports System.ComponentModel
|
|
Imports System.Collections.Generic
|
|
Imports System.Xml
|
|
Imports RabbitMQ.Client
|
|
Imports System.Diagnostics
|
|
Imports System.Reflection
|
|
Imports System.Configuration
|
|
|
|
Public Module SISVersion
|
|
Public Sub SendSISVersion(_XML As System.Xml.XmlDocument, _BasicProperties As IBasicProperties)
|
|
Dim _ReplyTo As String = _BasicProperties.ReplyTo
|
|
Dim _RoutingKey As String = ""
|
|
Dim _Excahnge As String = ""
|
|
Dim _MessageBodyId As String = _XML.SelectSingleNode("JsonXML/id").InnerText.ToString
|
|
If _ReplyTo.Contains("@") Then
|
|
Dim _Data() As String = _ReplyTo.Split(New Char() {"@"})
|
|
_RoutingKey = _Data(0)
|
|
_Excahnge = _Data(1)
|
|
If String.IsNullOrEmpty(_Excahnge) Then
|
|
_Excahnge = ConfigurationManager.AppSettings("Exchange_Name")
|
|
End If
|
|
Else
|
|
_RoutingKey = _ReplyTo
|
|
_Excahnge = ConfigurationManager.AppSettings("Exchange_Name")
|
|
End If
|
|
|
|
Dim _factory As ConnectionFactory
|
|
Dim _connection As IConnection
|
|
Dim _channel As IModel
|
|
|
|
_factory = New ConnectionFactory
|
|
_factory.HostName = ConfigurationManager.AppSettings("Factory_HostName")
|
|
_factory.UserName = ConfigurationManager.AppSettings("Factory_UserName")
|
|
_factory.Password = ConfigurationManager.AppSettings("Factory_Password")
|
|
_factory.VirtualHost = ConfigurationManager.AppSettings("Factory_VirtualHost")
|
|
|
|
_connection = _factory.CreateConnection
|
|
_channel = _connection.CreateModel
|
|
|
|
Dim _IBasicProperties As IBasicProperties = _channel.CreateBasicProperties
|
|
|
|
Dim _UserId As String = System.Configuration.ConfigurationManager.AppSettings("Factory_UserName")
|
|
Dim _CorrelationId As String = _BasicProperties.CorrelationId
|
|
Dim uTime As Integer = (DateTime.UtcNow - New DateTime(1970, 1, 1, 0, 0, 0)).TotalSeconds
|
|
Dim _Expiration As String = "17200000"
|
|
Dim _MessageID As String = Guid.NewGuid.ToString
|
|
|
|
With _IBasicProperties
|
|
.UserId = _UserId
|
|
.Timestamp = New AmqpTimestamp(uTime)
|
|
.MessageId = _MessageID
|
|
.Headers = New Collections.Generic.Dictionary(Of String, Object)
|
|
.CorrelationId = _CorrelationId
|
|
.ContentType = "application/json"
|
|
.ContentEncoding = "UTF-8"
|
|
With .Headers
|
|
.Add("mq3c-message-type", "MQ3CMessage_JSON_RPC")
|
|
.Add("mq3clib-version", "1.0")
|
|
.Add("mq3clib-appname", "SISBusiness")
|
|
.Add("mq3clib-workername", "")
|
|
.Add("mq3clib-workerid", "")
|
|
.Add("mq3clib-environment", "testing/production")
|
|
.Add("mq3clib-appversion", "1.0 RC")
|
|
.Add("mq3clib-runtime", "")
|
|
.Add("mq3clib-uniquid", Guid.NewGuid.ToString)
|
|
End With
|
|
End With
|
|
|
|
Dim _MessageText As String = GetSISVersion(_MessageBodyId)
|
|
|
|
_channel.BasicPublish(_Excahnge, _RoutingKey, _IBasicProperties, StrToByteArray(_MessageText))
|
|
End Sub
|
|
Public Function GetSISVersion(_MessageBodyId As String) As String
|
|
Dim _Message As String
|
|
_Message = "{""jsonrpc"": ""2.0"",""id"": """ + _MessageBodyId
|
|
_Message += """,""result"": """
|
|
Dim myFileVersionInfo As FileVersionInfo = FileVersionInfo.GetVersionInfo([Assembly].GetExecutingAssembly().Location)
|
|
_Message += "ProductName: " + myFileVersionInfo.ProductName + "; "
|
|
_Message += "FileVersion: " + myFileVersionInfo.FileVersion + "; "
|
|
_Message += "ProductVersion: " + myFileVersionInfo.ProductVersion + "; "
|
|
_Message += "OSVersion: " + Environment.OSVersion.VersionString + "; "
|
|
_Message += "OSPlatform" + Environment.OSVersion.Platform.ToString + "; "
|
|
_Message += "OSServicePack: " + Environment.OSVersion.ServicePack + ";"
|
|
_Message += """,""MQ3CMessage_JSON_RPC"": {}}"
|
|
|
|
Return _Message
|
|
End Function
|
|
End Module
|