Modules/Modules.License/LicenseFile.vb
2019-02-04 16:27:49 +01:00

52 lines
1.5 KiB
VB.net

Imports System.IO
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 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 Sub SaveFile(License As LicenseSchema, Optional FileName As String = LICENSE_FILENAME)
Try
Dim oSerializer = GetSerializer()
Using oStream = New FileStream(FileName, FileMode.Create, FileAccess.Write)
oSerializer.Serialize(oStream, License)
oStream.Flush()
End Using
Catch ex As Exception
_Logger.Error(ex)
Throw ex
End Try
End Sub
End Class