372 lines
14 KiB
VB.net
372 lines
14 KiB
VB.net
Imports System.Data
|
|
Imports System.Xml
|
|
|
|
Public Class clsComposer
|
|
Implements ICloneable
|
|
|
|
Private mguidComposerID As Guid
|
|
Private mstrComposerName As String
|
|
Private m_blnObjectAlreadyPersisted As Boolean
|
|
|
|
Public Sub New()
|
|
mguidComposerID = Guid.NewGuid
|
|
mstrComposerName = ""
|
|
m_blnObjectAlreadyPersisted = False
|
|
End Sub
|
|
|
|
Public Sub New(ByVal lstrComposerName As String)
|
|
Dim ldbcmdCommand As New SqlClient.SqlCommand
|
|
ldbcmdCommand.CommandText = "sel_composer_by_name"
|
|
|
|
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
|
' Set up parameter for stored procedure
|
|
Dim prmComposerName As New SqlClient.SqlParameter
|
|
prmComposerName.ParameterName = "@composer_name"
|
|
prmComposerName.SqlDbType = SqlDbType.VarChar
|
|
prmComposerName.Size = MyGlobals.COMPOSER_NAME_SIZE
|
|
prmComposerName.Value = lstrComposerName
|
|
ldbcmdCommand.Parameters.Add(prmComposerName)
|
|
|
|
Dim ldbdsComposers As DataSet = MyGlobals.g_objDatabaseLayer.ExecuteDataSet(ldbcmdCommand)
|
|
|
|
If ldbdsComposers.Tables(0).Rows.Count > 0 Then
|
|
Dim ldbrwRow As DataRow
|
|
ldbrwRow = ldbdsComposers.Tables(0).Rows(0)
|
|
|
|
PopulateFromDBRow(ldbrwRow)
|
|
|
|
ldbdsComposers.Clear()
|
|
m_blnObjectAlreadyPersisted = True
|
|
Else
|
|
ldbdsComposers.Clear()
|
|
mguidComposerID = Guid.NewGuid
|
|
mstrComposerName = lstrComposerName.Trim
|
|
m_blnObjectAlreadyPersisted = False
|
|
End If
|
|
End Sub
|
|
|
|
Public Sub New(ByVal lguidComposerID As Guid)
|
|
mguidComposerID = lguidComposerID
|
|
|
|
Dim ldbcmdCommand As New SqlClient.SqlCommand
|
|
ldbcmdCommand.CommandText = "sel_composer"
|
|
|
|
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
|
' Set up parameter for stored procedure
|
|
Dim prmComposerID As New SqlClient.SqlParameter
|
|
prmComposerID.ParameterName = "@composer_id"
|
|
prmComposerID.SqlDbType = SqlDbType.UniqueIdentifier
|
|
'prmComposerID.Size = 5
|
|
prmComposerID.Value = lguidComposerID
|
|
ldbcmdCommand.Parameters.Add(prmComposerID)
|
|
|
|
Dim ldbdsComposers As DataSet = MyGlobals.g_objDatabaseLayer.ExecuteDataSet(ldbcmdCommand)
|
|
|
|
If ldbdsComposers.Tables(0).Rows.Count > 0 Then
|
|
Dim ldbrwRow As DataRow
|
|
ldbrwRow = ldbdsComposers.Tables(0).Rows(0)
|
|
PopulateFromDBRow(ldbrwRow)
|
|
m_blnObjectAlreadyPersisted = True
|
|
MyGlobals.AddCachedObject(Me, Me.ComposerID.ToString)
|
|
End If
|
|
ldbdsComposers.Clear()
|
|
|
|
End Sub
|
|
|
|
Public Sub New(ByVal ldbrwRow As DataRow)
|
|
PopulateFromDBRow(ldbrwRow)
|
|
m_blnObjectAlreadyPersisted = True
|
|
MyGlobals.AddCachedObject(Me, Me.ComposerID.ToString)
|
|
End Sub
|
|
|
|
Private Sub PopulateFromDBRow(ByVal ldbrwRow As DataRow)
|
|
mguidComposerID = CType(ldbrwRow.Item("composer_id"), Guid)
|
|
|
|
mstrComposerName = CType(ldbrwRow.Item("composer_name"), String)
|
|
End Sub
|
|
|
|
Public Function Delete() As Boolean
|
|
Try
|
|
MyGlobals.RemoveCachedObject(Me.ComposerID.ToString)
|
|
|
|
Dim ldbcmdCommand As New SqlClient.SqlCommand
|
|
ldbcmdCommand.CommandText = "del_composer"
|
|
|
|
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
|
' Set up parameter for stored procedure
|
|
Dim prmComposerID As New SqlClient.SqlParameter
|
|
prmComposerID.ParameterName = "@composer_id"
|
|
prmComposerID.SqlDbType = SqlDbType.UniqueIdentifier
|
|
'prmComposerID.Size = 5
|
|
prmComposerID.Value = mguidComposerID
|
|
ldbcmdCommand.Parameters.Add(prmComposerID)
|
|
|
|
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.ComposerID.ToString)
|
|
|
|
If m_blnObjectAlreadyPersisted Then
|
|
Dim ldbcmdCommand As New SqlClient.SqlCommand
|
|
ldbcmdCommand.CommandText = "upd_composer"
|
|
|
|
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
|
' Set up parameter for stored procedure
|
|
Dim prmComposerID As New SqlClient.SqlParameter
|
|
prmComposerID.ParameterName = "@composer_id"
|
|
prmComposerID.SqlDbType = SqlDbType.UniqueIdentifier
|
|
'prmComposerID.Size = 5
|
|
prmComposerID.Value = mguidComposerID
|
|
ldbcmdCommand.Parameters.Add(prmComposerID)
|
|
' Set up parameter for stored procedure
|
|
Dim prmComposerName As New SqlClient.SqlParameter
|
|
prmComposerName.ParameterName = "@composer_name"
|
|
prmComposerName.SqlDbType = SqlDbType.VarChar
|
|
prmComposerName.Size = MyGlobals.COMPOSER_NAME_SIZE
|
|
prmComposerName.Value = mstrComposerName
|
|
ldbcmdCommand.Parameters.Add(prmComposerName)
|
|
|
|
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_composer"
|
|
|
|
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
|
' Set up parameter for stored procedure
|
|
Dim prmComposerID As New SqlClient.SqlParameter
|
|
prmComposerID.ParameterName = "@composer_id"
|
|
prmComposerID.SqlDbType = SqlDbType.UniqueIdentifier
|
|
'prmComposerID.Size = 5
|
|
prmComposerID.Value = mguidComposerID
|
|
ldbcmdCommand.Parameters.Add(prmComposerID)
|
|
' Set up parameter for stored procedure
|
|
Dim prmComposerName As New SqlClient.SqlParameter
|
|
prmComposerName.ParameterName = "@composer_name"
|
|
prmComposerName.SqlDbType = SqlDbType.VarChar
|
|
prmComposerName.Size = MyGlobals.COMPOSER_NAME_SIZE
|
|
prmComposerName.Value = mstrComposerName
|
|
ldbcmdCommand.Parameters.Add(prmComposerName)
|
|
|
|
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
|
|
Return False
|
|
End Try
|
|
|
|
End Function
|
|
|
|
Public Function DuplicateExists(ByVal lstrComposerNameToCheck As String) As Boolean
|
|
Try
|
|
Dim ldbcmdCommand As New SqlClient.SqlCommand
|
|
ldbcmdCommand.CommandText = "sel_composer_by_name"
|
|
|
|
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
|
' Set up parameter for stored procedure
|
|
Dim prmComposerName As New SqlClient.SqlParameter
|
|
prmComposerName.ParameterName = "@composer_name"
|
|
prmComposerName.SqlDbType = SqlDbType.VarChar
|
|
prmComposerName.Size = MyGlobals.COMPOSER_NAME_SIZE
|
|
prmComposerName.Value = lstrComposerNameToCheck
|
|
ldbcmdCommand.Parameters.Add(prmComposerName)
|
|
|
|
Dim ldbdsComposers As DataSet = MyGlobals.g_objDatabaseLayer.ExecuteDataSet(ldbcmdCommand)
|
|
|
|
If ldbdsComposers.Tables(0).Rows.Count > 0 Then
|
|
Dim ldbrwRow As DataRow
|
|
For Each ldbrwRow In ldbdsComposers.Tables(0).Rows
|
|
If mguidComposerID.Equals(CType(ldbrwRow.Item("composer_id"), Guid)) Then
|
|
'OK
|
|
Else
|
|
ldbdsComposers.Clear()
|
|
Return True
|
|
End If
|
|
Next
|
|
End If
|
|
ldbdsComposers.Clear()
|
|
Return False
|
|
Catch
|
|
Return False
|
|
End Try
|
|
|
|
End Function
|
|
|
|
Public Property ComposerID() As Guid
|
|
Get
|
|
Return mguidComposerID
|
|
End Get
|
|
|
|
Set(ByVal lguidValue As Guid)
|
|
mguidComposerID = lguidValue
|
|
End Set
|
|
End Property
|
|
|
|
Public Property ComposerName() As String
|
|
Get
|
|
Return mstrComposerName
|
|
End Get
|
|
|
|
Set(ByVal sValue As String)
|
|
mstrComposerName = sValue.Trim
|
|
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 clsComposer
|
|
lobjReturnValue.ComposerID = Me.ComposerID
|
|
lobjReturnValue.ComposerName = Me.ComposerName
|
|
lobjReturnValue.ItemAlreadyPersisted = Me.ItemAlreadyPersisted
|
|
|
|
Return lobjReturnValue
|
|
End Function
|
|
|
|
Public Function StateIsIdentical(ByVal lobjOtherComposer As clsComposer) As Boolean
|
|
If Me.ComposerID.Equals(lobjOtherComposer.ComposerID) _
|
|
AndAlso Me.ComposerName = lobjOtherComposer.ComposerName Then
|
|
Return True
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
|
|
Public Function Validate(ByRef lstrErrorString As String) As Boolean
|
|
lstrErrorString = ""
|
|
If Me.ComposerName.Length = 0 Then
|
|
lstrErrorString = "Composer Name is required"
|
|
Return False
|
|
End If
|
|
|
|
If Me.DuplicateExists(Me.ComposerName) Then
|
|
lstrErrorString = "Given Composer 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_composer_isreferenced"
|
|
|
|
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
|
' Set up parameter for stored procedure
|
|
Dim prmComposerID As New SqlClient.SqlParameter
|
|
prmComposerID.ParameterName = "@composer_id"
|
|
prmComposerID.SqlDbType = SqlDbType.UniqueIdentifier
|
|
'prmComposerID.Size = 5
|
|
prmComposerID.Value = mguidComposerID
|
|
ldbcmdCommand.Parameters.Add(prmComposerID)
|
|
|
|
Dim ldbdsComposers As DataSet = MyGlobals.g_objDatabaseLayer.ExecuteDataSet(ldbcmdCommand)
|
|
|
|
If ldbdsComposers.Tables(0).Rows.Count > 0 Then
|
|
lblnReturnValue = False
|
|
|
|
Dim ldbrwRow As DataRow
|
|
For Each ldbrwRow In ldbdsComposers.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
|
|
ldbdsComposers.Clear()
|
|
|
|
Return lblnReturnValue
|
|
|
|
End Function
|
|
|
|
Public Overrides Function ToString() As String
|
|
Return mstrComposerName
|
|
End Function
|
|
|
|
Public Sub WriteXML(ByRef objXMLWriter As XmlTextWriter)
|
|
objXMLWriter.WriteStartElement("Composer")
|
|
|
|
objXMLWriter.WriteElementString("ComposerID", Me.ComposerID.ToString)
|
|
objXMLWriter.WriteElementString("ComposerName", Me.ComposerName)
|
|
|
|
objXMLWriter.WriteEndElement()
|
|
End Sub
|
|
|
|
Public Shared Function GetAllComposers() As System.Collections.Generic.List(Of clsComposer)
|
|
Dim lguidComposerID As Guid
|
|
Dim ldbcmdCommand As New SqlClient.SqlCommand
|
|
Dim lobjComposer As clsComposer
|
|
Dim lcolComposers As New System.Collections.Generic.List(Of clsComposer)
|
|
|
|
ldbcmdCommand.CommandText = "sel_composer_all"
|
|
|
|
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
|
Dim ldbdsComposers As DataSet = MyGlobals.g_objDatabaseLayer.ExecuteDataSet(ldbcmdCommand)
|
|
|
|
If ldbdsComposers.Tables(0).Rows.Count > 0 Then
|
|
Dim ldbrwRow As DataRow
|
|
For Each ldbrwRow In ldbdsComposers.Tables(0).Rows
|
|
lguidComposerID = CType(ldbrwRow.Item("composer_id"), Guid)
|
|
|
|
If MyGlobals.CachedObjectExists(lguidComposerID.ToString) Then
|
|
lobjComposer = CType(MyGlobals.CachedObjectRetrieve(lguidComposerID.ToString), clsComposer)
|
|
Else
|
|
'lobjComposer = New clsComposer(lguidComposerID)
|
|
lobjComposer = New clsComposer(ldbrwRow)
|
|
End If
|
|
lcolComposers.Add(lobjComposer)
|
|
Next
|
|
End If
|
|
ldbdsComposers.Clear()
|
|
|
|
Return lcolComposers
|
|
End Function
|
|
|
|
Public Shared Sub AddAllComposersToCache()
|
|
If MyGlobals.g_objObjectTypesCached.Contains("Composers") = False Then
|
|
GetAllComposers()
|
|
MyGlobals.g_objObjectTypesCached.Add("Composers")
|
|
End If
|
|
End Sub
|
|
|
|
End Class
|