Initial population
This commit is contained in:
487
clsHymn.vb
Normal file
487
clsHymn.vb
Normal file
@@ -0,0 +1,487 @@
|
||||
Imports System.Data
|
||||
Imports System.Text
|
||||
Imports System.Windows.Forms
|
||||
Imports System.Xml
|
||||
|
||||
Public Class clsHymn
|
||||
Implements ICloneable
|
||||
|
||||
Private mguidHymnID As Guid
|
||||
Private m_objHymnal As clsHymnal
|
||||
Private m_intHymnNumber As Integer
|
||||
Private m_strHymnName As String
|
||||
Private m_objHymnTuneName As clsHymnTuneName
|
||||
Private m_blnObjectAlreadyPersisted As Boolean
|
||||
|
||||
Public Sub New()
|
||||
mguidHymnID = Guid.NewGuid
|
||||
m_objHymnal = Nothing
|
||||
m_intHymnNumber = 0
|
||||
m_strHymnName = ""
|
||||
m_objHymnTuneName = Nothing
|
||||
m_blnObjectAlreadyPersisted = False
|
||||
End Sub
|
||||
|
||||
Public Sub New(ByVal objHymnal As clsHymnal, ByVal intHymnNumber As Integer, ByVal strHymnName As String, ByVal objHymnTuneName As clsHymnTuneName)
|
||||
mguidHymnID = Guid.NewGuid
|
||||
m_objHymnal = objHymnal
|
||||
m_intHymnNumber = intHymnNumber
|
||||
m_strHymnName = strHymnName
|
||||
m_objHymnTuneName = objHymnTuneName
|
||||
m_blnObjectAlreadyPersisted = False
|
||||
End Sub
|
||||
|
||||
Public Sub New(ByVal guidHymnID As Guid)
|
||||
mguidHymnID = guidHymnID
|
||||
|
||||
Dim ldbcmdCommand As New SqlClient.SqlCommand
|
||||
ldbcmdCommand.CommandText = "sel_hymn"
|
||||
|
||||
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnID As New SqlClient.SqlParameter
|
||||
prmHymnID.ParameterName = "@hymn_id"
|
||||
prmHymnID.SqlDbType = SqlDbType.UniqueIdentifier
|
||||
'prmHymnID.Size = 5
|
||||
prmHymnID.Value = guidHymnID
|
||||
ldbcmdCommand.Parameters.Add(prmHymnID)
|
||||
|
||||
Dim ldbdsHymns As DataSet = MyGlobals.g_objDatabaseLayer.ExecuteDataSet(ldbcmdCommand)
|
||||
|
||||
If ldbdsHymns.Tables(0).Rows.Count > 0 Then
|
||||
Dim ldbrwRow As DataRow
|
||||
ldbrwRow = ldbdsHymns.Tables(0).Rows(0)
|
||||
PopulateFromDBRow(ldbrwRow)
|
||||
|
||||
m_blnObjectAlreadyPersisted = True
|
||||
MyGlobals.AddCachedObject(Me, Me.HymnID.ToString)
|
||||
End If
|
||||
ldbdsHymns.Clear()
|
||||
End Sub
|
||||
|
||||
Public Sub New(ByVal ldbrwRow As DataRow)
|
||||
PopulateFromDBRow(ldbrwRow)
|
||||
|
||||
m_blnObjectAlreadyPersisted = True
|
||||
MyGlobals.AddCachedObject(Me, Me.HymnID.ToString)
|
||||
End Sub
|
||||
|
||||
Private Sub PopulateFromDBRow(ByVal ldbrwRow As DataRow)
|
||||
mguidHymnID = CType(ldbrwRow.Item("hymn_id"), Guid)
|
||||
|
||||
If ldbrwRow.IsNull("hymnal_id") Then
|
||||
m_objHymnal = Nothing
|
||||
Else
|
||||
Dim guidHymnalID As Guid = CType(ldbrwRow.Item("hymnal_id"), Guid)
|
||||
If MyGlobals.CachedObjectExists(guidHymnalID.ToString) Then
|
||||
m_objHymnal = CType(MyGlobals.CachedObjectRetrieve(guidHymnalID.ToString), clsHymnal)
|
||||
Else
|
||||
m_objHymnal = New clsHymnal(guidHymnalID)
|
||||
End If
|
||||
End If
|
||||
|
||||
m_intHymnNumber = CType(ldbrwRow.Item("hymn_number"), Integer)
|
||||
m_strHymnName = CType(ldbrwRow.Item("hymn_name"), String)
|
||||
|
||||
If ldbrwRow.IsNull("hymn_tune_name_id") Then
|
||||
m_objHymnTuneName = Nothing
|
||||
Else
|
||||
Dim guidHymnTuneNameID As Guid = CType(ldbrwRow.Item("hymn_tune_name_id"), Guid)
|
||||
If MyGlobals.CachedObjectExists(guidHymnTuneNameID.ToString) Then
|
||||
m_objHymnTuneName = CType(MyGlobals.CachedObjectRetrieve(guidHymnTuneNameID.ToString), clsHymnTuneName)
|
||||
Else
|
||||
m_objHymnTuneName = New clsHymnTuneName(guidHymnTuneNameID)
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Function Delete() As Boolean
|
||||
Try
|
||||
MyGlobals.RemoveCachedObject(Me.HymnID.ToString)
|
||||
|
||||
Dim ldbcmdCommand As New SqlClient.SqlCommand
|
||||
ldbcmdCommand.CommandText = "del_hymn"
|
||||
|
||||
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnID As New SqlClient.SqlParameter
|
||||
prmHymnID.ParameterName = "@hymn_id"
|
||||
prmHymnID.SqlDbType = SqlDbType.UniqueIdentifier
|
||||
'prmHymnID.Size = 5
|
||||
prmHymnID.Value = mguidHymnID
|
||||
ldbcmdCommand.Parameters.Add(prmHymnID)
|
||||
|
||||
Dim lintRowsAffected As Integer = MyGlobals.g_objDatabaseLayer.ExecuteNonQuery(ldbcmdCommand)
|
||||
If lintRowsAffected > 0 Then
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
Catch
|
||||
Return False
|
||||
End Try
|
||||
|
||||
End Function
|
||||
|
||||
Public Function Save() As Boolean
|
||||
Try
|
||||
If Not m_objHymnal Is Nothing Then
|
||||
If Not m_objHymnal.ItemAlreadyPersisted Then
|
||||
m_objHymnal.Save()
|
||||
End If
|
||||
End If
|
||||
If Not m_objHymnTuneName Is Nothing Then
|
||||
If Not m_objHymnTuneName.ItemAlreadyPersisted Then
|
||||
m_objHymnTuneName.Save()
|
||||
End If
|
||||
End If
|
||||
|
||||
MyGlobals.AddCachedObject(Me, Me.HymnID.ToString)
|
||||
|
||||
If m_blnObjectAlreadyPersisted Then
|
||||
Dim ldbcmdCommand As New SqlClient.SqlCommand
|
||||
ldbcmdCommand.CommandText = "upd_hymn"
|
||||
|
||||
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnID As New SqlClient.SqlParameter
|
||||
prmHymnID.ParameterName = "@hymn_id"
|
||||
prmHymnID.SqlDbType = SqlDbType.UniqueIdentifier
|
||||
'prmHymnalID.Size = 5
|
||||
prmHymnID.Value = mguidHymnID
|
||||
ldbcmdCommand.Parameters.Add(prmHymnID)
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnalID As New SqlClient.SqlParameter
|
||||
prmHymnalID.ParameterName = "@hymnal_id"
|
||||
prmHymnalID.SqlDbType = SqlDbType.UniqueIdentifier
|
||||
'prmHymnalID.Size = 5
|
||||
If m_objHymnal Is Nothing Then
|
||||
prmHymnalID.Value = DBNull.Value
|
||||
Else
|
||||
prmHymnalID.Value = m_objHymnal.HymnalID
|
||||
End If
|
||||
ldbcmdCommand.Parameters.Add(prmHymnalID)
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnNumber As New SqlClient.SqlParameter
|
||||
prmHymnNumber.ParameterName = "@hymn_number"
|
||||
prmHymnNumber.SqlDbType = SqlDbType.Int
|
||||
'prmHymnNumber.Size = 5
|
||||
prmHymnNumber.Value = m_intHymnNumber
|
||||
ldbcmdCommand.Parameters.Add(prmHymnNumber)
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnName As New SqlClient.SqlParameter
|
||||
prmHymnName.ParameterName = "@hymn_name"
|
||||
prmHymnName.SqlDbType = SqlDbType.VarChar
|
||||
prmHymnName.Size = MyGlobals.HYMN_NAME_SIZE
|
||||
prmHymnName.Value = m_strHymnName
|
||||
ldbcmdCommand.Parameters.Add(prmHymnName)
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnTuneNameID As New SqlClient.SqlParameter
|
||||
prmHymnTuneNameID.ParameterName = "@hymn_tune_name_id"
|
||||
prmHymnTuneNameID.SqlDbType = SqlDbType.UniqueIdentifier
|
||||
'prmHymnTuneNameID.Size = 5
|
||||
If m_objHymnTuneName Is Nothing Then
|
||||
prmHymnTuneNameID.Value = DBNull.Value
|
||||
Else
|
||||
prmHymnTuneNameID.Value = m_objHymnTuneName.HymnTuneNameID
|
||||
End If
|
||||
ldbcmdCommand.Parameters.Add(prmHymnTuneNameID)
|
||||
|
||||
Dim lintRowsAffected As Integer = MyGlobals.g_objDatabaseLayer.ExecuteNonQuery(ldbcmdCommand)
|
||||
If lintRowsAffected > 0 Then
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
Dim ldbcmdCommand As New SqlClient.SqlCommand
|
||||
ldbcmdCommand.CommandText = "ins_hymn"
|
||||
|
||||
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnID As New SqlClient.SqlParameter
|
||||
prmHymnID.ParameterName = "@hymn_id"
|
||||
prmHymnID.SqlDbType = SqlDbType.UniqueIdentifier
|
||||
'prmHymnalID.Size = 5
|
||||
prmHymnID.Value = mguidHymnID
|
||||
ldbcmdCommand.Parameters.Add(prmHymnID)
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnalID As New SqlClient.SqlParameter
|
||||
prmHymnalID.ParameterName = "@hymnal_id"
|
||||
prmHymnalID.SqlDbType = SqlDbType.UniqueIdentifier
|
||||
'prmHymnalID.Size = 5
|
||||
If m_objHymnal Is Nothing Then
|
||||
prmHymnalID.Value = DBNull.Value
|
||||
Else
|
||||
prmHymnalID.Value = m_objHymnal.HymnalID
|
||||
End If
|
||||
ldbcmdCommand.Parameters.Add(prmHymnalID)
|
||||
Dim prmHymnNumber As New SqlClient.SqlParameter
|
||||
prmHymnNumber.ParameterName = "@hymn_number"
|
||||
prmHymnNumber.SqlDbType = SqlDbType.Int
|
||||
'prmHymnNumber.Size = 5
|
||||
prmHymnNumber.Value = m_intHymnNumber
|
||||
ldbcmdCommand.Parameters.Add(prmHymnNumber)
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnName As New SqlClient.SqlParameter
|
||||
prmHymnName.ParameterName = "@hymn_name"
|
||||
prmHymnName.SqlDbType = SqlDbType.VarChar
|
||||
prmHymnName.Size = MyGlobals.HYMN_NAME_SIZE
|
||||
prmHymnName.Value = m_strHymnName
|
||||
ldbcmdCommand.Parameters.Add(prmHymnName)
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnTuneNameID As New SqlClient.SqlParameter
|
||||
prmHymnTuneNameID.ParameterName = "@hymn_tune_name_id"
|
||||
prmHymnTuneNameID.SqlDbType = SqlDbType.UniqueIdentifier
|
||||
'prmHymnTuneNameID.Size = 5
|
||||
If m_objHymnTuneName Is Nothing Then
|
||||
prmHymnTuneNameID.Value = DBNull.Value
|
||||
Else
|
||||
prmHymnTuneNameID.Value = m_objHymnTuneName.HymnTuneNameID
|
||||
End If
|
||||
ldbcmdCommand.Parameters.Add(prmHymnTuneNameID)
|
||||
|
||||
Dim lintRowsAffected As Integer = MyGlobals.g_objDatabaseLayer.ExecuteNonQuery(ldbcmdCommand)
|
||||
If lintRowsAffected > 0 Then
|
||||
m_blnObjectAlreadyPersisted = True
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
Catch e As SqlClient.SqlException
|
||||
MessageBox.Show(e.Message)
|
||||
Return False
|
||||
Catch
|
||||
Return False
|
||||
End Try
|
||||
|
||||
End Function
|
||||
|
||||
Public Property HymnID() As Guid
|
||||
Get
|
||||
Return mguidHymnID
|
||||
End Get
|
||||
Set(ByVal Value As Guid)
|
||||
mguidHymnID = Value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property Hymnal() As clsHymnal
|
||||
Get
|
||||
Return m_objHymnal
|
||||
End Get
|
||||
Set(ByVal Value As clsHymnal)
|
||||
m_objHymnal = Value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property HymnNumber() As Integer
|
||||
Get
|
||||
Return m_intHymnNumber
|
||||
End Get
|
||||
Set(ByVal Value As Integer)
|
||||
m_intHymnNumber = Value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property HymnNumberAsString() As String
|
||||
Get
|
||||
Return m_intHymnNumber.ToString
|
||||
End Get
|
||||
Set(ByVal Value As String)
|
||||
If Val(Value) > 0 Then
|
||||
m_intHymnNumber = CType(Value, Integer)
|
||||
Else
|
||||
m_intHymnNumber = 0
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property HymnName() As String
|
||||
Get
|
||||
Return m_strHymnName
|
||||
End Get
|
||||
Set(ByVal Value As String)
|
||||
m_strHymnName = Value.Trim
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property HymnTuneName() As clsHymnTuneName
|
||||
Get
|
||||
Return m_objHymnTuneName
|
||||
End Get
|
||||
Set(ByVal Value As clsHymnTuneName)
|
||||
m_objHymnTuneName = Value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property ItemAlreadyPersisted() As Boolean
|
||||
Get
|
||||
Return m_blnObjectAlreadyPersisted
|
||||
End Get
|
||||
Set(ByVal Value As Boolean)
|
||||
m_blnObjectAlreadyPersisted = Value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Function Clone() As Object Implements ICloneable.Clone
|
||||
Dim lobjReturnValue As New clsHymn
|
||||
lobjReturnValue.HymnID = Me.HymnID
|
||||
lobjReturnValue.Hymnal = Me.Hymnal
|
||||
lobjReturnValue.HymnNumber = Me.HymnNumber
|
||||
lobjReturnValue.HymnName = Me.HymnName
|
||||
lobjReturnValue.HymnTuneName = Me.HymnTuneName
|
||||
lobjReturnValue.ItemAlreadyPersisted = Me.ItemAlreadyPersisted
|
||||
|
||||
Return lobjReturnValue
|
||||
End Function
|
||||
|
||||
Public Function StateIsIdentical(ByVal lobjOtherHymn As clsHymn) As Boolean
|
||||
Dim blnResult As Boolean
|
||||
|
||||
If Me.HymnID.Equals(lobjOtherHymn.HymnID) _
|
||||
AndAlso Me.HymnNumber = lobjOtherHymn.HymnNumber _
|
||||
AndAlso Me.HymnName = lobjOtherHymn.HymnName Then
|
||||
blnResult = True
|
||||
|
||||
If Me.Hymnal Is Nothing Then
|
||||
If lobjOtherHymn.Hymnal Is Nothing Then
|
||||
'OK
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
If lobjOtherHymn.Hymnal Is Nothing Then
|
||||
Return False
|
||||
Else
|
||||
blnResult = Me.Hymnal.HymnalID.Equals(lobjOtherHymn.Hymnal.HymnalID)
|
||||
End If
|
||||
End If
|
||||
|
||||
If Not blnResult Then
|
||||
Return False
|
||||
End If
|
||||
|
||||
If Me.HymnTuneName Is Nothing Then
|
||||
If lobjOtherHymn.HymnTuneName Is Nothing Then
|
||||
'OK
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
If lobjOtherHymn.HymnTuneName Is Nothing Then
|
||||
Return False
|
||||
Else
|
||||
blnResult = Me.HymnTuneName.HymnTuneNameID.Equals(lobjOtherHymn.HymnTuneName.HymnTuneNameID)
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
|
||||
Return blnResult
|
||||
|
||||
End Function
|
||||
|
||||
Public Function Validate(ByRef lstrErrorString As String) As Boolean
|
||||
lstrErrorString = ""
|
||||
|
||||
If Me.Hymnal Is Nothing Then
|
||||
lstrErrorString = "Hymnal is required"
|
||||
Return False
|
||||
End If
|
||||
|
||||
If Me.HymnNumber = 0 Then
|
||||
lstrErrorString = "Hymn Number is required and must be numeric"
|
||||
Return False
|
||||
End If
|
||||
|
||||
If Me.HymnName.Length = 0 Then
|
||||
lstrErrorString = "Hymn Name is required"
|
||||
Return False
|
||||
End If
|
||||
|
||||
If Me.HymnTuneName Is Nothing Then
|
||||
lstrErrorString = "HymnTuneName is required"
|
||||
Return False
|
||||
End If
|
||||
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Public Function OKToDelete(ByRef lstrReferencedByString As String) As Boolean
|
||||
lstrReferencedByString = ""
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Public Overrides Function ToString() As String
|
||||
Dim strReturnString As New StringBuilder
|
||||
|
||||
If m_objHymnal Is Nothing Then
|
||||
'strReturnString.Append(MyGlobals.COLLECTION_STRING)
|
||||
Else
|
||||
strReturnString.Append(m_objHymnal.HymnalAbbreviation)
|
||||
End If
|
||||
|
||||
strReturnString.Append(m_intHymnNumber)
|
||||
strReturnString.Append(" - ")
|
||||
strReturnString.Append(m_strHymnName)
|
||||
|
||||
Return strReturnString.ToString
|
||||
End Function
|
||||
|
||||
Public Sub WriteXML(ByRef objXMLWriter As XmlTextWriter)
|
||||
objXMLWriter.WriteStartElement("Hymn")
|
||||
|
||||
objXMLWriter.WriteElementString("HymnID", Me.HymnID.ToString)
|
||||
objXMLWriter.WriteElementString("HymnName", Me.HymnName)
|
||||
objXMLWriter.WriteElementString("HymnNumber", Me.HymnNumberAsString)
|
||||
objXMLWriter.WriteElementString("HymnalID", Me.Hymnal.HymnalID.ToString)
|
||||
Me.Hymnal.WriteXML(objXMLWriter)
|
||||
If Me.HymnTuneName Is Nothing Then
|
||||
objXMLWriter.WriteElementString("HymnTuneNameID", "")
|
||||
Else
|
||||
objXMLWriter.WriteElementString("HymnTuneNameID", Me.HymnTuneName.HymnTuneNameID.ToString)
|
||||
Me.HymnTuneName.WriteXML(objXMLWriter)
|
||||
End If
|
||||
|
||||
objXMLWriter.WriteEndElement()
|
||||
End Sub
|
||||
|
||||
Public Shared Function GetAllHymns() As System.Collections.Generic.List(Of clsHymn)
|
||||
'Preload to cache
|
||||
clsHymnTuneName.AddAllHymnTuneNamesToCache()
|
||||
clsHymnal.AddAllHymnalsToCache()
|
||||
|
||||
Dim lguidHymnID As Guid
|
||||
Dim ldbcmdCommand As New SqlClient.SqlCommand
|
||||
Dim lobjHymn As clsHymn
|
||||
Dim lcolHymns As New System.Collections.Generic.List(Of clsHymn)
|
||||
|
||||
ldbcmdCommand.CommandText = "sel_hymn_all"
|
||||
|
||||
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
||||
|
||||
Dim ldbdsHymns As DataSet = MyGlobals.g_objDatabaseLayer.ExecuteDataSet(ldbcmdCommand)
|
||||
|
||||
If ldbdsHymns.Tables(0).Rows.Count > 0 Then
|
||||
Dim ldbrwRow As DataRow
|
||||
For Each ldbrwRow In ldbdsHymns.Tables(0).Rows
|
||||
lguidHymnID = CType(ldbrwRow.Item("hymn_id"), Guid)
|
||||
|
||||
If MyGlobals.CachedObjectExists(lguidHymnID.ToString) Then
|
||||
lobjHymn = CType(MyGlobals.CachedObjectRetrieve(lguidHymnID.ToString), clsHymn)
|
||||
Else
|
||||
'lobjHymn = New clsHymn(lguidHymnID)
|
||||
lobjHymn = New clsHymn(ldbrwRow)
|
||||
End If
|
||||
lcolHymns.Add(lobjHymn)
|
||||
Next
|
||||
End If
|
||||
ldbdsHymns.Clear()
|
||||
|
||||
Return lcolHymns
|
||||
End Function
|
||||
|
||||
End Class
|
||||
Reference in New Issue
Block a user