SelectClass(TD〇〇)

Imports System.Data.SqlClient
Imports System.Text

Public Class TDControlNoManager
Inherits BaseDAO
Private Const TABLE_NAME As String = "ControlNoManager"
Public Property TData As TControlNoManager
Public Property DataList As TData(Of TControlNoManager)
Sub New()
MyBase.New
Me.DataList = New TData(Of TControlNoManager)
End Sub
Protected Overrides Sub ExecuteImp()
Using cmd As SqlCommand = Me.CreateCommand
Using dr As SqlDataReader = MyBase.GetSQLDataReader(cmd)
DataList.SetTList(dr)
End Using
End Using
End Sub
'---指定のAgreementIdが、自分以外のユーザにロックされているかチェック
Public Function IsSpecificAgmtLocked() As Boolean
Me.TData = New TControlNoManager With {
.ControlNo = TData.ControlNo
}
MyBase.Execute()
If DataList.Count = 0 Then Return False
'---ブランクまたは自分がロックしている場合はFalse
If String.IsNullOrEmpty(DataList.DList(SINGLE_RECORD).LockUserId) Then Return False
If DataList.DList(SINGLE_RECORD).LockUserId = usContext.UserId Then Return False
Return True
End Function
Protected Overrides Sub SetSQLParameters(ByVal cmd As SqlCommand)
'---ControlNo
If Me.TData.ControlNo > AppConstants.NO_VALUE Then cmd.Parameters.Add(New SqlParameter("@ControlNo", Me.TData.ControlNo))
'---UserId
If Not String.IsNullOrWhiteSpace(Me.TData.UserId) Then cmd.Parameters.Add(New SqlParameter("@UserId", Me.TData.UserId))
'---更新日時
If Not String.IsNullOrWhiteSpace(Me.TData.CreateTimeStamp.ToString) Then cmd.Parameters.Add(New SqlParameter("@CreateTimeStamp", Me.TData.CreateTimeStamp))
'---ロックユーザ
If Not String.IsNullOrWhiteSpace(Me.TData.LockUserId) Then cmd.Parameters.Add(New SqlParameter("@LockUserId", Me.TData.LockUserId))

End Sub

Private Function CreateCommand() As SqlCommand
Dim wrk As New StringBuilder
Dim cmd As New SqlCommand
wrk.Append(" SELECT ")
wrk.Append(" ControlNo,")
wrk.Append(" UserId,")
wrk.Append(" CreateTimeStamp,")
wrk.Append(" LockUserId")
wrk.Append(" FROM ")
wrk.Append($" {TABLE_NAME} U ")
If Me.Tdata Is Nothing Then
cmd.CommandText = wrk.ToString
Return cmd
End If
'---条件句の設定
Dim strWhere As String = ""
If Me.Tdata.ControlNo > AppConstants.NO_VALUE Then strWhere &= " AND ControlNo=@ControlNo "
If Not String.IsNullOrWhiteSpace(Me.Tdata.UserId) Then strWhere &= " AND UserId=@UserId "
If Not String.IsNullOrWhiteSpace(Me.TData.CreateTimeStamp.ToString) Then strWhere &= " AND CreateTimeStamp=@CreateTimeStamp "
If Not String.IsNullOrWhiteSpace(Me.TData.LockUserId) Then strWhere &= " AND LockUserId=@LockUserId "
If strWhere.Length > 0 Then strWhere &= " "
wrk.Append(Replace(strWhere, AppConstants.STR_AND, AppConstants.STR_WHERE, 1, 1))
'---SQLParameterのセット
cmd.CommandText = wrk.ToString
Me.SetSQLParameters(cmd)
Return cmd
End Function
End Class