Initial population
This commit is contained in:
686
clsHymnTuneName.vb
Normal file
686
clsHymnTuneName.vb
Normal file
@@ -0,0 +1,686 @@
|
||||
Imports System.Data
|
||||
Imports System.Xml
|
||||
|
||||
Public Class clsHymnTuneName
|
||||
Implements ICloneable
|
||||
|
||||
Private mguidHymnTuneNameID As Guid
|
||||
Private mstrHymnTuneName As String
|
||||
Private mguidHymnTuneID As Guid
|
||||
Private m_OtherHymnTuneNamesForTune As SortedList
|
||||
Private m_blnObjectAlreadyPersisted As Boolean
|
||||
|
||||
Public Sub New()
|
||||
mguidHymnTuneNameID = Guid.NewGuid
|
||||
mstrHymnTuneName = ""
|
||||
mguidHymnTuneID = Guid.NewGuid
|
||||
m_OtherHymnTuneNamesForTune = New SortedList
|
||||
m_blnObjectAlreadyPersisted = False
|
||||
End Sub
|
||||
|
||||
Public Sub New(ByVal lstrHymnTuneName As String)
|
||||
Dim ldbcmdCommand As New SqlClient.SqlCommand
|
||||
ldbcmdCommand.CommandText = "sel_hymn_tune_name_by_name"
|
||||
|
||||
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnTuneName As New SqlClient.SqlParameter
|
||||
prmHymnTuneName.ParameterName = "@hymn_tune_name"
|
||||
prmHymnTuneName.SqlDbType = SqlDbType.VarChar
|
||||
prmHymnTuneName.Size = MyGlobals.HYMN_TUNE_NAME_SIZE
|
||||
prmHymnTuneName.Value = lstrHymnTuneName
|
||||
ldbcmdCommand.Parameters.Add(prmHymnTuneName)
|
||||
|
||||
Dim ldbdsHymnTuneNames As DataSet = MyGlobals.g_objDatabaseLayer.ExecuteDataSet(ldbcmdCommand)
|
||||
|
||||
If ldbdsHymnTuneNames.Tables(0).Rows.Count > 0 Then
|
||||
Dim ldbrwRow As DataRow
|
||||
ldbrwRow = ldbdsHymnTuneNames.Tables(0).Rows(0)
|
||||
|
||||
mguidHymnTuneNameID = CType(ldbrwRow.Item("hymn_tune_name_id"), Guid)
|
||||
mstrHymnTuneName = CType(ldbrwRow.Item("hymn_tune_name"), String)
|
||||
mguidHymnTuneID = CType(ldbrwRow.Item("hymn_tune_id"), Guid)
|
||||
|
||||
m_OtherHymnTuneNamesForTune = GetOtherTuneNamesForTune(mguidHymnTuneNameID)
|
||||
|
||||
ldbdsHymnTuneNames.Clear()
|
||||
m_blnObjectAlreadyPersisted = True
|
||||
Else
|
||||
ldbdsHymnTuneNames.Clear()
|
||||
mguidHymnTuneNameID = Guid.NewGuid
|
||||
mstrHymnTuneName = lstrHymnTuneName.Trim
|
||||
mguidHymnTuneID = Guid.NewGuid
|
||||
m_OtherHymnTuneNamesForTune = New SortedList
|
||||
m_blnObjectAlreadyPersisted = False
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Sub New(ByVal lguidHymnTuneNameID As Guid)
|
||||
LoadByHymnTuneNameId(lguidHymnTuneNameID, True)
|
||||
End Sub
|
||||
|
||||
Protected Sub New(ByVal lguidHymnTuneNameID As Guid, ByVal lblnLoadOtherTuneNamesForTune As Boolean)
|
||||
LoadByHymnTuneNameId(lguidHymnTuneNameID, lblnLoadOtherTuneNamesForTune)
|
||||
End Sub
|
||||
|
||||
Public Sub New(ByVal ldbrwRow As DataRow)
|
||||
PopulateFromDBRow(ldbrwRow, True)
|
||||
m_blnObjectAlreadyPersisted = True
|
||||
End Sub
|
||||
|
||||
Protected Sub New(ByVal ldbrwRow As DataRow, ByVal lblnLoadOtherTuneNamesForTune As Boolean)
|
||||
PopulateFromDBRow(ldbrwRow, lblnLoadOtherTuneNamesForTune)
|
||||
m_blnObjectAlreadyPersisted = True
|
||||
End Sub
|
||||
|
||||
Private Sub LoadByHymnTuneNameId(ByVal lguidHymnTuneNameID As Guid, ByVal lblnLoadOtherTuneNamesForTune As Boolean)
|
||||
mguidHymnTuneNameID = lguidHymnTuneNameID
|
||||
|
||||
Dim ldbcmdCommand As New SqlClient.SqlCommand
|
||||
ldbcmdCommand.CommandText = "sel_hymn_tune_name"
|
||||
|
||||
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
||||
' 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
|
||||
prmHymnTuneNameID.Value = lguidHymnTuneNameID
|
||||
ldbcmdCommand.Parameters.Add(prmHymnTuneNameID)
|
||||
|
||||
Dim ldbdsHymnTuneNames As DataSet = MyGlobals.g_objDatabaseLayer.ExecuteDataSet(ldbcmdCommand)
|
||||
|
||||
If ldbdsHymnTuneNames.Tables(0).Rows.Count > 0 Then
|
||||
Dim ldbrwRow As DataRow
|
||||
ldbrwRow = ldbdsHymnTuneNames.Tables(0).Rows(0)
|
||||
PopulateFromDBRow(ldbrwRow, lblnLoadOtherTuneNamesForTune)
|
||||
m_blnObjectAlreadyPersisted = True
|
||||
If lblnLoadOtherTuneNamesForTune Then
|
||||
MyGlobals.AddCachedObject(Me, Me.HymnTuneID.ToString)
|
||||
End If
|
||||
End If
|
||||
ldbdsHymnTuneNames.Clear()
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub PopulateFromDBRow(ByVal ldbrwRow As DataRow, ByVal lblnLoadOtherTuneNamesForTune As Boolean)
|
||||
mguidHymnTuneNameID = CType(ldbrwRow.Item("hymn_tune_name_id"), Guid)
|
||||
|
||||
mstrHymnTuneName = CType(ldbrwRow.Item("hymn_tune_name"), String)
|
||||
mguidHymnTuneID = CType(ldbrwRow.Item("hymn_tune_id"), Guid)
|
||||
If lblnLoadOtherTuneNamesForTune Then
|
||||
m_OtherHymnTuneNamesForTune = GetOtherTuneNamesForTune(mguidHymnTuneNameID)
|
||||
Else
|
||||
m_OtherHymnTuneNamesForTune = New SortedList
|
||||
End If
|
||||
If lblnLoadOtherTuneNamesForTune Then
|
||||
MyGlobals.AddCachedObject(Me, Me.HymnTuneID.ToString)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Sub Refresh()
|
||||
LoadByHymnTuneNameId(mguidHymnTuneNameID, True)
|
||||
End Sub
|
||||
|
||||
Public Function Delete() As Boolean
|
||||
MyGlobals.RemoveCachedObject(Me.HymnTuneNameID.ToString)
|
||||
|
||||
Try
|
||||
Dim ldbcmdCommand As New SqlClient.SqlCommand
|
||||
ldbcmdCommand.CommandText = "del_hymn_tune_name"
|
||||
|
||||
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
||||
' 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
|
||||
prmHymnTuneNameID.Value = mguidHymnTuneNameID
|
||||
ldbcmdCommand.Parameters.Add(prmHymnTuneNameID)
|
||||
|
||||
Dim lintRowsAffected As Integer = MyGlobals.g_objDatabaseLayer.ExecuteNonQuery(ldbcmdCommand)
|
||||
If lintRowsAffected > 0 Then
|
||||
m_blnObjectAlreadyPersisted = False
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
Catch
|
||||
Return False
|
||||
End Try
|
||||
|
||||
End Function
|
||||
|
||||
Public Function Save() As Boolean
|
||||
Try
|
||||
MyGlobals.AddCachedObject(Me, Me.HymnTuneNameID.ToString)
|
||||
|
||||
If m_blnObjectAlreadyPersisted Then
|
||||
|
||||
Dim objPersisted_OtherHymnTuneNamesForTune As SortedList = GetOtherTuneNamesForTune(mguidHymnTuneNameID)
|
||||
|
||||
Dim objAddedOtherHymnTuneNamesForTune As SortedList = Nothing
|
||||
Dim objDroppedOtherHymnTuneNamesForTune As SortedList = Nothing
|
||||
Dim objRemainingOtherHymnTuneNamesForTune As SortedList = Nothing
|
||||
|
||||
GetAddedDroppedRemainingOtherHymnTuneNamesForTune(objPersisted_OtherHymnTuneNamesForTune, m_OtherHymnTuneNamesForTune, objAddedOtherHymnTuneNamesForTune, objDroppedOtherHymnTuneNamesForTune, objRemainingOtherHymnTuneNamesForTune)
|
||||
|
||||
'If alternate tune names were droped from the list, then we need to change
|
||||
'the current hymn tune name and all alternate hymn tune names that remained
|
||||
'on the list to a new hymn tune ID
|
||||
If objDroppedOtherHymnTuneNamesForTune.Count > 0 Then
|
||||
'Get a new Hymn Tune ID for THIS hymn tune name
|
||||
mguidHymnTuneID = Guid.NewGuid
|
||||
|
||||
Dim objDictionaryEntry As DictionaryEntry
|
||||
Dim objOtherHymnTuneName As clsHymnTuneName
|
||||
|
||||
'Update the hymn tune ID for all hymn tune names which should REMAIN
|
||||
'matched with THIS hymn tune name
|
||||
For Each objDictionaryEntry In objRemainingOtherHymnTuneNamesForTune
|
||||
objOtherHymnTuneName = CType(objDictionaryEntry.Value, clsHymnTuneName)
|
||||
objOtherHymnTuneName.HymnTuneID = mguidHymnTuneID
|
||||
|
||||
Dim ldbcmdCommandSaveOtherRemaining As New SqlClient.SqlCommand
|
||||
ldbcmdCommandSaveOtherRemaining.CommandText = "upd_hymn_tune_name_with_tune_id"
|
||||
|
||||
ldbcmdCommandSaveOtherRemaining.CommandType = CommandType.StoredProcedure
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnTuneNameIDSaveOtherRemaining As New SqlClient.SqlParameter
|
||||
prmHymnTuneNameIDSaveOtherRemaining.ParameterName = "@hymn_tune_name_id"
|
||||
prmHymnTuneNameIDSaveOtherRemaining.SqlDbType = SqlDbType.UniqueIdentifier
|
||||
'prmHymnTuneNameIDSaveOtherRemaining.Size = 5
|
||||
prmHymnTuneNameIDSaveOtherRemaining.Value = objOtherHymnTuneName.HymnTuneNameID
|
||||
ldbcmdCommandSaveOtherRemaining.Parameters.Add(prmHymnTuneNameIDSaveOtherRemaining)
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnTuneIDSaveOtherRemaining As New SqlClient.SqlParameter
|
||||
prmHymnTuneIDSaveOtherRemaining.ParameterName = "@hymn_tune_id"
|
||||
prmHymnTuneIDSaveOtherRemaining.SqlDbType = SqlDbType.UniqueIdentifier
|
||||
'prmHymnTuneIDSaveOtherRemaining.Size = 5
|
||||
prmHymnTuneIDSaveOtherRemaining.Value = mguidHymnTuneID
|
||||
ldbcmdCommandSaveOtherRemaining.Parameters.Add(prmHymnTuneIDSaveOtherRemaining)
|
||||
|
||||
Dim lintRowsAffectedSaveOtherRemaining As Integer = MyGlobals.g_objDatabaseLayer.ExecuteNonQuery(ldbcmdCommandSaveOtherRemaining)
|
||||
Next
|
||||
End If
|
||||
|
||||
'If alternate hymn tune names were added, we need to change the hymn tune ID for all
|
||||
'hymn tune names that were added (along with THEIR matches) to the hymn tune ID of
|
||||
'the current hymn tune name
|
||||
If objAddedOtherHymnTuneNamesForTune.Count > 0 Then
|
||||
Dim objDictionaryEntry As DictionaryEntry
|
||||
Dim objOtherHymnTuneName As clsHymnTuneName
|
||||
For Each objDictionaryEntry In objAddedOtherHymnTuneNamesForTune
|
||||
objOtherHymnTuneName = CType(objDictionaryEntry.Value, clsHymnTuneName)
|
||||
objOtherHymnTuneName.HymnTuneID = mguidHymnTuneID
|
||||
|
||||
Dim ldbcmdCommandSaveOtherAdded As New SqlClient.SqlCommand
|
||||
ldbcmdCommandSaveOtherAdded.CommandText = "upd_hymn_tune_name_with_tune_id_with_matches"
|
||||
|
||||
ldbcmdCommandSaveOtherAdded.CommandType = CommandType.StoredProcedure
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnTuneNameIDSaveOtherAdded As New SqlClient.SqlParameter
|
||||
prmHymnTuneNameIDSaveOtherAdded.ParameterName = "@hymn_tune_name_id"
|
||||
prmHymnTuneNameIDSaveOtherAdded.SqlDbType = SqlDbType.UniqueIdentifier
|
||||
'prmHymnTuneNameID.Size = 5
|
||||
prmHymnTuneNameIDSaveOtherAdded.Value = objOtherHymnTuneName.HymnTuneNameID
|
||||
ldbcmdCommandSaveOtherAdded.Parameters.Add(prmHymnTuneNameIDSaveOtherAdded)
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnTuneIDSaveOtherAdded As New SqlClient.SqlParameter
|
||||
prmHymnTuneIDSaveOtherAdded.ParameterName = "@hymn_tune_id"
|
||||
prmHymnTuneIDSaveOtherAdded.SqlDbType = SqlDbType.UniqueIdentifier
|
||||
'prmHymnTuneID.Size = 5
|
||||
prmHymnTuneIDSaveOtherAdded.Value = mguidHymnTuneID
|
||||
ldbcmdCommandSaveOtherAdded.Parameters.Add(prmHymnTuneIDSaveOtherAdded)
|
||||
|
||||
Dim lintRowsAffectedSaveOtherAdded As Integer = MyGlobals.g_objDatabaseLayer.ExecuteNonQuery(ldbcmdCommandSaveOtherAdded)
|
||||
Next
|
||||
End If
|
||||
|
||||
|
||||
Dim ldbcmdCommandUpdateThis As New SqlClient.SqlCommand
|
||||
ldbcmdCommandUpdateThis.CommandText = "upd_hymn_tune_name"
|
||||
|
||||
ldbcmdCommandUpdateThis.CommandType = CommandType.StoredProcedure
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnTuneNameIDUpdateThis As New SqlClient.SqlParameter
|
||||
prmHymnTuneNameIDUpdateThis.ParameterName = "@hymn_tune_name_id"
|
||||
prmHymnTuneNameIDUpdateThis.SqlDbType = SqlDbType.UniqueIdentifier
|
||||
'prmHymnTuneNameIDUpdateThis.Size = 5
|
||||
prmHymnTuneNameIDUpdateThis.Value = mguidHymnTuneNameID
|
||||
ldbcmdCommandUpdateThis.Parameters.Add(prmHymnTuneNameIDUpdateThis)
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnTuneNameUpdateThis As New SqlClient.SqlParameter
|
||||
prmHymnTuneNameUpdateThis.ParameterName = "@hymn_tune_name"
|
||||
prmHymnTuneNameUpdateThis.SqlDbType = SqlDbType.VarChar
|
||||
prmHymnTuneNameUpdateThis.Size = MyGlobals.HYMN_TUNE_NAME_SIZE
|
||||
prmHymnTuneNameUpdateThis.Value = mstrHymnTuneName
|
||||
ldbcmdCommandUpdateThis.Parameters.Add(prmHymnTuneNameUpdateThis)
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnTuneIDUpdateThis As New SqlClient.SqlParameter
|
||||
prmHymnTuneIDUpdateThis.ParameterName = "@hymn_tune_id"
|
||||
prmHymnTuneIDUpdateThis.SqlDbType = SqlDbType.UniqueIdentifier
|
||||
'prmHymnTuneIDUpdateThis.Size = 5
|
||||
prmHymnTuneIDUpdateThis.Value = mguidHymnTuneID
|
||||
ldbcmdCommandUpdateThis.Parameters.Add(prmHymnTuneIDUpdateThis)
|
||||
|
||||
Dim lintRowsAffectedUpdateThis As Integer = MyGlobals.g_objDatabaseLayer.ExecuteNonQuery(ldbcmdCommandUpdateThis)
|
||||
If lintRowsAffectedUpdateThis > 0 Then
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
'If alternate tune names listed, grab hymn tune ID from first one listed,
|
||||
'and update tune ID for all others, including THIS object
|
||||
If m_OtherHymnTuneNamesForTune.Count > 0 Then
|
||||
Dim objguidFirstTuneID As Guid
|
||||
Dim blnFirstAlternameTuneName As Boolean = True
|
||||
|
||||
Dim objDictionaryEntry As DictionaryEntry
|
||||
Dim objOtherHymnTuneName As clsHymnTuneName
|
||||
For Each objDictionaryEntry In m_OtherHymnTuneNamesForTune
|
||||
objOtherHymnTuneName = CType(objDictionaryEntry.Value, clsHymnTuneName)
|
||||
If blnFirstAlternameTuneName Then
|
||||
blnFirstAlternameTuneName = False
|
||||
objguidFirstTuneID = objOtherHymnTuneName.HymnTuneID
|
||||
mguidHymnTuneID = objguidFirstTuneID
|
||||
Else
|
||||
objOtherHymnTuneName.HymnTuneID = objguidFirstTuneID
|
||||
|
||||
Dim ldbcmdCommandUpdateOtherAdding As New SqlClient.SqlCommand
|
||||
ldbcmdCommandUpdateOtherAdding.CommandText = "upd_hymn_tune_name_with_tune_id_with_matches"
|
||||
|
||||
ldbcmdCommandUpdateOtherAdding.CommandType = CommandType.StoredProcedure
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnTuneNameIDUpdateOtherAdding As New SqlClient.SqlParameter
|
||||
prmHymnTuneNameIDUpdateOtherAdding.ParameterName = "@hymn_tune_name_id"
|
||||
prmHymnTuneNameIDUpdateOtherAdding.SqlDbType = SqlDbType.UniqueIdentifier
|
||||
'prmHymnTuneNameIDUpdateOtherAdding.Size = 5
|
||||
prmHymnTuneNameIDUpdateOtherAdding.Value = objOtherHymnTuneName.HymnTuneNameID
|
||||
ldbcmdCommandUpdateOtherAdding.Parameters.Add(prmHymnTuneNameIDUpdateOtherAdding)
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnTuneIDUpdateOtherAdding As New SqlClient.SqlParameter
|
||||
prmHymnTuneIDUpdateOtherAdding.ParameterName = "@hymn_tune_id"
|
||||
prmHymnTuneIDUpdateOtherAdding.SqlDbType = SqlDbType.UniqueIdentifier
|
||||
'prmHymnTuneIDUpdateOtherAdding.Size = 5
|
||||
prmHymnTuneIDUpdateOtherAdding.Value = objguidFirstTuneID
|
||||
ldbcmdCommandUpdateOtherAdding.Parameters.Add(prmHymnTuneIDUpdateOtherAdding)
|
||||
|
||||
Dim lintRowsAffectedUpdateOtherAdding As Integer = MyGlobals.g_objDatabaseLayer.ExecuteNonQuery(ldbcmdCommandUpdateOtherAdding)
|
||||
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
Dim ldbcmdCommandAddThis As New SqlClient.SqlCommand
|
||||
ldbcmdCommandAddThis.CommandText = "ins_hymn_tune_name"
|
||||
|
||||
ldbcmdCommandAddThis.CommandType = CommandType.StoredProcedure
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnTuneNameIDAddThis As New SqlClient.SqlParameter
|
||||
prmHymnTuneNameIDAddThis.ParameterName = "@hymn_tune_name_id"
|
||||
prmHymnTuneNameIDAddThis.SqlDbType = SqlDbType.UniqueIdentifier
|
||||
'prmHymnTuneNameID.Size = 5
|
||||
prmHymnTuneNameIDAddThis.Value = mguidHymnTuneNameID
|
||||
ldbcmdCommandAddThis.Parameters.Add(prmHymnTuneNameIDAddThis)
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnTuneNameAddThis As New SqlClient.SqlParameter
|
||||
prmHymnTuneNameAddThis.ParameterName = "@hymn_tune_name"
|
||||
prmHymnTuneNameAddThis.SqlDbType = SqlDbType.VarChar
|
||||
prmHymnTuneNameAddThis.Size = MyGlobals.HYMN_TUNE_NAME_SIZE
|
||||
prmHymnTuneNameAddThis.Value = mstrHymnTuneName
|
||||
ldbcmdCommandAddThis.Parameters.Add(prmHymnTuneNameAddThis)
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnTuneIDAddThis As New SqlClient.SqlParameter
|
||||
prmHymnTuneIDAddThis.ParameterName = "@hymn_tune_id"
|
||||
prmHymnTuneIDAddThis.SqlDbType = SqlDbType.UniqueIdentifier
|
||||
'prmHymnTuneIDAddThis.Size = 5
|
||||
prmHymnTuneIDAddThis.Value = mguidHymnTuneID
|
||||
ldbcmdCommandAddThis.Parameters.Add(prmHymnTuneIDAddThis)
|
||||
|
||||
Dim lintRowsAffectedAddThis As Integer = MyGlobals.g_objDatabaseLayer.ExecuteNonQuery(ldbcmdCommandAddThis)
|
||||
If lintRowsAffectedAddThis > 0 Then
|
||||
m_blnObjectAlreadyPersisted = True
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
End If
|
||||
Catch
|
||||
Return False
|
||||
End Try
|
||||
|
||||
End Function
|
||||
|
||||
Public Function DuplicateExists(ByVal lstrHymnTuneNameToCheck As String) As Boolean
|
||||
Try
|
||||
Dim ldbcmdCommand As New SqlClient.SqlCommand
|
||||
ldbcmdCommand.CommandText = "sel_hymn_tune_name_by_name"
|
||||
|
||||
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
||||
' Set up parameter for stored procedure
|
||||
Dim prmHymnTuneName As New SqlClient.SqlParameter
|
||||
prmHymnTuneName.ParameterName = "@hymn_tune_name"
|
||||
prmHymnTuneName.SqlDbType = SqlDbType.VarChar
|
||||
prmHymnTuneName.Size = MyGlobals.HYMN_TUNE_NAME_SIZE
|
||||
prmHymnTuneName.Value = lstrHymnTuneNameToCheck
|
||||
ldbcmdCommand.Parameters.Add(prmHymnTuneName)
|
||||
|
||||
Dim ldbdsHymnTuneNames As DataSet = MyGlobals.g_objDatabaseLayer.ExecuteDataSet(ldbcmdCommand)
|
||||
|
||||
If ldbdsHymnTuneNames.Tables(0).Rows.Count > 0 Then
|
||||
Dim ldbrwRow As DataRow
|
||||
For Each ldbrwRow In ldbdsHymnTuneNames.Tables(0).Rows
|
||||
If mguidHymnTuneNameID.Equals(CType(ldbrwRow.Item("hymn_tune_name_id"), Guid)) Then
|
||||
'OK
|
||||
Else
|
||||
ldbdsHymnTuneNames.Clear()
|
||||
Return True
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
ldbdsHymnTuneNames.Clear()
|
||||
Return False
|
||||
Catch
|
||||
Return False
|
||||
End Try
|
||||
|
||||
End Function
|
||||
|
||||
Public Property HymnTuneNameID() As Guid
|
||||
Get
|
||||
Return mguidHymnTuneNameID
|
||||
End Get
|
||||
|
||||
Set(ByVal lguidValue As Guid)
|
||||
mguidHymnTuneNameID = lguidValue
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property HymnTuneName() As String
|
||||
Get
|
||||
Return mstrHymnTuneName
|
||||
End Get
|
||||
|
||||
Set(ByVal sValue As String)
|
||||
mstrHymnTuneName = sValue.Trim
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Property HymnTuneID() As Guid
|
||||
Get
|
||||
Return mguidHymnTuneID
|
||||
End Get
|
||||
|
||||
Set(ByVal lguidValue As Guid)
|
||||
mguidHymnTuneID = lguidValue
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public ReadOnly Property OtherHymnTuneNamesForTune() As SortedList
|
||||
Get
|
||||
Return m_OtherHymnTuneNamesForTune
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Protected WriteOnly Property OtherHymnTuneNamesForTuneForCloning() As SortedList
|
||||
Set(ByVal Value As SortedList)
|
||||
m_OtherHymnTuneNamesForTune = Value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Sub AddAlternateHymnTuneName(ByVal lobjHymnTuneName As clsHymnTuneName)
|
||||
AddAlternateTuneNameToList(lobjHymnTuneName, m_OtherHymnTuneNamesForTune)
|
||||
End Sub
|
||||
|
||||
Public Sub RemoveAlternateHymnTuneName(ByVal lobjHymnTuneName As clsHymnTuneName)
|
||||
RemoveAlternateTuneNameFromList(lobjHymnTuneName, m_OtherHymnTuneNamesForTune)
|
||||
End Sub
|
||||
|
||||
Public Sub RemoveAlternateHymnTuneName(ByVal lstrHymnTuneName As String)
|
||||
RemoveAlternateTuneNameFromList(lstrHymnTuneName, m_OtherHymnTuneNamesForTune)
|
||||
End Sub
|
||||
|
||||
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 clsHymnTuneName
|
||||
lobjReturnValue.HymnTuneNameID = Me.HymnTuneNameID
|
||||
lobjReturnValue.HymnTuneName = Me.HymnTuneName
|
||||
lobjReturnValue.HymnTuneID = Me.HymnTuneID
|
||||
lobjReturnValue.OtherHymnTuneNamesForTuneForCloning = CType(Me.OtherHymnTuneNamesForTune.Clone, SortedList)
|
||||
|
||||
lobjReturnValue.ItemAlreadyPersisted = Me.ItemAlreadyPersisted
|
||||
|
||||
Return lobjReturnValue
|
||||
End Function
|
||||
|
||||
Public Function StateIsIdentical(ByVal lobjOtherHymnTuneName As clsHymnTuneName) As Boolean
|
||||
If Me.HymnTuneNameID.Equals(lobjOtherHymnTuneName.HymnTuneNameID) _
|
||||
AndAlso Me.HymnTuneName = lobjOtherHymnTuneName.HymnTuneName _
|
||||
AndAlso Me.HymnTuneID.Equals(lobjOtherHymnTuneName.HymnTuneID) Then
|
||||
If Me.OtherHymnTuneNamesForTune.Count <> lobjOtherHymnTuneName.OtherHymnTuneNamesForTune.Count Then
|
||||
Return False
|
||||
End If
|
||||
|
||||
'We have the same number of alternate tune names.
|
||||
'Just need to check from one side to see if all are on the other
|
||||
' - If none were added, and the number is the same, then none could have been deleted
|
||||
Dim objDictionaryEntry As DictionaryEntry
|
||||
Dim objMeOtherHymnTuneNameForTune As clsHymnTuneName
|
||||
For Each objDictionaryEntry In Me.OtherHymnTuneNamesForTune
|
||||
objMeOtherHymnTuneNameForTune = CType(objDictionaryEntry.Value, clsHymnTuneName)
|
||||
If Not lobjOtherHymnTuneName.OtherHymnTuneNamesForTune.ContainsKey(objMeOtherHymnTuneNameForTune.HymnTuneName) Then
|
||||
Return False
|
||||
End If
|
||||
Next
|
||||
Return True
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
End Function
|
||||
|
||||
Public Function Validate(ByRef lstrErrorString As String) As Boolean
|
||||
lstrErrorString = ""
|
||||
If Me.HymnTuneName.Length = 0 Then
|
||||
lstrErrorString = "Hymn Tune Name is required"
|
||||
Return False
|
||||
End If
|
||||
|
||||
If Me.DuplicateExists(Me.HymnTuneName) Then
|
||||
lstrErrorString = "Given Hymn Tune Name already exists"
|
||||
Return False
|
||||
End If
|
||||
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Public Function OKToDelete(ByRef lstrReferencedByString As String) As Boolean
|
||||
Dim lblnReturnValue As Boolean
|
||||
|
||||
lblnReturnValue = True
|
||||
|
||||
lstrReferencedByString = ""
|
||||
|
||||
|
||||
Dim ldbcmdCommand As New SqlClient.SqlCommand
|
||||
ldbcmdCommand.CommandText = "sel_hymn_tune_name_isreferenced"
|
||||
|
||||
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
||||
' 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
|
||||
prmHymnTuneNameID.Value = mguidHymnTuneNameID
|
||||
ldbcmdCommand.Parameters.Add(prmHymnTuneNameID)
|
||||
|
||||
Dim ldbdsHymnTuneNames As DataSet = MyGlobals.g_objDatabaseLayer.ExecuteDataSet(ldbcmdCommand)
|
||||
|
||||
If ldbdsHymnTuneNames.Tables(0).Rows.Count > 0 Then
|
||||
lblnReturnValue = False
|
||||
|
||||
Dim ldbrwRow As DataRow
|
||||
For Each ldbrwRow In ldbdsHymnTuneNames.Tables(0).Rows
|
||||
If Not ldbrwRow.IsNull("table_referencing_instance") Then
|
||||
If lstrReferencedByString.Length = 0 Then
|
||||
lstrReferencedByString = CType(ldbrwRow.Item("table_referencing_instance"), String) + "(s)"
|
||||
Else
|
||||
lstrReferencedByString = lstrReferencedByString + " and " + CType(ldbrwRow.Item("table_referencing_instance"), String) + "(s)"
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
|
||||
End If
|
||||
ldbdsHymnTuneNames.Clear()
|
||||
|
||||
Return lblnReturnValue
|
||||
|
||||
End Function
|
||||
|
||||
Public Overrides Function ToString() As String
|
||||
Return mstrHymnTuneName
|
||||
End Function
|
||||
|
||||
Public Function GetOtherTuneNamesForTune(ByVal lguidHymnTuneNameId As Guid) As SortedList
|
||||
Dim objSortedListToReturn As New SortedList
|
||||
|
||||
Try
|
||||
Dim ldbcmdCommand As New SqlClient.SqlCommand
|
||||
ldbcmdCommand.CommandText = "sel_hymn_tune_name_others_by_hymn_tune_name_id"
|
||||
|
||||
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
||||
' 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
|
||||
prmHymnTuneNameID.Value = lguidHymnTuneNameId
|
||||
ldbcmdCommand.Parameters.Add(prmHymnTuneNameID)
|
||||
|
||||
Dim ldbdsHymnTuneNames As DataSet = MyGlobals.g_objDatabaseLayer.ExecuteDataSet(ldbcmdCommand)
|
||||
|
||||
If ldbdsHymnTuneNames.Tables(0).Rows.Count > 0 Then
|
||||
Dim ldbrwRow As DataRow
|
||||
Dim lobjHymnTuneName As clsHymnTuneName
|
||||
For Each ldbrwRow In ldbdsHymnTuneNames.Tables(0).Rows
|
||||
lguidHymnTuneNameId = CType(ldbrwRow.Item("hymn_tune_name_id"), Guid)
|
||||
|
||||
lobjHymnTuneName = New clsHymnTuneName(lguidHymnTuneNameId, False)
|
||||
AddAlternateTuneNameToList(lobjHymnTuneName, objSortedListToReturn)
|
||||
Next
|
||||
End If
|
||||
ldbdsHymnTuneNames.Clear()
|
||||
Return objSortedListToReturn
|
||||
Catch
|
||||
Return objSortedListToReturn
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Private Sub AddAlternateTuneNameToList(ByVal lobjHymnTuneName As clsHymnTuneName, ByRef lobjSortedListToReturn As SortedList)
|
||||
If lobjSortedListToReturn.ContainsKey(lobjHymnTuneName.HymnTuneName) Then
|
||||
Return
|
||||
End If
|
||||
lobjSortedListToReturn.Add(lobjHymnTuneName.HymnTuneName, lobjHymnTuneName)
|
||||
End Sub
|
||||
|
||||
Private Sub RemoveAlternateTuneNameFromList(ByVal lobjHymnTuneName As clsHymnTuneName, ByRef lobjSortedListToReturn As SortedList)
|
||||
If lobjSortedListToReturn.ContainsKey(lobjHymnTuneName.HymnTuneName) Then
|
||||
lobjSortedListToReturn.Remove(lobjHymnTuneName.HymnTuneName)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub RemoveAlternateTuneNameFromList(ByVal lstrHymnTuneName As String, ByRef lobjSortedListToReturn As SortedList)
|
||||
If lobjSortedListToReturn.ContainsKey(lstrHymnTuneName) Then
|
||||
lobjSortedListToReturn.Remove(lstrHymnTuneName)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub GetAddedDroppedRemainingOtherHymnTuneNamesForTune(ByVal objPersisted_OtherHymnTuneNamesForTune As SortedList, ByVal objCurrentOtherHymnTuneNamesForTune As SortedList, ByRef objAddedOtherHymnTuneNamesForTune As SortedList, ByRef objDroppedOtherHymnTuneNamesForTune As SortedList, ByRef objRemainingOtherHymnTuneNamesForTune As SortedList)
|
||||
Dim objDictionaryEntry As DictionaryEntry
|
||||
Dim objHymnTuneNameToCheck As clsHymnTuneName
|
||||
Dim strHymnTuneNameToCheck As String
|
||||
|
||||
objAddedOtherHymnTuneNamesForTune = New SortedList
|
||||
objDroppedOtherHymnTuneNamesForTune = New SortedList
|
||||
objRemainingOtherHymnTuneNamesForTune = New SortedList
|
||||
|
||||
For Each objDictionaryEntry In objPersisted_OtherHymnTuneNamesForTune
|
||||
objHymnTuneNameToCheck = CType(objDictionaryEntry.Value, clsHymnTuneName)
|
||||
strHymnTuneNameToCheck = objHymnTuneNameToCheck.HymnTuneName
|
||||
If objCurrentOtherHymnTuneNamesForTune.ContainsKey(strHymnTuneNameToCheck) Then
|
||||
objRemainingOtherHymnTuneNamesForTune.Add(strHymnTuneNameToCheck, objHymnTuneNameToCheck)
|
||||
Else
|
||||
objDroppedOtherHymnTuneNamesForTune.Add(strHymnTuneNameToCheck, objHymnTuneNameToCheck)
|
||||
End If
|
||||
Next
|
||||
|
||||
For Each objDictionaryEntry In objCurrentOtherHymnTuneNamesForTune
|
||||
objHymnTuneNameToCheck = CType(objDictionaryEntry.Value, clsHymnTuneName)
|
||||
strHymnTuneNameToCheck = objHymnTuneNameToCheck.HymnTuneName
|
||||
If objPersisted_OtherHymnTuneNamesForTune.ContainsKey(strHymnTuneNameToCheck) Then
|
||||
'Not necessary to save to REMAINING list, as it should already be there from above
|
||||
'objRemainingOtherHymnTuneNamesForTune.Add(strHymnTuneNameToCheck, objHymnTuneNameToCheck)
|
||||
Else
|
||||
objAddedOtherHymnTuneNamesForTune.Add(strHymnTuneNameToCheck, objHymnTuneNameToCheck)
|
||||
End If
|
||||
Next
|
||||
|
||||
End Sub
|
||||
|
||||
Public Sub WriteXML(ByRef objXMLWriter As XmlTextWriter)
|
||||
objXMLWriter.WriteStartElement("HymnTuneName")
|
||||
|
||||
objXMLWriter.WriteElementString("HymnTuneNameID", Me.HymnTuneNameID.ToString)
|
||||
objXMLWriter.WriteElementString("HymnTuneID", Me.HymnTuneID.ToString)
|
||||
objXMLWriter.WriteElementString("HymnTuneName", Me.HymnTuneName)
|
||||
|
||||
objXMLWriter.WriteEndElement()
|
||||
End Sub
|
||||
|
||||
Public Shared Function GetAllHymnTuneNames() As System.Collections.Generic.List(Of clsHymnTuneName)
|
||||
Dim lguidHymnTuneNameID As Guid
|
||||
Dim ldbcmdCommand As New SqlClient.SqlCommand
|
||||
Dim lobjHymnTuneName As clsHymnTuneName
|
||||
Dim lcolHymnTuneNames As New System.Collections.Generic.List(Of clsHymnTuneName)
|
||||
|
||||
ldbcmdCommand.CommandText = "sel_hymn_tune_name_all"
|
||||
|
||||
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
||||
Dim ldbdsHymnTuneNames As DataSet = MyGlobals.g_objDatabaseLayer.ExecuteDataSet(ldbcmdCommand)
|
||||
|
||||
If ldbdsHymnTuneNames.Tables(0).Rows.Count > 0 Then
|
||||
Dim ldbrwRow As DataRow
|
||||
For Each ldbrwRow In ldbdsHymnTuneNames.Tables(0).Rows
|
||||
lguidHymnTuneNameID = CType(ldbrwRow.Item("hymn_tune_name_id"), Guid)
|
||||
|
||||
If MyGlobals.CachedObjectExists(lguidHymnTuneNameID.ToString) Then
|
||||
lobjHymnTuneName = CType(MyGlobals.CachedObjectRetrieve(lguidHymnTuneNameID.ToString), clsHymnTuneName)
|
||||
Else
|
||||
'lobjHymnTuneName = New clsHymnTuneName(lguidHymnTuneNameID)
|
||||
lobjHymnTuneName = New clsHymnTuneName(ldbrwRow)
|
||||
End If
|
||||
lcolHymnTuneNames.Add(lobjHymnTuneName)
|
||||
Next
|
||||
End If
|
||||
ldbdsHymnTuneNames.Clear()
|
||||
|
||||
Return lcolHymnTuneNames
|
||||
End Function
|
||||
|
||||
Public Shared Sub AddAllHymnTuneNamesToCache()
|
||||
If MyGlobals.g_objObjectTypesCached.Contains("HymnTuneNames") = False Then
|
||||
GetAllHymnTuneNames()
|
||||
MyGlobals.g_objObjectTypesCached.Add("HymnTuneNames")
|
||||
End If
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
Reference in New Issue
Block a user