Advertisement
Ortund

Untitled

Oct 26th, 2011
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #Region "Page Load"
  2.     Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  3.         pnlSelectOrg.Visible = True
  4.         pnlEditOrg.Visible = False
  5.         pnlOrgUsers.Visible = False
  6.         pnlAddUser.Visible = False
  7.  
  8.         If Not IsPostBack Then
  9.             BindOrgs()
  10.         End If
  11.  
  12.         If ddlOrgs.SelectedItem.Text = "Please select an organization to edit" Then
  13.             lnkEditOrg.Enabled = False
  14.         End If
  15.     End Sub
  16.  
  17.     Private Sub BindOrgs()
  18.         If ddlOrgs.Items.Count = 0 Then
  19.             ' We don't want to have an organization loaded from default so put a dummy item in the drop down list
  20.             ddlOrgs.Items.Add("Please select an organization to edit")
  21.         Else
  22.             ddlOrgs.Items.Clear()
  23.             ddlOrgs.Items.Add("Please select an organization to edit")
  24.         End If
  25.  
  26.         ' Since binding the drop down list to the dataset is going to remove our dummy item, add items in a loop from
  27.         ' the dataset
  28.  
  29.         Dim sql As String = "Select * from Organizations"
  30.         dsOrg = d.GetDataSet(sql, "text")
  31.         For i As Integer = 0 To dsOrg.Tables(0).Rows.Count - 1
  32.             ddlOrgs.Items.Add(dsOrg.Tables(0).Rows(i)("OrganizationName"))
  33.             ddlOrgs.Items(i + 1).Value = dsOrg.Tables(0).Rows(i)("OrganizationID")
  34.         Next
  35.     End Sub
  36. #End Region
  37.  
  38. #Region "Organizations"
  39.     Protected Sub ddlOrgs_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlOrgs.SelectedIndexChanged
  40.         Dim targetOrg As Integer = CInt(ddlOrgs.SelectedItem.Value)
  41.         Dim sql As String = _
  42.                         "select * from Users as a " & _
  43.                         "inner join OrgUsers as b on a.UserID = b.UserID where b.OrgID = " & ddlOrgs.SelectedItem.Value
  44.         Dim drUsers As SqlDataReader = d.GetReader(sql)
  45.         grdOrgUsers.DataSource = drUsers
  46.         grdOrgUsers.DataBind()
  47.         drUsers.Close()
  48.  
  49.         pnlOrgUsers.Visible = True
  50.         GetOrgModules(ddlOrgs.SelectedItem.Value)
  51.         pnlOrgModules.Visible = True
  52.  
  53.         lnkEditOrg.Enabled = True
  54.         chkModules.Enabled = False
  55.     End Sub
  56.  
  57.     Protected Sub lnkEditOrg_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lnkEditOrg.Click
  58.         txtModOrgName.Text = ddlOrgs.SelectedItem.Text
  59.         pnlSelectOrg.Visible = False
  60.         pnlEditOrg.Visible = True
  61.         GetOrgModules(ddlOrgs.SelectedItem.Value)
  62.         chkModules.Visible = True
  63.         chkModules.Enabled = True
  64.     End Sub
  65.  
  66.     Protected Sub lnkSaveModOrg_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lnkSaveModOrg.Click
  67.         ' Get the list of Modules selected for this organization
  68.         Dim ModuleList As New List(Of Integer)
  69.         For i As Integer = 0 To chkModules.Items.Count - 1
  70.             If chkModules.Items(i).Selected Then
  71.                 ModuleList.Add(chkModules.Items(i).Value)
  72.             End If
  73.         Next
  74.  
  75.         ' Update the organization name (new/edit)
  76.         If ddlOrgs.SelectedItem.Text = "Please select an organization to edit" Then
  77.             lblError.Text = "Please select an organization to edit"
  78.         ElseIf txtModOrgName.Text = ddlOrgs.SelectedItem.Text Then
  79.             AddUpdateOrg(txtModOrgName.Text, "Update", ddlOrgs.SelectedItem.Value)
  80.         Else
  81.             AddUpdateOrg(txtModOrgName.Text, "Add")
  82.         End If
  83.  
  84.         BindOrgs()
  85.         chkModules.Enabled = False
  86.         pnlOrgUsers.Visible = True
  87.     End Sub
  88.  
  89.     Private Sub AddUpdateOrg(ByVal OrganizationName As String, ByVal Action As String, Optional ByVal Target As Integer = Nothing)
  90.         ' Get the list of Modules selected for this organization
  91.         Dim ModuleList As New List(Of Integer)
  92.         For i As Integer = 0 To chkModules.Items.Count - 1
  93.             If chkModules.Items(i).Selected Then
  94.                 ModuleList.Add(chkModules.Items(i).Value)
  95.             End If
  96.         Next
  97.  
  98.         Dim sql As String = Nothing
  99.  
  100.         Select Case Action
  101.             Case "Add"
  102.                 sql = "insert into Organizations(OrganizationName) values ('" & OrganizationName & "')"
  103.  
  104.             Case "Update"
  105.                 sql = "update Organizations set OrganizationName = '" & OrganizationName & "') " & _
  106.                     "where OrganizationID = " & Target
  107.  
  108.         End Select
  109.  
  110.         Dim dr As SqlDataReader = d.GetReader("select * from OrgModules where OrgID = " & Target)
  111.         If dr.HasRows Then
  112.             dr.Close()
  113.             UpdateModules(Target, ModuleList, "update")
  114.         Else
  115.             dr.Close()
  116.             UpdateModules(Target, ModuleList, "insert")
  117.         End If
  118.         d.DoCommand(sql)
  119.     End Sub
  120.  
  121.     Private Sub UpdateModules(ByVal OrganizationID As Integer, ByVal ModuleList As List(Of Integer), ByVal Action As String)
  122.         If Action = "insert" Then
  123.             For i As Integer = 0 To ModuleList.Count - 1
  124.                 Dim sql As String = "insert into OrgModules(OrgID, ModuleID) values(" & OrganizationID & ", " & ModuleList.Item(i) & ")"
  125.                 d.DoCommand(sql)
  126.             Next
  127.         Else
  128.             For i As Integer = 0 To ModuleList.Count - 1
  129.                 Dim sql As String = "update OrgModules set ModuleID = " & ModuleList.Item(i) & " where OrgID = " & OrganizationID
  130.                 d.DoCommand(sql)
  131.             Next
  132.         End If
  133.  
  134.         GetOrgModules(OrganizationID)
  135.     End Sub
  136.  
  137.     Protected Sub lnkCancelModOrg_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lnkCancelModOrg.Click
  138.         pnlSelectOrg.Visible = True
  139.         pnlOrgUsers.Visible = True
  140.         pnlEditOrg.Visible = False
  141.     End Sub
  142.  
  143.     Protected Sub lnkNewOrg_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lnkNewOrg.Click
  144.         pnlEditOrg.Visible = True
  145.         pnlSelectOrg.Visible = False
  146.     End Sub
  147.  
  148.     Private Sub GetOrgModules(ByVal OrganizationID As Integer)
  149.         ' Clear all currently selected modules for this Organization
  150.         Dim sql As String = "delete * from OrgModules where OrgID = " & OrganizationID
  151.         d.DoCommand(sql)
  152.  
  153.         sql = "select ModuleID, ModuleName from Modules"
  154.         Dim dr As SqlDataReader = d.GetReader(sql)
  155.  
  156.         chkModules.DataSource = dr
  157.         chkModules.DataTextField = "ModuleName"
  158.         chkModules.DataValueField = "ModuleID"
  159.         chkModules.DataBind()
  160.         dr.Close()
  161.  
  162.         sql = "select a.ModuleID, b.ModuleName from OrgModules as a" & vbCrLf & _
  163.             "inner join Modules as b on a.ModuleID = b.ModuleID" & vbCrLf & _
  164.             "where a.OrgID = " & OrganizationID
  165.         Dim drMod = d.GetReader(sql)
  166.         If drMod.HasRows Then
  167.             chkModules.ClearSelection()
  168.             While drMod.Read
  169.                 For i As Integer = 0 To chkModules.Items.Count - 1
  170.                     If chkModules.Items(i).Value = drMod.GetValue(0) Then
  171.                         chkModules.Items(i).Selected = True
  172.                         Exit For
  173.                     End If
  174.                 Next
  175.             End While
  176.             drMod.Close()
  177.         Else
  178.             chkModules.Visible = False
  179.         End If
  180.     End Sub
  181. #End Region
  182.  
  183.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement