Imports System.Data
Imports LYB.VB
Imports LYB.VB.CLASSES

Partial Class group2_EditMember
    Inherits System.Web.UI.Page
    Private data As New DataUtils
    Private dsMember As DataSet
    Private member As Member
    Private changesAy As New ArrayList

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        If Not Me.IsPostBack Then
            btnReturn.Enabled = False
            member = CType(Session("member"), Member)
            tdFirstName.Style.Add("font-family", member.FontFamily)
            tdFirstName.Style.Add("font-size", member.FontSize & "em")
            txtFirstname.Style.Add("font-family", member.FontFamily)
            txtFirstname.Style.Add("font-size", member.FontSize & "em")
            tdLastName.Style.Add("font-family", member.FontFamily)
            tdLastName.Style.Add("font-size", member.FontSize & "em")
            txtLastname.Style.Add("font-family", member.FontFamily)
            txtLastname.Style.Add("font-size", member.FontSize & "em")
            tdMailAddressHome.Style.Add("font-family", member.FontFamily)
            tdMailAddressHome.Style.Add("font-size", member.FontSize & "em")
            txtMailAddressHome.Style.Add("font-family", member.FontFamily)
            txtMailAddressHome.Style.Add("font-size", member.FontSize & "em")
            tdMailAddressWork.Style.Add("font-family", member.FontFamily)
            tdMailAddressWork.Style.Add("font-size", member.FontSize & "em")
            txtMailAddressWork.Style.Add("font-family", member.FontFamily)
            txtMailAddressWork.Style.Add("font-size", member.FontSize & "em")
            tdPhoneNumberHome.Style.Add("font-family", member.FontFamily)
            tdPhoneNumberHome.Style.Add("font-size", member.FontSize & "em")
            txtPhoneNumberHome.Style.Add("font-family", member.FontFamily)
            txtPhoneNumberHome.Style.Add("font-size", member.FontSize & "em")
            tdPhoneNumberWork.Style.Add("font-family", member.FontFamily)
            tdPhoneNumberWork.Style.Add("font-size", member.FontSize & "em")
            txtPhoneNumberWork.Style.Add("font-family", member.FontFamily)
            txtPhoneNumberWork.Style.Add("font-size", member.FontSize & "em")
            tdCellPhoneNumber.Style.Add("font-family", member.FontFamily)
            tdCellPhoneNumber.Style.Add("font-size", member.FontSize & "em")
            txtCellPhoneNumber.Style.Add("font-family", member.FontFamily)
            txtCellPhoneNumber.Style.Add("font-size", member.FontSize & "em")
            tdPostAddress.Style.Add("font-family", member.FontFamily)
            tdPostAddress.Style.Add("font-size", member.FontSize & "em")
            txtPostAddress.Style.Add("font-family", member.FontFamily)
            txtPostAddress.Style.Add("font-size", member.FontSize & "em")
            tdZipCode.Style.Add("font-family", member.FontFamily)
            tdZipCode.Style.Add("font-size", member.FontSize & "em")
            txtZipCode.Style.Add("font-family", member.FontFamily)
            txtZipCode.Style.Add("font-size", member.FontSize & "em")
            tdCity.Style.Add("font-family", member.FontFamily)
            tdCity.Style.Add("font-size", member.FontSize & "em")
            txtCity.Style.Add("font-family", member.FontFamily)
            txtCity.Style.Add("font-size", member.FontSize & "em")
            tdFont.Style.Add("font-family", member.FontFamily)
            tdFont.Style.Add("font-size", member.FontSize & "em")
            lstFont.Style.Add("font-family", member.FontFamily)
            lstFont.Style.Add("font-size", member.FontSize & "em")
            tdFontSize.Style.Add("font-family", member.FontFamily)
            tdFontSize.Style.Add("font-size", member.FontSize & "em")
            lstFontSize.Style.Add("font-family", member.FontFamily)
            lstFontSize.Style.Add("font-size", member.FontSize & "em")
            tdFontSizeExplanation.Style.Add("font-family", member.FontFamily)
            tdFontSizeExplanation.Style.Add("font-size", member.FontSize & "em")
            Dim dsFonts As DataSet = data.GetFont()
            lstFont.Items.Clear()
            Dim itemIndex As Integer = 0
            'lstFont.Items.Add("Arial")
            'lstFont.Items(itemIndex).Value = 10
            'itemIndex = itemIndex + 1
            For Each row As DataRow In dsFonts.Tables(0).Rows
                lstFont.Items.Add(row.Item("fontfamily"))
                lstFont.Items(itemIndex).Value = row.Item("fontfamilyid")
                itemIndex = itemIndex + 1
            Next
            lstFontSize.Items.Clear()
            lstFontSize.Items.Add("0.8")
            lstFontSize.Items(0).Value = "0.8"
            lstFontSize.Items.Add("0.9")
            lstFontSize.Items(1).Value = "0.9"
            lstFontSize.Items.Add("1.0")
            lstFontSize.Items(2).Value = "1.0"
            lstFontSize.Items.Add("1.1")
            lstFontSize.Items(3).Value = "1.1"
            lstFontSize.Items.Add("1.2")
            lstFontSize.Items(4).Value = "1.2"
            lstFontSize.Items.Add("1.3")
            lstFontSize.Items(5).Value = "1.3"
            lstFontSize.Items.Add("1.4")
            lstFontSize.Items(6).Value = "1.4"
            lstFontSize.Items.Add("1.5")
            lstFontSize.Items(7).Value = "1.5"
            lstFontSize.Items.Add("1.6")
            lstFontSize.Items(8).Value = "1.6"
            If CType(Request.QueryString("memberid"), Integer) = member.MemberID Then
                lblMemberID.Text = member.MemberID
                txtFirstname.Text = member.FirstName
                txtLastname.Text = member.LastName
                txtMailAddressHome.Text = member.MailAddressHome
                txtMailAddressWork.Text = member.MailAddressWork
                txtPhoneNumberHome.Text = member.PhoneNumberHome
                txtPhoneNumberWork.Text = member.PhoneNumberWork
                txtCellPhoneNumber.Text = member.CellPhoneNumber
                txtPostAddress.Text = member.PostAddress
                txtZipCode.Text = member.ZipCode
                txtCity.Text = member.City
                lstFont.SelectedValue = member.FontFamilyID
                Session("InitialFontID") = member.FontFamilyID
                Session("SelectedFontID") = member.FontFamilyID
                lstFontSize.SelectedValue = member.FontSize
                Session("InitialFontSize") = member.FontSize
                Session("SelectedFontSize") = member.FontSize
                Session("editedmember") = Nothing
            Else
                ' hämta member-data för annan member
                Dim ds As DataSet = data.GetMember(CType(Request.QueryString("memberid"), Integer))
                With ds.Tables("member").Rows(0)
                    txtFirstname.Text = .Item("firstname")
                    txtLastname.Text = .Item("lastname")
                    If Not .Item("mailaddresshome") Is System.DBNull.Value Then
                        txtMailAddressHome.Text = .Item("mailaddresshome")
                    End If
                    If Not .Item("mailaddresswork") Is System.DBNull.Value Then
                        txtMailAddressWork.Text = .Item("mailaddresswork")
                    End If
                    If Not .Item("phonenumberhome") Is System.DBNull.Value Then
                        txtPhoneNumberHome.Text = .Item("phonenumberhome")
                    End If
                    If Not .Item("phonenumberwork") Is System.DBNull.Value Then
                        txtPhoneNumberWork.Text = .Item("phonenumberwork")
                    End If
                    If Not .Item("cellphonenumber") Is System.DBNull.Value Then
                        txtCellPhoneNumber.Text = .Item("cellphonenumber")
                    End If
                    If Not .Item("postaddress") Is System.DBNull.Value Then
                        txtPostAddress.Text = .Item("postaddress")
                    End If
                    If Not .Item("zipcode") Is System.DBNull.Value Then
                        txtZipCode.Text = .Item("zipcode")
                    End If
                    If Not .Item("city") Is System.DBNull.Value Then
                        txtCity.Text = .Item("city")
                    End If
                    If Not .Item("fontfamily") Is System.DBNull.Value Then
                        lstFont.SelectedValue = .Item("fontfamilyid")
                        Session("InitialFontID") = .Item("fontfamilyid")
                        Session("SelectedFontID") = .Item("fontfamilyid")
                    Else
                        lstFont.SelectedValue = 90
                        Session("InitialFontID") = 0
                        Session("SelectedFontID") = 90
                    End If
                    If Not .Item("fontsize") Is System.DBNull.Value Then
                        lstFontSize.SelectedValue = .Item("fontsize")
                        Session("InitialFontSize") = .Item("fontsize")
                        Session("SelectedFontSize") = .Item("fontsize")
                    Else
                        lstFontSize.SelectedValue = 8
                        Session("InitialFontSize") = 0
                        Session("SelectedFontSize") = 8
                    End If
                End With
                Session("editedmember") = ds
            End If
        End If
    End Sub

    Protected Sub btnSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSave.Click
        btnSaveNot.Enabled = False
        btnReturn.Enabled = True
        If IsNothing(Session("editedmember")) Then
            ' medlem editerar egna uppgifter
            Try
                member = CType(Session("member"), Member)
                If member.FirstName <> txtFirstname.Text Then
                    member.FirstName = txtFirstname.Text
                    changesAy.Add("Förnamn")
                End If
                If member.LastName <> txtLastname.Text Then
                    member.LastName = txtLastname.Text
                    changesAy.Add("Efternamn")
                End If
                If member.MailAddressHome <> txtMailAddressHome.Text Then
                    member.MailAddressHome = txtMailAddressHome.Text
                    changesAy.Add("Privat epostadress")
                End If
                If member.MailAddressWork <> txtMailAddressWork.Text Then
                    member.MailAddressWork = txtMailAddressWork.Text
                    changesAy.Add("Epostadress till arbetet")
                End If
                If member.PhoneNumberHome <> txtPhoneNumberHome.Text Then
                    member.PhoneNumberHome = txtPhoneNumberHome.Text
                    changesAy.Add("Hemtelefonnr")
                End If
                If member.PhoneNumberWork <> txtPhoneNumberWork.Text Then
                    member.PhoneNumberWork = txtPhoneNumberWork.Text
                    changesAy.Add("Arbetstelefonnr")
                End If
                If member.CellPhoneNumber <> txtCellPhoneNumber.Text Then
                    member.CellPhoneNumber = txtCellPhoneNumber.Text
                    changesAy.Add("Mobilnr")
                End If
                If member.PostAddress <> txtPostAddress.Text Then
                    member.PostAddress = txtPostAddress.Text
                    changesAy.Add("Adress")
                End If
                If member.ZipCode <> txtZipCode.Text Then
                    member.ZipCode = txtZipCode.Text
                    changesAy.Add("Postnr")
                End If
                If member.City <> txtCity.Text Then
                    member.City = txtCity.Text
                    changesAy.Add("Postadress")
                End If
                If Session("SelectedFontID") <> Session("InitialFontID") Then
                    member.FontFamilyID = Session("SelectedFontID")
                    member.FontFamily = Session("SelectedFont")
                    changesAy.Add("FontFamily")
                End If
                If Session("SelectedFontSize") <> Session("InitialFontSize") Then
                    member.FontSize = Session("SelectedFontSize")
                    changesAy.Add("FontSize")
                End If
                If changesAy.Count > 0 Then
                    Dim result As String = member.Save(member.MemberID)
                    lblMessage.Text = "Dina medlemsuppgifter har uppdaterats"
                    data.UpdatePageChangedDate(2, "Medlemmar")
                Else
                    lblMessage.Text = "Ingen ändring gjordes, dina medlemsuppgifter har inte uppdaterats"
                End If
            Catch ex As System.Exception
                lblMessage.Text = ex.Message
            End Try
        Else
            ' administratör editerar medlemsuppgifter (för annan än sig själv)
            Try
                Dim ds As DataSet = CType(Session("editedmember"), DataSet)
                With ds.Tables("member").Rows(0)
                    If txtFirstname.Text <> .Item("firstname") Then
                        .Item("firstname") = txtFirstname.Text
                        changesAy.Add("Förnamn")
                    End If
                    If txtLastname.Text <> .Item("lastname") Then
                        .Item("lastname") = txtLastname.Text
                        changesAy.Add("Efternamn")
                    End If
                    If Not .Item("mailaddresshome") Is System.DBNull.Value Then
                        If txtMailAddressHome.Text <> .Item("mailaddresshome") Then
                            .Item("mailaddresshome") = txtMailAddressHome.Text
                            changesAy.Add("Privat epostadress")
                        End If
                    Else
                        If txtMailAddressHome.Text <> "" Then
                            .Item("mailaddresshome") = txtMailAddressHome.Text
                            changesAy.Add("Privat epostadress")
                        End If
                    End If
                    If Not .Item("mailaddresswork") Is System.DBNull.Value Then
                        If txtMailAddressWork.Text <> .Item("mailaddresswork") Then
                            .Item("mailaddresswork") = txtMailAddressWork.Text
                            changesAy.Add("Epostadress till arbetet")
                        End If
                    Else
                        If txtMailAddressWork.Text <> "" Then
                            .Item("mailaddresswork") = txtMailAddressWork.Text
                            changesAy.Add("Epostadress till arbetet")
                        End If
                    End If
                    If Not .Item("phonenumberhome") Is System.DBNull.Value Then
                        If txtPhoneNumberHome.Text <> .Item("phonenumberhome") Then
                            .Item("phonenumberhome") = txtPhoneNumberHome.Text
                            changesAy.Add("Hemtelefonnr")
                        End If
                    Else
                        If txtPhoneNumberHome.Text <> "" Then
                            .Item("phonenumberhome") = txtPhoneNumberHome.Text
                            changesAy.Add("Hemtelefonnr")
                        End If
                    End If
                    If Not .Item("phonenumberwork") Is System.DBNull.Value Then
                        If txtPhoneNumberWork.Text <> .Item("phonenumberwork") Then
                            .Item("phonenumberwork") = txtPhoneNumberWork.Text
                            changesAy.Add("Arbetstelefonnr")
                        End If
                    Else
                        If txtPhoneNumberWork.Text <> "" Then
                            .Item("phonenumberwork") = txtPhoneNumberWork.Text
                            changesAy.Add("Arbetstelefonnr")
                        End If
                    End If
                    If Not .Item("cellphonenumber") Is System.DBNull.Value Then
                        If txtCellPhoneNumber.Text <> .Item("cellphonenumber") Then
                            .Item("cellphonenumber") = txtCellPhoneNumber.Text
                            changesAy.Add("Mobilnr")
                        End If
                    Else
                        If txtCellPhoneNumber.Text <> "" Then
                            .Item("cellphonenumber") = txtCellPhoneNumber.Text
                            changesAy.Add("Mobilnr")
                        End If
                    End If
                    If Not .Item("postaddress") Is System.DBNull.Value Then
                        If txtPostAddress.Text <> .Item("postaddress") Then
                            .Item("postaddress") = txtPostAddress.Text
                            changesAy.Add("Adress")
                        End If
                    Else
                        If txtPostAddress.Text <> "" Then
                            .Item("postaddress") = txtPostAddress.Text
                            changesAy.Add("Adress")
                        End If
                    End If
                    If Not .Item("zipcode") Is System.DBNull.Value Then
                        If txtZipCode.Text <> .Item("zipcode") Then
                            .Item("zipcode") = txtZipCode.Text
                            changesAy.Add("Postnr")
                        End If
                    Else
                        If txtZipCode.Text <> "" Then
                            .Item("zipcode") = txtZipCode.Text
                            changesAy.Add("Postnr")
                        End If
                    End If
                    If Not .Item("city") Is System.DBNull.Value Then
                        If txtCity.Text <> .Item("city") Then
                            .Item("city") = txtCity.Text
                            changesAy.Add("Postadress")
                        End If
                    Else
                        If txtCity.Text <> "" Then
                            .Item("city") = txtCity.Text
                            changesAy.Add("Postadress")
                        End If
                    End If
                    If Session("SelectedFontID") <> Session("InitialFontID") Then
                        .Item("FontFamilyID") = Session("SelectedFontID")
                        changesAy.Add("FontFamily")
                    End If
                    If Session("SelectedFontSize") <> Session("InitialFontSize") Then
                        .Item("FontSize") = Session("SelectedFontSize")
                        changesAy.Add("FontSize")
                    End If
                End With
                If changesAy.Count > 0 Then
                    Dim result As String = data.UpdateBatch(ds, "member")
                    lblMessage.Text = "Medlemsuppgifterna har uppdaterats"
                    data.UpdatePageChangedDate(2, "Medlemmar")
                Else
                    lblMessage.Text = "Ingen ändring gjordes, medlemsuppgifterna har inte uppdaterats"
                End If
            Catch ex As Exception
                lblMessage.Text = ex.Message
            End Try
        End If

    End Sub
    Protected Sub btnSaveNot_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSaveNot.Click
        Response.Redirect("medlemmar.aspx")
    End Sub
    Protected Sub btnReturn_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnReturn.Click
        Response.Redirect("medlemmar.aspx")
    End Sub

    Protected Sub lstFont_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles lstFont.SelectedIndexChanged
        Session("SelectedFontID") = lstFont.SelectedItem.Value
        Session("SelectedFont") = lstFont.SelectedItem.Text
    End Sub

    Protected Sub lstFontSize_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles lstFontSize.SelectedIndexChanged
        Session("SelectedFontSize") = lstFontSize.SelectedItem.Value
    End Sub
End Class
