Public Class SeitoList
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If IsPostBack Then
            ' ポストバック時
        Else
            ' 初期表示時
            Page.Header.Title = MyProperty.システムＭ.選挙コード名称

            ' セッションタイムアウトチェック
            If IsNothing(Session(MyConstant.SessionKey.投票者ID)) Then
                Throw New Exception(MyMessage.ログ.セッションタイムアウト)
            End If

            ' クエリ文字列からセッションに選挙IDを保存
            If Not IsNothing(Page.Request.QueryString.Get(MyConstant.QueryStringKey.選挙ID)) Then
                Session(MyConstant.SessionKey.選挙ID) = Page.Request.QueryString.Get(MyConstant.QueryStringKey.選挙ID)
            End If

            ' 選挙名の取得
            Using myDataBase As MyDataBase = New MyDataBase
                LtlSenkyoMei.Text = myDataBase.Get選挙名称By選挙ID(Session(MyConstant.SessionKey.選挙ID))
            End Using

            ' 政党Mを取得する。
            Dim ds As DataSet1 = New DataSet1
            Using myDataBase As MyDataBase = New MyDataBase
                myDataBase.Fill政党M(ds)
            End Using

            ' 候補者Mを取得する。
            Using myDataBase As MyDataBase = New MyDataBase
                myDataBase.Fill候補者MBy選挙ID(ds, Session(MyConstant.SessionKey.選挙ID))
            End Using

            ' 投票数を表示
            lblNumOfVotes.Text = CType(Session(MyConstant.SessionKey.投票数), String) & "票の投票"

            ' 政党一覧のHTMLタグ動的出力
            Dim tag As StringBuilder = New StringBuilder
            For Each row As DataSet1.政党MRow In ds.政党M
                ' 候補者が居る場合のみ
                If isExist候補者(row.政党ID.TrimEnd, ds) Then
                    tag.Append("<li class=""person"">")
                    tag.Append("<a href=""KohoList.aspx?" + _
                               MyConstant.QueryStringKey.選挙ID + "=" + Session(MyConstant.SessionKey.選挙ID) + _
                               "&" + MyConstant.QueryStringKey.政党検索キー + "=" + row.政党ID.TrimEnd + """>")
                    tag.Append("<img src=""" + MyConstant.政党画像フォルダ + row.画像ファイル名 + """>")
                    tag.Append("<span>" + row.政党名称 + "</span>")
                    tag.Append("</a>")
                    tag.Append("</li>")
                    tag.Append(System.Environment.NewLine)
                End If
            Next
            LtlSeitoList.Text = tag.ToString()

            ' 「指定しない」ボタン
            LtlAllButton.Text = "<a href=""KohoList.aspx?" + _
                       MyConstant.QueryStringKey.選挙ID + "=" + Session(MyConstant.SessionKey.選挙ID) + _
                       "&" + MyConstant.QueryStringKey.政党検索キー + "=all"" class=""btn"">指定しない</a>"
        End If
    End Sub

    Private Function isExist候補者(ByVal seitoId As String, ByVal ds As DataSet1) As Boolean
        For Each row As DataSet1.候補者MRow In ds.候補者M
            If row.政党ID.TrimEnd = seitoId Then
                Return True
                Exit For
            End If
        Next

        Return False
    End Function

End Class