371 lines
15 KiB
VB.net
371 lines
15 KiB
VB.net
Imports System.Data
|
|
Imports System.Xml
|
|
|
|
Public Class clsInstrumentation
|
|
Implements ICloneable
|
|
|
|
Private mguidInstrumentationID As Guid
|
|
Private mstrInstrumentationName As String
|
|
Private m_blnObjectAlreadyPersisted As Boolean
|
|
|
|
Public Sub New()
|
|
mguidInstrumentationID = Guid.NewGuid
|
|
mstrInstrumentationName = ""
|
|
m_blnObjectAlreadyPersisted = False
|
|
End Sub
|
|
|
|
Public Sub New(ByVal lstrInstrumentationName As String)
|
|
Dim ldbcmdCommand As New SqlClient.SqlCommand
|
|
ldbcmdCommand.CommandText = "sel_instrumentation_by_name"
|
|
|
|
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
|
' Set up parameter for stored procedure
|
|
Dim prmInstrumentationName As New SqlClient.SqlParameter
|
|
prmInstrumentationName.ParameterName = "@instrumentation_name"
|
|
prmInstrumentationName.SqlDbType = SqlDbType.VarChar
|
|
prmInstrumentationName.Size = MyGlobals.INSTRUMENTATION_NAME_SIZE
|
|
prmInstrumentationName.Value = lstrInstrumentationName
|
|
ldbcmdCommand.Parameters.Add(prmInstrumentationName)
|
|
|
|
Dim ldbdsInstrumentations As DataSet = MyGlobals.g_objDatabaseLayer.ExecuteDataSet(ldbcmdCommand)
|
|
|
|
If ldbdsInstrumentations.Tables(0).Rows.Count > 0 Then
|
|
Dim ldbrwRow As DataRow
|
|
ldbrwRow = ldbdsInstrumentations.Tables(0).Rows(0)
|
|
|
|
PopulateFromDBRow(ldbrwRow)
|
|
|
|
ldbdsInstrumentations.Clear()
|
|
m_blnObjectAlreadyPersisted = True
|
|
Else
|
|
ldbdsInstrumentations.Clear()
|
|
mguidInstrumentationID = Guid.NewGuid
|
|
mstrInstrumentationName = lstrInstrumentationName.Trim
|
|
m_blnObjectAlreadyPersisted = False
|
|
End If
|
|
End Sub
|
|
|
|
Public Sub New(ByVal lguidInstrumentationID As Guid)
|
|
mguidInstrumentationID = lguidInstrumentationID
|
|
|
|
Dim ldbcmdCommand As New SqlClient.SqlCommand
|
|
ldbcmdCommand.CommandText = "sel_instrumentation"
|
|
|
|
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
|
' Set up parameter for stored procedure
|
|
Dim prmInstrumentationID As New SqlClient.SqlParameter
|
|
prmInstrumentationID.ParameterName = "@instrumentation_id"
|
|
prmInstrumentationID.SqlDbType = SqlDbType.UniqueIdentifier
|
|
'prmInstrumentationID.Size = 5
|
|
prmInstrumentationID.Value = lguidInstrumentationID
|
|
ldbcmdCommand.Parameters.Add(prmInstrumentationID)
|
|
|
|
Dim ldbdsInstrumentations As DataSet = MyGlobals.g_objDatabaseLayer.ExecuteDataSet(ldbcmdCommand)
|
|
|
|
If ldbdsInstrumentations.Tables(0).Rows.Count > 0 Then
|
|
Dim ldbrwRow As DataRow
|
|
ldbrwRow = ldbdsInstrumentations.Tables(0).Rows(0)
|
|
PopulateFromDBRow(ldbrwRow)
|
|
m_blnObjectAlreadyPersisted = True
|
|
MyGlobals.AddCachedObject(Me, Me.InstrumentationID.ToString)
|
|
End If
|
|
ldbdsInstrumentations.Clear()
|
|
End Sub
|
|
|
|
Public Sub New(ByVal ldbrwRow As DataRow)
|
|
PopulateFromDBRow(ldbrwRow)
|
|
m_blnObjectAlreadyPersisted = True
|
|
MyGlobals.AddCachedObject(Me, Me.InstrumentationID.ToString)
|
|
End Sub
|
|
|
|
Private Sub PopulateFromDBRow(ByVal ldbrwRow As DataRow)
|
|
mguidInstrumentationID = CType(ldbrwRow.Item("instrumentation_id"), Guid)
|
|
|
|
mstrInstrumentationName = CType(ldbrwRow.Item("instrumentation_name"), String)
|
|
End Sub
|
|
|
|
Public Function Delete() As Boolean
|
|
Try
|
|
MyGlobals.RemoveCachedObject(Me.InstrumentationID.ToString)
|
|
|
|
Dim ldbcmdCommand As New SqlClient.SqlCommand
|
|
ldbcmdCommand.CommandText = "del_instrumentation"
|
|
|
|
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
|
' Set up parameter for stored procedure
|
|
Dim prmInstrumentationID As New SqlClient.SqlParameter
|
|
prmInstrumentationID.ParameterName = "@instrumentation_id"
|
|
prmInstrumentationID.SqlDbType = SqlDbType.UniqueIdentifier
|
|
'prmInstrumentationID.Size = 5
|
|
prmInstrumentationID.Value = mguidInstrumentationID
|
|
ldbcmdCommand.Parameters.Add(prmInstrumentationID)
|
|
|
|
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.InstrumentationID.ToString)
|
|
|
|
If m_blnObjectAlreadyPersisted Then
|
|
Dim ldbcmdCommand As New SqlClient.SqlCommand
|
|
ldbcmdCommand.CommandText = "upd_instrumentation"
|
|
|
|
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
|
' Set up parameter for stored procedure
|
|
Dim prmInstrumentationID As New SqlClient.SqlParameter
|
|
prmInstrumentationID.ParameterName = "@instrumentation_id"
|
|
prmInstrumentationID.SqlDbType = SqlDbType.UniqueIdentifier
|
|
'prmInstrumentationID.Size = 5
|
|
prmInstrumentationID.Value = mguidInstrumentationID
|
|
ldbcmdCommand.Parameters.Add(prmInstrumentationID)
|
|
' Set up parameter for stored procedure
|
|
Dim prmInstrumentationName As New SqlClient.SqlParameter
|
|
prmInstrumentationName.ParameterName = "@instrumentation_name"
|
|
prmInstrumentationName.SqlDbType = SqlDbType.VarChar
|
|
prmInstrumentationName.Size = MyGlobals.INSTRUMENTATION_NAME_SIZE
|
|
prmInstrumentationName.Value = mstrInstrumentationName
|
|
ldbcmdCommand.Parameters.Add(prmInstrumentationName)
|
|
|
|
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_instrumentation"
|
|
|
|
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
|
' Set up parameter for stored procedure
|
|
Dim prmInstrumentationID As New SqlClient.SqlParameter
|
|
prmInstrumentationID.ParameterName = "@instrumentation_id"
|
|
prmInstrumentationID.SqlDbType = SqlDbType.UniqueIdentifier
|
|
'prmInstrumentationID.Size = 5
|
|
prmInstrumentationID.Value = mguidInstrumentationID
|
|
ldbcmdCommand.Parameters.Add(prmInstrumentationID)
|
|
' Set up parameter for stored procedure
|
|
Dim prmInstrumentationName As New SqlClient.SqlParameter
|
|
prmInstrumentationName.ParameterName = "@instrumentation_name"
|
|
prmInstrumentationName.SqlDbType = SqlDbType.VarChar
|
|
prmInstrumentationName.Size = MyGlobals.INSTRUMENTATION_NAME_SIZE
|
|
prmInstrumentationName.Value = mstrInstrumentationName
|
|
ldbcmdCommand.Parameters.Add(prmInstrumentationName)
|
|
|
|
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 lstrInstrumentationNameToCheck As String) As Boolean
|
|
Try
|
|
Dim ldbcmdCommand As New SqlClient.SqlCommand
|
|
ldbcmdCommand.CommandText = "sel_instrumentation_by_name"
|
|
|
|
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
|
' Set up parameter for stored procedure
|
|
Dim prmInstrumentationName As New SqlClient.SqlParameter
|
|
prmInstrumentationName.ParameterName = "@instrumentation_name"
|
|
prmInstrumentationName.SqlDbType = SqlDbType.VarChar
|
|
prmInstrumentationName.Size = MyGlobals.INSTRUMENTATION_NAME_SIZE
|
|
prmInstrumentationName.Value = lstrInstrumentationNameToCheck
|
|
ldbcmdCommand.Parameters.Add(prmInstrumentationName)
|
|
|
|
Dim ldbdsInstrumentations As DataSet = MyGlobals.g_objDatabaseLayer.ExecuteDataSet(ldbcmdCommand)
|
|
|
|
If ldbdsInstrumentations.Tables(0).Rows.Count > 0 Then
|
|
Dim ldbrwRow As DataRow
|
|
For Each ldbrwRow In ldbdsInstrumentations.Tables(0).Rows
|
|
If mguidInstrumentationID.Equals(CType(ldbrwRow.Item("instrumentation_id"), Guid)) Then
|
|
'OK
|
|
Else
|
|
ldbdsInstrumentations.Clear()
|
|
Return True
|
|
End If
|
|
Next
|
|
End If
|
|
ldbdsInstrumentations.Clear()
|
|
Return False
|
|
Catch
|
|
Return False
|
|
End Try
|
|
|
|
End Function
|
|
|
|
Public Property InstrumentationID() As Guid
|
|
Get
|
|
Return mguidInstrumentationID
|
|
End Get
|
|
|
|
Set(ByVal lguidValue As Guid)
|
|
mguidInstrumentationID = lguidValue
|
|
End Set
|
|
End Property
|
|
|
|
Public Property InstrumentationName() As String
|
|
Get
|
|
Return mstrInstrumentationName
|
|
End Get
|
|
|
|
Set(ByVal sValue As String)
|
|
mstrInstrumentationName = 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 clsInstrumentation
|
|
lobjReturnValue.InstrumentationID = Me.InstrumentationID
|
|
lobjReturnValue.InstrumentationName = Me.InstrumentationName
|
|
lobjReturnValue.ItemAlreadyPersisted = Me.ItemAlreadyPersisted
|
|
|
|
Return lobjReturnValue
|
|
End Function
|
|
|
|
Public Function StateIsIdentical(ByVal lobjOtherInstrumentation As clsInstrumentation) As Boolean
|
|
If Me.InstrumentationID.Equals(lobjOtherInstrumentation.InstrumentationID) _
|
|
AndAlso Me.InstrumentationName = lobjOtherInstrumentation.InstrumentationName Then
|
|
Return True
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
|
|
Public Function Validate(ByRef lstrErrorString As String) As Boolean
|
|
lstrErrorString = ""
|
|
If Me.InstrumentationName.Length = 0 Then
|
|
lstrErrorString = "Instrumentation Name is required"
|
|
Return False
|
|
End If
|
|
|
|
If Me.DuplicateExists(Me.InstrumentationName) Then
|
|
lstrErrorString = "Given Instrumentation 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_instrumentation_isreferenced"
|
|
|
|
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
|
' Set up parameter for stored procedure
|
|
Dim prmInstrumentationID As New SqlClient.SqlParameter
|
|
prmInstrumentationID.ParameterName = "@instrumentation_id"
|
|
prmInstrumentationID.SqlDbType = SqlDbType.UniqueIdentifier
|
|
'prmInstrumentationID.Size = 5
|
|
prmInstrumentationID.Value = mguidInstrumentationID
|
|
ldbcmdCommand.Parameters.Add(prmInstrumentationID)
|
|
|
|
Dim ldbdsInstrumentations As DataSet = MyGlobals.g_objDatabaseLayer.ExecuteDataSet(ldbcmdCommand)
|
|
|
|
If ldbdsInstrumentations.Tables(0).Rows.Count > 0 Then
|
|
lblnReturnValue = False
|
|
|
|
Dim ldbrwRow As DataRow
|
|
For Each ldbrwRow In ldbdsInstrumentations.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
|
|
ldbdsInstrumentations.Clear()
|
|
|
|
Return lblnReturnValue
|
|
|
|
End Function
|
|
|
|
Public Overrides Function ToString() As String
|
|
Return mstrInstrumentationName
|
|
End Function
|
|
|
|
Public Sub WriteXML(ByRef objXMLWriter As XmlTextWriter)
|
|
objXMLWriter.WriteStartElement("Instrumentation")
|
|
|
|
objXMLWriter.WriteElementString("InstrumentationID", Me.InstrumentationID.ToString)
|
|
objXMLWriter.WriteElementString("InstrumentationName", Me.InstrumentationName)
|
|
|
|
objXMLWriter.WriteEndElement()
|
|
End Sub
|
|
|
|
Public Shared Function GetAllInstrumentations() As System.Collections.Generic.List(Of clsInstrumentation)
|
|
Dim lguidInstrumentationID As Guid
|
|
Dim ldbcmdCommand As New SqlClient.SqlCommand
|
|
Dim lobjInstrumentation As clsInstrumentation
|
|
Dim lcolInstrumentations As New System.Collections.Generic.List(Of clsInstrumentation)
|
|
|
|
ldbcmdCommand.CommandText = "sel_instrumentation_all"
|
|
|
|
ldbcmdCommand.CommandType = CommandType.StoredProcedure
|
|
Dim ldbdsInstrumentations As DataSet = MyGlobals.g_objDatabaseLayer.ExecuteDataSet(ldbcmdCommand)
|
|
|
|
If ldbdsInstrumentations.Tables(0).Rows.Count > 0 Then
|
|
Dim ldbrwRow As DataRow
|
|
For Each ldbrwRow In ldbdsInstrumentations.Tables(0).Rows
|
|
lguidInstrumentationID = CType(ldbrwRow.Item("instrumentation_id"), Guid)
|
|
|
|
If MyGlobals.CachedObjectExists(lguidInstrumentationID.ToString) Then
|
|
lobjInstrumentation = CType(MyGlobals.CachedObjectRetrieve(lguidInstrumentationID.ToString), clsInstrumentation)
|
|
Else
|
|
'lobjInstrumentation = New clsInstrumentation(lguidInstrumentationID)
|
|
lobjInstrumentation = New clsInstrumentation(ldbrwRow)
|
|
End If
|
|
lcolInstrumentations.Add(lobjInstrumentation)
|
|
Next
|
|
End If
|
|
ldbdsInstrumentations.Clear()
|
|
|
|
Return lcolInstrumentations
|
|
End Function
|
|
|
|
Public Shared Sub AddAllInstrumentationsToCache()
|
|
If MyGlobals.g_objObjectTypesCached.Contains("Instrumentations") = False Then
|
|
GetAllInstrumentations()
|
|
MyGlobals.g_objObjectTypesCached.Add("Instrumentations")
|
|
End If
|
|
End Sub
|
|
|
|
End Class
|