Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Region "Page Load"
- Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
- pnlSelectOrg.Visible = True
- pnlEditOrg.Visible = False
- pnlOrgUsers.Visible = False
- pnlAddUser.Visible = False
- If Not IsPostBack Then
- BindOrgs()
- End If
- If ddlOrgs.SelectedItem.Text = "Please select an organization to edit" Then
- lnkEditOrg.Enabled = False
- End If
- End Sub
- Private Sub BindOrgs()
- If ddlOrgs.Items.Count = 0 Then
- ' We don't want to have an organization loaded from default so put a dummy item in the drop down list
- ddlOrgs.Items.Add("Please select an organization to edit")
- Else
- ddlOrgs.Items.Clear()
- ddlOrgs.Items.Add("Please select an organization to edit")
- End If
- ' Since binding the drop down list to the dataset is going to remove our dummy item, add items in a loop from
- ' the dataset
- Dim sql As String = "Select * from Organizations"
- dsOrg = d.GetDataSet(sql, "text")
- For i As Integer = 0 To dsOrg.Tables(0).Rows.Count - 1
- ddlOrgs.Items.Add(dsOrg.Tables(0).Rows(i)("OrganizationName"))
- ddlOrgs.Items(i + 1).Value = dsOrg.Tables(0).Rows(i)("OrganizationID")
- Next
- End Sub
- #End Region
- #Region "Organizations"
- Protected Sub ddlOrgs_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlOrgs.SelectedIndexChanged
- Dim targetOrg As Integer = CInt(ddlOrgs.SelectedItem.Value)
- Dim sql As String = _
- "select * from Users as a " & _
- "inner join OrgUsers as b on a.UserID = b.UserID where b.OrgID = " & ddlOrgs.SelectedItem.Value
- Dim drUsers As SqlDataReader = d.GetReader(sql)
- grdOrgUsers.DataSource = drUsers
- grdOrgUsers.DataBind()
- drUsers.Close()
- pnlOrgUsers.Visible = True
- GetOrgModules(ddlOrgs.SelectedItem.Value)
- pnlOrgModules.Visible = True
- lnkEditOrg.Enabled = True
- chkModules.Enabled = False
- End Sub
- Protected Sub lnkEditOrg_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lnkEditOrg.Click
- txtModOrgName.Text = ddlOrgs.SelectedItem.Text
- pnlSelectOrg.Visible = False
- pnlEditOrg.Visible = True
- GetOrgModules(ddlOrgs.SelectedItem.Value)
- chkModules.Visible = True
- chkModules.Enabled = True
- End Sub
- Protected Sub lnkSaveModOrg_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lnkSaveModOrg.Click
- ' Get the list of Modules selected for this organization
- Dim ModuleList As New List(Of Integer)
- For i As Integer = 0 To chkModules.Items.Count - 1
- If chkModules.Items(i).Selected Then
- ModuleList.Add(chkModules.Items(i).Value)
- End If
- Next
- ' Update the organization name (new/edit)
- If ddlOrgs.SelectedItem.Text = "Please select an organization to edit" Then
- lblError.Text = "Please select an organization to edit"
- ElseIf txtModOrgName.Text = ddlOrgs.SelectedItem.Text Then
- AddUpdateOrg(txtModOrgName.Text, "Update", ddlOrgs.SelectedItem.Value)
- Else
- AddUpdateOrg(txtModOrgName.Text, "Add")
- End If
- BindOrgs()
- chkModules.Enabled = False
- pnlOrgUsers.Visible = True
- End Sub
- Private Sub AddUpdateOrg(ByVal OrganizationName As String, ByVal Action As String, Optional ByVal Target As Integer = Nothing)
- ' Get the list of Modules selected for this organization
- Dim ModuleList As New List(Of Integer)
- For i As Integer = 0 To chkModules.Items.Count - 1
- If chkModules.Items(i).Selected Then
- ModuleList.Add(chkModules.Items(i).Value)
- End If
- Next
- Dim sql As String = Nothing
- Select Case Action
- Case "Add"
- sql = "insert into Organizations(OrganizationName) values ('" & OrganizationName & "')"
- Case "Update"
- sql = "update Organizations set OrganizationName = '" & OrganizationName & "') " & _
- "where OrganizationID = " & Target
- End Select
- Dim dr As SqlDataReader = d.GetReader("select * from OrgModules where OrgID = " & Target)
- If dr.HasRows Then
- dr.Close()
- UpdateModules(Target, ModuleList, "update")
- Else
- dr.Close()
- UpdateModules(Target, ModuleList, "insert")
- End If
- d.DoCommand(sql)
- End Sub
- Private Sub UpdateModules(ByVal OrganizationID As Integer, ByVal ModuleList As List(Of Integer), ByVal Action As String)
- If Action = "insert" Then
- For i As Integer = 0 To ModuleList.Count - 1
- Dim sql As String = "insert into OrgModules(OrgID, ModuleID) values(" & OrganizationID & ", " & ModuleList.Item(i) & ")"
- d.DoCommand(sql)
- Next
- Else
- For i As Integer = 0 To ModuleList.Count - 1
- Dim sql As String = "update OrgModules set ModuleID = " & ModuleList.Item(i) & " where OrgID = " & OrganizationID
- d.DoCommand(sql)
- Next
- End If
- GetOrgModules(OrganizationID)
- End Sub
- Protected Sub lnkCancelModOrg_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lnkCancelModOrg.Click
- pnlSelectOrg.Visible = True
- pnlOrgUsers.Visible = True
- pnlEditOrg.Visible = False
- End Sub
- Protected Sub lnkNewOrg_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lnkNewOrg.Click
- pnlEditOrg.Visible = True
- pnlSelectOrg.Visible = False
- End Sub
- Private Sub GetOrgModules(ByVal OrganizationID As Integer)
- ' Clear all currently selected modules for this Organization
- Dim sql As String = "delete * from OrgModules where OrgID = " & OrganizationID
- d.DoCommand(sql)
- sql = "select ModuleID, ModuleName from Modules"
- Dim dr As SqlDataReader = d.GetReader(sql)
- chkModules.DataSource = dr
- chkModules.DataTextField = "ModuleName"
- chkModules.DataValueField = "ModuleID"
- chkModules.DataBind()
- dr.Close()
- sql = "select a.ModuleID, b.ModuleName from OrgModules as a" & vbCrLf & _
- "inner join Modules as b on a.ModuleID = b.ModuleID" & vbCrLf & _
- "where a.OrgID = " & OrganizationID
- Dim drMod = d.GetReader(sql)
- If drMod.HasRows Then
- chkModules.ClearSelection()
- While drMod.Read
- For i As Integer = 0 To chkModules.Items.Count - 1
- If chkModules.Items(i).Value = drMod.GetValue(0) Then
- chkModules.Items(i).Selected = True
- Exit For
- End If
- Next
- End While
- drMod.Close()
- Else
- chkModules.Visible = False
- End If
- End Sub
- #End Region
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement