Public Class Voting
    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

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

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

            ' 投票済みチェック
            If MyUtility.Is投票済み(Session(MyConstant.SessionKey.選挙ID), Session(MyConstant.SessionKey.投票者ID)) Then
                Throw New Exception(String.Format(MyMessage.ログ.重複投票エラー, Session(MyConstant.SessionKey.選挙ID), Session(MyConstant.SessionKey.投票者ID)))
            End If

            ' サーバに投票ファイルの出力
            Dim timestamp As DateTime = DateTime.Now
            Using myFileIO As MyFile = New MyFile
                'Dim filename As String = myFileIO.Get投票ファイル名(MyProperty.システムＭ.選挙コード,
                '                               Session(MyConstant.SessionKey.選挙ID),
                '                               MyProperty.システムＭ.投票所コード,
                '                               Session(MyConstant.SessionKey.投票者ID))

                Dim filename As String = myFileIO.Get投票ファイル名(MyProperty.システムＭ.選挙コード,
                                               Session(MyConstant.SessionKey.選挙ID),
                                               Session(MyConstant.SessionKey.投票所コード),
                                               Session(MyConstant.SessionKey.投票者ID))


                'myFileIO.Save投票ファイル(filename,
                '                    Session(MyConstant.SessionKey.選挙ID),
                '                    Session(MyConstant.SessionKey.候補者ID),
                '                    Session(MyConstant.SessionKey.投票数),
                '                    timestamp)

                myFileIO.Save投票ファイル(filename,
                    Session(MyConstant.SessionKey.選挙ID),
                    Session(MyConstant.SessionKey.候補者ID),
                    Session(MyConstant.SessionKey.投票数),
                    Session(MyConstant.SessionKey.投票所コード),
                    timestamp)

            End Using

            ' 投票Tにデータを追加する。
            Dim internetFlag As Integer = 0
            If MyProperty.システムＭ.Isインターネット投票型 Then
                internetFlag = 1
            End If
            Using myDataBase As MyDataBase = New MyDataBase
                myDataBase.Insert投票T(Session(MyConstant.SessionKey.選挙ID),
                                     Session(MyConstant.SessionKey.投票者ID),
                                     Session(MyConstant.SessionKey.認証日時),
                                     timestamp,
                                     internetFlag)
            End Using

            ' 3秒後に自動で画面遷移。
            body1.Attributes("onload") = "setTimeout('location.replace(""Voted.aspx"");', " + MyConstant.自動画面遷移時間ミリ秒 + ");"

            If Not MyProperty.システムＭ.Isインターネット投票型 Then
                ' 来場型の場合、JavaAppletのタグ生成
                LtlTimerOff.Text = "<APPLET CODE=""TimerOff.class"" ARCHIVE=""TimerOff.jar"" WIDTH=""0"" HEIGHT=""0"" MAYSCRIPT></APPLET>"
            End If
        End If
        
    End Sub

End Class