Imports MySql.Data.MySqlClient Public Class Client Private m_Name As String Public ReadOnly Property Name As String Get Return m_Name End Get End Property Private m_Email As String Public ReadOnly Property Email As String Get Return m_Email End Get End Property Private m_ResellerID As Integer Public ReadOnly Property ResellerID As Integer Get Return m_ResellerID End Get End Property Private m_ClientID As Integer Public ReadOnly Property ClientID As Integer Get Return m_ClientID End Get End Property Sub New(Name As String, ResellerID As Integer, ClientID As Integer, Email As String) m_Name = Name m_ResellerID = ResellerID m_ClientID = ClientID m_Email = Email End Sub Sub New(ClientReader As MySqlDataReader) m_Name = CType(ClientReader(DB_NAME), String) m_ResellerID = CInt(ClientReader(DB_RESELLERID)) m_ClientID = CInt(ClientReader(DB_CLIENTID)) m_Email = CType(ClientReader(DB_EMAIL), String) End Sub End Class Public Class Key Private m_Number As Integer Public ReadOnly Property Number As Integer Get Return m_Number End Get End Property Private m_ClientID As Integer Public ReadOnly Property ClientID As Integer Get Return m_ClientID End Get End Property Private m_IsDongle As Integer Public ReadOnly Property IsDongle As Integer Get Return m_IsDongle End Get End Property Private m_LockID As String Public ReadOnly Property LockID As String Get Return m_LockID End Get End Property Public Enum KeyState Consegnata = 0 InDeposito = 1 InDepositoEgt = 2 Guasta = 3 Interna = 4 InternaEgt = 5 InDepositoTrial = 6 ANY = 7 End Enum Private m_State As KeyState Public ReadOnly Property State As KeyState Get Return m_State End Get End Property Private m_KeyDate As Date Public ReadOnly Property KeyDate As Date Get Return m_KeyDate End Get End Property Private m_Note As String Public ReadOnly Property Note As String Get Return m_Note End Get End Property Private m_Seriale As String Public ReadOnly Property Seriale As String Get Return m_Seriale End Get End Property Sub New(Number As Integer, ClientID As Integer, IsDongle As Integer, LockID As String, State As KeyState, KeyDate As Date, Note As String, Seriale As String) m_Number = Number m_ClientID = ClientID m_IsDongle = IsDongle m_LockID = LockID m_State = State m_KeyDate = KeyDate m_Note = Note m_Seriale = Seriale End Sub Sub New(KeyReader As MySqlDataReader) m_Number = CInt(KeyReader(DB_NUMBER)) If Not KeyReader(DB_CLIENTID).Equals(DBNull.Value) Then m_ClientID = CInt(KeyReader(DB_CLIENTID)) End If m_IsDongle = CInt(KeyReader(DB_ISDONGLE)) m_LockID = CType(KeyReader(DB_LOCKID), String) m_State = DirectCast([Enum].Parse(GetType(KeyState), KeyReader(DB_STATE)), KeyState) m_KeyDate = CDate(KeyReader(DB_DATE)) If Not KeyReader(DB_NOTE).Equals(DBNull.Value) Then m_Note = CType(KeyReader(DB_NOTE), String) End If If Not KeyReader(DB_SERIALE).Equals(DBNull.Value) Then m_Seriale = CType(KeyReader(DB_SERIALE), String) End If End Sub End Class Public Class Licence Private m_ProductID As Integer Public ReadOnly Property ProductID As Integer Get Return m_ProductID End Get End Property Private m_ProductVersion As String Public ReadOnly Property ProductVersion As String Get Return m_ProductVersion End Get End Property Private m_ProductLevel As Integer Public ReadOnly Property ProductLevel As Integer Get Return m_ProductLevel End Get End Property Private m_ProductDeadline As Date Public ReadOnly Property ProductDeadline As Date Get Return m_ProductDeadline End Get End Property Private m_Option1 As Integer Public ReadOnly Property Option1 As Integer Get Return m_Option1 End Get End Property Private m_Option2 As Integer Public ReadOnly Property Option2 As Integer Get Return m_Option2 End Get End Property Private m_OptionDeadline As Date Public ReadOnly Property OptionDeadline As Date Get Return m_OptionDeadline End Get End Property Private m_LockID As String Public ReadOnly Property Number As String Get Return m_LockID End Get End Property Private m_File As String Public ReadOnly Property File As String Get Return m_File End Get End Property Private m_LicenceID As String Public ReadOnly Property LicenceID As String Get Return m_LicenceID End Get End Property Private m_LicenseDate As Date Public ReadOnly Property LicenseDate As Date Get Return m_LicenseDate End Get End Property Public ReadOnly Property ExpirationDate As Date Get If ProductVersion.Length > 3 Then ' Es. se ProductVersion = 2402 la licenza scade il 01/02/2023, dove 2023 è 24 + 1999 Dim nYear As Integer = CInt(ProductVersion.Substring(0, 2)) + 1999 Dim nMonth As Integer = CInt(ProductVersion.Substring(2, 2)) Return New Date(nYear, nMonth, 1) End If Return Nothing End Get End Property Private m_LicFile As String Public ReadOnly Property LicFile As String Get Return m_LicFile End Get End Property Private m_Note As String Public ReadOnly Property Note As String Get Return m_Note End Get End Property Sub New(ProductID As Integer, ProductVersion As String, ProductLevel As Integer, ProductDeadline As Date, Option1 As Integer, Option2 As Integer, OptionDeadline As Date, LockID As String, File As String, LicenceID As String, LicenseDate As Date, LicFile As String, Note As String) m_ProductID = ProductID m_ProductVersion = ProductVersion m_ProductLevel = ProductLevel m_ProductDeadline = ProductDeadline m_Option1 = Option1 m_Option2 = Option2 m_OptionDeadline = OptionDeadline m_LockID = LockID m_File = File m_LicenceID = LicenceID m_LicenseDate = LicenseDate m_LicFile = LicFile m_Note = Note End Sub Sub New(LicenceReader As MySqlDataReader) m_ProductID = CInt(LicenceReader(DB_PRODUCTID)) m_ProductVersion = CType(LicenceReader(DB_PRODUCTVERSION), String) m_ProductLevel = CInt(LicenceReader(DB_PRODUCTLEVEL)) m_ProductDeadline = CDate(LicenceReader(DB_PRODUCTDEADLINE)) m_Option1 = CInt(LicenceReader(DB_OPTION1)) m_Option2 = CInt(LicenceReader(DB_OPTION2)) m_OptionDeadline = CDate(LicenceReader(DB_OPTIONDEADLINE)) m_LockID = CType(LicenceReader(DB_LOCKID), String) m_File = CType(LicenceReader(DB_FILE), String) m_LicenceID = CType(LicenceReader(DB_LICENCEID), String) m_LicenseDate = CDate(LicenceReader(DB_DATE)) If Not LicenceReader(DB_LICFILE).Equals(DBNull.Value) Then m_LicFile = CType(LicenceReader(DB_LICFILE), String) End If If Not LicenceReader(DB_NOTE).Equals(DBNull.Value) Then m_Note = CType(LicenceReader(DB_NOTE), String) End If End Sub End Class Public Class Product Private m_ProductName As String Public ReadOnly Property ProductName As String Get Return m_ProductName End Get End Property Private m_ProductID As Integer Public ReadOnly Property ProductID As Integer Get Return m_ProductID End Get End Property Private m_ProductNumber As Integer Public ReadOnly Property ProductNumber As Integer Get Return m_ProductNumber End Get End Property Private m_ProductOption1 As Integer Public ReadOnly Property ProductOption1 As Integer Get Return m_ProductOption1 End Get End Property Private m_ProductOption2 As Integer Public ReadOnly Property ProductOption2 As Integer Get Return m_ProductOption2 End Get End Property Sub New(ProductName As String, ProductID As Integer, ProductNumber As Integer, ProductOption1 As Integer, ProductOption2 As Integer) m_ProductName = ProductName m_ProductID = ProductID m_ProductNumber = ProductNumber m_ProductOption1 = ProductOption1 m_ProductOption2 = ProductOption2 End Sub Sub New(ProductReader As MySqlDataReader) m_ProductName = CType(ProductReader(DB_PRODUCTNAME), String) m_ProductID = CInt(ProductReader(DB_PRODUCTID)) m_ProductNumber = CInt(ProductReader(DB_PRODUCTNUMBER)) m_ProductOption1 = CInt(ProductReader(DB_PRODUCTOPTION1)) m_ProductOption2 = CInt(ProductReader(DB_PRODUCTOPTION2)) End Sub End Class Public Class Version Private m_VersionID As Integer Public ReadOnly Property VersionID As Integer Get Return m_VersionID End Get End Property Private m_ProductID As Integer Public ReadOnly Property ProductID As Integer Get Return m_ProductID End Get End Property Private m_VersionNumber As Integer Public ReadOnly Property VersionNumber As Integer Get Return m_VersionNumber End Get End Property Sub New(VersionID As String, ProductID As String, VersionNumber As Integer) m_VersionID = CInt(VersionID) m_ProductID = CInt(ProductID) m_VersionNumber = VersionNumber End Sub Sub New(VersionReader As MySqlDataReader) m_VersionID = CInt(VersionReader(DB_VERSIONID)) m_ProductID = CInt(VersionReader(DB_PRODUCTID)) m_VersionNumber = CInt(VersionReader(DB_VERSIONNUMBER)) End Sub End Class Public Class Reseller Private m_ResellerName As String Public ReadOnly Property ResellerName As String Get Return m_ResellerName End Get End Property Private m_ResellerID As Integer Public ReadOnly Property ResellerID As Integer Get Return m_ResellerID End Get End Property Private m_Note As String Public ReadOnly Property Note As String Get Return m_Note End Get End Property Sub New(ResellerName As String, ResellerID As Integer, Note As String) m_ResellerName = ResellerName m_ResellerID = ResellerID m_Note = Note End Sub Sub New(ResellerReader As MySqlDataReader) m_ResellerName = CType(ResellerReader(DB_RESELLERNAME), String) m_ResellerID = CInt(ResellerReader(DB_RESELLERID)) If (Not ResellerReader(DB_NOTE).Equals(DBNull.Value)) Then m_Note = CType(ResellerReader(DB_NOTE), String) Else m_Note = Nothing End If End Sub End Class