82 lines
2.5 KiB
VB.net
82 lines
2.5 KiB
VB.net
Imports System.IO
|
|
Imports System.Xml
|
|
Imports System.Xml.Serialization
|
|
Imports DigitalData.Modules.Logging
|
|
|
|
Public Class LicenseFile
|
|
Public Const LICENSE_FILENAME = "License.xml"
|
|
|
|
Public ReadOnly Path As String
|
|
Private _Logger As Logger
|
|
|
|
Public Sub New(LogConfig As LogConfig, Path As String)
|
|
Me.Path = Path
|
|
_Logger = LogConfig.GetLogger()
|
|
End Sub
|
|
|
|
Private Function GetSerializer() As XmlSerializer
|
|
Dim oSerializer As New XmlSerializer(GetType(LicenseSchema))
|
|
Return oSerializer
|
|
End Function
|
|
|
|
Public Function TestFileValid(Optional FileName As String = LICENSE_FILENAME) As Boolean
|
|
Try
|
|
Dim oSerializer = GetSerializer()
|
|
Dim oFilePath As String = IO.Path.Combine(Path, FileName)
|
|
|
|
Using oReader As New StreamReader(oFilePath),
|
|
oXmlReader = XmlReader.Create(oReader)
|
|
Return oSerializer.CanDeserialize(oXmlReader)
|
|
End Using
|
|
Catch ex As Exception
|
|
_Logger.Error(ex)
|
|
Throw ex
|
|
End Try
|
|
End Function
|
|
|
|
Public Function LoadFile(Optional FileName As String = LICENSE_FILENAME) As LicenseSchema
|
|
Try
|
|
Dim oSerializer = GetSerializer()
|
|
Dim oFilePath As String = IO.Path.Combine(Path, FileName)
|
|
Dim oLicense As LicenseSchema
|
|
|
|
Using oReader As New StreamReader(oFilePath)
|
|
oLicense = oSerializer.Deserialize(oReader)
|
|
End Using
|
|
|
|
Return oLicense
|
|
Catch ex As Exception
|
|
_Logger.Error(ex)
|
|
Throw ex
|
|
End Try
|
|
End Function
|
|
|
|
Public Function Serialize(License As LicenseSchema) As Byte()
|
|
Try
|
|
Dim oSerializer = GetSerializer()
|
|
|
|
Using oStream = New MemoryStream()
|
|
oSerializer.Serialize(oStream, License)
|
|
Return oStream.ToArray()
|
|
End Using
|
|
Catch ex As Exception
|
|
_Logger.Error(ex)
|
|
Throw ex
|
|
End Try
|
|
End Function
|
|
|
|
Public Sub SaveFile(License As LicenseSchema, Optional FileName As String = LICENSE_FILENAME)
|
|
Try
|
|
Dim oBytes = Serialize(License)
|
|
Dim oFilePath As String = IO.Path.Combine(Path, FileName)
|
|
|
|
Using oFileStream = New FileStream(oFilePath, FileMode.Create, FileAccess.Write)
|
|
oFileStream.Write(oBytes, 0, oBytes.Length)
|
|
End Using
|
|
Catch ex As Exception
|
|
_Logger.Error(ex)
|
|
Throw ex
|
|
End Try
|
|
End Sub
|
|
End Class
|