Imports System.Data
Imports System.Data.SqlClient

Partial Class Admin_access_rights
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Try
            If Session("AdminID") Is Nothing Then
                Response.Redirect("AdminLogin.aspx?sesn=expire")
                Exit Sub
            End If
            If Not IsPostBack Then
                If Session("AdminID") = Nothing Then
                    Response.Redirect("AdminLogin.aspx")
                End If
                'Call Fill_Combo("SELECT  UserType_Kid, UserType_Name FROM UserType where UserType_CompanyId='" & Session("g_Company") & "' and  UserType_IsDeleted='0' order by UserType_Name", ddlusertype)
                Call Fill_Combo("SELECT DISTINCT Supplier_Master.Supplier_AdminUserId, Supplier_Master.Supplier_Name FROM  SupplierLogin RIGHT OUTER JOIN  Supplier_Master ON SupplierLogin.AdminUser_Kid = Supplier_Master.Supplier_AdminUserId WHERE     SupplierLogin.AdminUser_IsDeleted = '0' and AdminUser_UserTypeId='00000E6' order by Supplier_Name", ddlUserName)
                '  
                Call Fill_Combo("select moduleid,modulename from MyModule order by modulename", ddlModule)  'Fill dropdownlist
                Call CheckRights(Me, Session("g_User").ToString, "Access Rights")   'Check Accessrights
                chkCheckAll.Enabled = False
                chkCheckAll.Text = "Check All"
            End If
            lblerror.Visible = False

        Catch ex As Exception
            CreateMessageAlert(Me, ex.Message, "strkey")   'Display error Message
        End Try
    End Sub
    Protected Sub FillGrid()   'fill the data in gridview
        Try
            Dim dt As New DataTable                             'It's a datatable
            Dim qry As String                                   'Define a String Variable for Query
            Dim i As Integer                                    'It's a Integer
            Dim con As New SqlConnection                        'Define connection variable for connecting to SQL-Server
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")    'Read the ConnectionString from web.config File
            con.Open()                                          'Open the Connection
            qry = "select distinct Menu_SrNo,Menu_MenuName from MyMenu where Menu_ModuleId='" & ddlModule.SelectedItem.Value & "'"
            Dim da As New SqlDataAdapter(qry, con)          'It's a SqlDataAdaptor
            Dim ds As New DataSet                                 'It's a DataSet
            da.Fill(ds)                                      'fill the dataset in the DataAdapter
            Dim drow As DataRow
            i = 0
            Dim dcSrNo As New DataColumn("SrNo", GetType(Integer))
            Dim dcMenuName As New DataColumn("MenuName", GetType(String))
            dt.Columns.Add(dcSrNo)
            dt.Columns.Add(dcMenuName)
            While i <= ds.Tables(0).Rows.Count - 1
                drow = dt.NewRow
                drow("SrNo") = i + 1
                drow("MenuName") = ds.Tables(0).Rows(i)("Menu_MenuName").ToString
                dt.Rows.Add(drow)
                i = i + 1
            End While
            gvAccess.DataSource = dt     'Assign Datatable to datasource
            gvAccess.DataBind()
            If con.State = ConnectionState.Open Then
                con.Close()
            End If
            Dim qry1 As String
            Dim da1 As SqlDataAdapter     'It's a SqlDataAdaptor
            Dim ds1 As New DataSet          'It's a DataSet
            Dim con1 As New SqlConnection                        'Define connection variable for connecting to SQL-Server
            Dim j As Integer
            con1.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")    'Read the ConnectionString from web.config File
            con1.Open()                                          'Open the Connection
            For j = 0 To gvAccess.Rows.Count - 1
                qry1 = "select UserAccessRights_AccessFlag,UserAccessRights_AddFlag,UserAccessRights_ModifyFlag,UserAccessRights_DeleteFlag from UserAccessRights where UserAccessRights_AdminUserId='" & RemoveLiterals(ddlUserName.SelectedItem.Value) & "' and UserAccessRights_moduleid='" & ddlModule.SelectedItem.Value & "' and UserAccessRights_menuname='" & gvAccess.Rows(j).Cells(5).Text.Trim & "'"
                da1 = New SqlDataAdapter(qry1, con1)
                da1.Fill(ds1)                   'fill the dataset in the DataAdapter
                If j <= ds1.Tables(0).Rows.Count - 1 Then
                    If ds1.Tables(0).Rows(j)("UserAccessRights_AccessFlag").ToString = "1" Then
                        CType(gvAccess.Rows(j).FindControl("chkAccess"), CheckBox).Checked = True
                    Else
                        CType(gvAccess.Rows(j).FindControl("chkAccess"), CheckBox).Checked = False
                    End If
                    If ds1.Tables(0).Rows(j)("UserAccessRights_AddFlag").ToString = "1" Then
                        CType(gvAccess.Rows(j).FindControl("chkAdd"), CheckBox).Checked = True
                    Else
                        CType(gvAccess.Rows(j).FindControl("chkAdd"), CheckBox).Checked = False
                    End If
                    If ds1.Tables(0).Rows(j)("UserAccessRights_ModifyFlag").ToString = "1" Then
                        CType(gvAccess.Rows(j).FindControl("chkModify"), CheckBox).Checked = True
                    Else
                        CType(gvAccess.Rows(j).FindControl("chkModify"), CheckBox).Checked = False
                    End If
                    If ds1.Tables(0).Rows(j)("UserAccessRights_DeleteFlag").ToString = "1" Then
                        CType(gvAccess.Rows(j).FindControl("chkDelete"), CheckBox).Checked = True
                    Else
                        CType(gvAccess.Rows(j).FindControl("chkDelete"), CheckBox).Checked = False
                    End If
                End If

            Next
            If con.State = ConnectionState.Open Then
                con.Close()
            End If
            con.Dispose()
            dt.Dispose()
            da.Dispose()
            ds.Dispose()
            ds1.Dispose()
        Catch ex As Exception
            CreateMessageAlert(Me, ex.Message, "strkey")                'Display Error Message
        End Try
    End Sub
    Protected Sub ddlModule_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlModule.SelectedIndexChanged
        Try
            chkCheckAll.Enabled = True
            chkCheckAll.Text = "Check All"
            Call FillGrid()     'Fill Gridview
            chkCheckAll.Checked = False
        Catch ex As Exception
            CreateMessageAlert(Me, ex.Message, "strkey")            'Display Error Message
        End Try
    End Sub
    Protected Sub ddlUserName_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlUserName.SelectedIndexChanged
        Try
            chkCheckAll.Enabled = True
            chkCheckAll.Text = "Check All"
            Call FillGrid()         'Fill Gridview
            chkCheckAll.Checked = False
            ddlModule.SelectedIndex = 0
        Catch ex As Exception
            CreateMessageAlert(Me, ex.Message, "strkey")            'Display Error Message
        End Try
    End Sub

    Protected Sub BtnSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnSave.Click
        Try
            Dim qry As String    'String Variable
            Dim i As Integer      'Integer Variable
            Dim con As New SqlConnection                        'Define connection variable for connecting to SQL-Server
            Dim access As String  'String Variable
            Dim add As String     'String Variable
            Dim modify As String   'String Variable
            Dim delete As String   'String Variable
            con.ConnectionString = System.Configuration.ConfigurationManager.AppSettings("ConnectionString")    'Read the ConnectionString from web.config File
            con.Open()                                          'Open the Connection
            For i = 0 To gvAccess.Rows.Count - 1
                qry = "select count(*)from UserAccessRights where UserAccessRights_moduleid='" & ddlModule.SelectedItem.Value & "' and UserAccessRights_AdminUserId='" & RemoveLiterals(ddlUserName.SelectedItem.Value) & "' and UserAccessRights_menuname='" & gvAccess.Rows(i).Cells(5).Text.Trim & "'"
                If CType(gvAccess.Rows(i).FindControl("chkAccess"), CheckBox).Checked = True Then
                    access = "1"
                Else
                    access = "0"
                End If
                If CType(gvAccess.Rows(i).FindControl("chkAdd"), CheckBox).Checked = True Then
                    add = "1"
                Else
                    add = "0"
                End If
                If CType(gvAccess.Rows(i).FindControl("chkModify"), CheckBox).Checked = True Then
                    modify = "1"
                Else
                    modify = "0"
                End If
                If CType(gvAccess.Rows(i).FindControl("chkDelete"), CheckBox).Checked = True Then
                    delete = "1"
                Else
                    delete = "0"
                End If
                If IsAlreadyPresent(qry) = True Then
                    qry = "update UserAccessRights set UserAccessRights_AccessFlag='" & access & "', UserAccessRights_AddFlag='" & add & "', UserAccessRights_ModifyFlag='" & modify & "', UserAccessRights_DeleteFlag='" & delete & "' where UserAccessRights_moduleid='" & ddlModule.SelectedItem.Value & "' and UserAccessRights_AdminUserId='" & RemoveLiterals(ddlUserName.SelectedItem.Value) & "' and UserAccessRights_MenuName='" & gvAccess.Rows(i).Cells(5).Text.Trim & "'"
                Else
                    qry = "insert into UserAccessRights values('" & NewPrimaryKey(Me) & "','" & RemoveLiterals(ddlUserName.SelectedItem.Value) & "','" & ddlModule.SelectedItem.Value.Trim & "','" & gvAccess.Rows(i).Cells(5).Text.Trim & "','" & access & "','" & add & "','" & modify & "','" & delete & "','" & delete & "','" & Session("g_Company").ToString & "','" & Session("g_User").ToString & "')"
                End If
                Call ExecuteQuery(qry)
            Next
            lblerror.Visible = True
            lblerror.Text = "Saved Successfully"
            If con.State = ConnectionState.Open Then
                con.Close()
            End If
            con.Dispose()
        Catch ex As Exception
            CreateMessageAlert(Me, ex.Message, "strkey")   'Display Error Message
        End Try
    End Sub
    Protected Sub chkCheckAll_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles chkCheckAll.CheckedChanged
        Try
            Dim i As Integer
            If chkCheckAll.Checked = True Then
                For i = 0 To gvAccess.Rows.Count - 1
                    CType(gvAccess.Rows(i).FindControl("chkAccess"), CheckBox).Checked = True
                    CType(gvAccess.Rows(i).FindControl("chkAdd"), CheckBox).Checked = True
                    CType(gvAccess.Rows(i).FindControl("chkModify"), CheckBox).Checked = True
                    CType(gvAccess.Rows(i).FindControl("chkDelete"), CheckBox).Checked = True
                Next
                chkCheckAll.Text = "Clear All"
            Else
                For i = 0 To gvAccess.Rows.Count - 1
                    CType(gvAccess.Rows(i).FindControl("chkAccess"), CheckBox).Checked = False
                    CType(gvAccess.Rows(i).FindControl("chkAdd"), CheckBox).Checked = False
                    CType(gvAccess.Rows(i).FindControl("chkModify"), CheckBox).Checked = False
                    CType(gvAccess.Rows(i).FindControl("chkDelete"), CheckBox).Checked = False
                Next
                chkCheckAll.Text = "Check All"
            End If
        Catch ex As Exception
            CreateMessageAlert(Me, ex.Message, "strkey")    'Display Error Message
        End Try
    End Sub

    'Protected Sub ddlusertype_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlusertype.SelectedIndexChanged
    '    If ddlusertype.SelectedItem.Text = "Supplier" Then
    '        Call Fill_Combo("SELECT DISTINCT Supplier_Master.Supplier_Kid, Supplier_Master.Supplier_Name FROM  SupplierLogin RIGHT OUTER JOIN  Supplier_Master ON SupplierLogin.AdminUser_Kid = Supplier_Master.Supplier_AdminUserId WHERE     SupplierLogin.AdminUser_IsDeleted = '0' order by Supplier_Name", ddlUserName)
    '    Else

    '        Call Fill_Combo("select AdminUser_Kid,AdminUser_Name from AdminUser where AdminUser_CompanyId='" & Session("g_Company").ToString & "' and AdminUser_IsDeleted='0' and AdminUser_UserTypeId ='" & ddlusertype.SelectedValue & "' order by adminuser_name order by AdminUser_Name", ddlUserName)  'Fill dropdownlist
    '    End If

    'End Sub
End Class
