'**************************************************************************
' Name       :MyProperty
'--------------------------------------------------------------------------
' Comment    :アプリケーション独自のプロパティ値を保持する。
'--------------------------------------------------------------------------
' Design On  :2013/01/31
'        By  :NCS)T.Kikuchi
'--------------------------------------------------------------------------
' Update On  :2019/0825
'        By  :MEC)T.Hashimoto
' Comment    :
'**************************************************************************
Public Class MyProperty

#Region "システムＭ"
    Public Class システムＭ

        Private Shared dt As DataSet1.システムMDataTable = Nothing

        Public Shared ReadOnly Property 投票制御フラグ() As String
            Get
                ' 投票制御フラグだけは、毎回ＤＢ取得します。
                Using myDataBase As MyDataBase = New MyDataBase
                    Dim t As DataSet1.システムMDataTable = myDataBase.FillシステムMDataTable()
                    If Not IsNothing(t.FindBy項目名(MyConstant.投票制御フラグ項目名)) Then
                        Return t.FindBy項目名(MyConstant.投票制御フラグ項目名).値
                    Else
                        Throw New Exception(String.Format(MyMessage.ログ.システムＭ取得エラー, MyConstant.投票制御フラグ項目名))
                    End If
                End Using
            End Get
        End Property

        Public Shared ReadOnly Property 選挙コード名称() As String
            Get
                Return GetシステムＭ値By項目名("選挙コード名称")
            End Get
        End Property

        Public Shared ReadOnly Property 選挙コード() As String
            Get
                Return GetシステムＭ値By項目名("選挙コード")
            End Get
        End Property

        Public Shared ReadOnly Property 投票所コード() As String
            Get
                Return GetシステムＭ値By項目名("投票所コード")
            End Get
        End Property

        Public Shared ReadOnly Property Isインターネット投票型() As Boolean
            Get
                If GetシステムＭ値By項目名("インターネット投票型フラグ") = "1" Then
                    Return True
                Else
                    Return False
                End If
            End Get
        End Property

        Public Shared ReadOnly Property 管理者ID() As String
            Get
                Return GetシステムＭ値By項目名("管理者ID")
            End Get
        End Property

        Public Shared ReadOnly Property 管理者パスワード() As String
            Get
                Return GetシステムＭ値By項目名("管理者パスワード")
            End Get
        End Property

        Public Shared ReadOnly Property 投票フォルダパス() As String
            Get
                Return GetシステムＭ値By項目名("投票フォルダパス")
            End Get
        End Property

        Public Shared ReadOnly Property 投票バックアップフォルダパス() As String
            Get
                Return GetシステムＭ値By項目名("投票バックアップフォルダパス")
            End Get
        End Property

        Public Class メッセージ
            Public Class Defaultaspx
                Public Shared ReadOnly Property インターネット型() As String
                    Get
                        Return GetシステムＭ値By項目名("メッセージ.Default.インターネット型")
                    End Get
                End Property

                Public Shared ReadOnly Property 開始処理中() As String
                    Get
                        Return GetシステムＭ値By項目名("メッセージ.Default.開始処理中")
                    End Get
                End Property

                Public Shared ReadOnly Property 投票不可() As String
                    Get
                        Return GetシステムＭ値By項目名("メッセージ.Default.投票不可")
                    End Get
                End Property
            End Class
            
            Public Class Login
                Public Shared ReadOnly Property 照合エラー() As String
                    Get
                        Return GetシステムＭ値By項目名("メッセージ.Login.照合エラー")
                    End Get
                End Property
            End Class

            Public Class Login2
                Public Shared ReadOnly Property 認証エラー() As String
                    Get
                        Return GetシステムＭ値By項目名("メッセージ.Login2.認証エラー")
                    End Get
                End Property
            End Class

            Public Class Complete
                Public Shared ReadOnly Property 投票終了() As String
                    Get
                        Return GetシステムＭ値By項目名("メッセージ.Complete.投票終了")
                    End Get
                End Property

                Public Shared ReadOnly Property 投票継続() As String
                    Get
                        Return GetシステムＭ値By項目名("メッセージ.Complete.投票継続")
                    End Get
                End Property
            End Class

            Public Class SenkyoList
                Public Shared ReadOnly Property 投票済み() As String
                    Get
                        Return GetシステムＭ値By項目名("メッセージ.SenkyoList.投票済み")
                    End Get
                End Property
            End Class

            Public Class Erroraspx
                Public Shared ReadOnly Property エラー時来場型() As String
                    Get
                        Return GetシステムＭ値By項目名("メッセージ.Error.エラー時来場型")
                    End Get
                End Property
                Public Shared ReadOnly Property エラー時インターネット型() As String
                    Get
                        Return GetシステムＭ値By項目名("メッセージ.Error.エラー時インターネット型")
                    End Get
                End Property
            End Class

        End Class

        Private Shared Function GetシステムＭ値By項目名(ByVal _項目名 As String) As String
            If IsNothing(dt) Then
                FillシステムMDataTable()
            End If
            If Not IsNothing(dt.FindBy項目名(_項目名)) Then
                Return dt.FindBy項目名(_項目名).値
            Else
                Throw New Exception(String.Format(MyMessage.ログ.システムＭ取得エラー, _項目名))
            End If
        End Function

        Public Shared Sub FillシステムMDataTable()
            Using myDataBase As MyDataBase = New MyDataBase
                dt = myDataBase.FillシステムMDataTable()
            End Using
        End Sub
    End Class
#End Region

    Public Shared Property LOGフォルダパス() As String
    '投票txt取込時のログ出力用
    Public Shared Property LOG_Cフォルダパス() As String
    '投票データバックアップ用
    Public Shared Property BAKフォルダパス() As String

    Public Shared Property EXCELテンプレートフォルダパス() As String

    Public Shared Property TEMPフォルダパス() As String

    Public Shared ReadOnly Property DateTimeMinValue() As DateTime
        Get
            Return Convert.ToDateTime("1900/01/01")
        End Get
    End Property

End Class
