Imports System.ComponentModel
Imports System.Text
Imports VERAG_PROG_ALLGEMEIN

Public Class frmBenutzerBerGruppenKopieren
    Dim copiedmitId = -1
    Dim progId = -1
    Dim codename = ""
    Dim mitarbeitername As StringBuilder
    Dim sql As VERAG_PROG_ALLGEMEIN.SQL
    'Dim BerechtigungsObjekte As VERAG_PROG_ALLGEMEIN.cBerechtigungsObjekte_List
    Dim BerechtigungenBenutzerGruppenZuordnungNeuerUser As VERAG_PROG_ALLGEMEIN.cBerechtigungenBenutzerGruppenZuordnung_List
    Dim BerechtigungenBenutzerGruppenZuordnung As VERAG_PROG_ALLGEMEIN.cBerechtigungenBenutzerGruppenZuordnung_List

    Sub New(copiedmitId)

        ' Dieser Aufruf ist für den Designer erforderlich.
        InitializeComponent()
        Me.copiedmitId = copiedmitId
        ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.

    End Sub
    Sub New(copiedmitId, progId, codename)

        ' Dieser Aufruf ist für den Designer erforderlich.
        InitializeComponent()
        Me.copiedmitId = copiedmitId
        Me.progId = progId
        Me.codename = codename
        ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.

    End Sub

    Private Sub frmBenutzerBerGruppen_Load(sender As Object, e As EventArgs) Handles Me.Load
        init()
    End Sub

    Sub init()

        Dim currentMA As New VERAG_PROG_ALLGEMEIN.cMitarbeiter
        currentMA.LOAD(copiedmitId)
        mitarbeitername = New StringBuilder()
        mitarbeitername.Append(currentMA.mit_vname)
        mitarbeitername.Append(" ")
        mitarbeitername.Append(currentMA.mit_nname)
        mitarbeitername.Append(" - ")
        mitarbeitername.Append(currentMA.mit_id)
        lblBenutzer.Text = mitarbeitername.ToString


        cboSelectedEmployee.Items.Clear()

        cboSelectedEmployee.Items.Clear()
        cboSelectedEmployee.fillWithSQL("SELECT [mit_id],[mit_username] + ' (' + mit_vname + ' ' + mit_nname + ') ' + mit_firma FROM [ADMIN].[dbo].[tblMitarbeiter] /*INNER JOIN [ADMIN].[dbo].[tblBerProg] ON mit_id=[bepr_userId] INNER JOIN [ADMIN].[dbo].[tblBerechtigungen] ON  [ber_id]=[bepr_berId] " &
                                " WHERE ber_progId=" & progId & " AND [ber_allowed]=1*/ ORDER BY mit_username", False, "ADMIN", True)

        initBerechitungslist()


        dgvGruppen.ClearSelection()

    End Sub

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        If cboSelectedEmployee._value = String.Empty Then Exit Sub

        If dgvGruppen.RowCount = 0 Then
            MsgBox("Keine Berechtigungen gefunden!")
            Exit Sub
        End If

        If BerechtigungenBenutzerGruppenZuordnungNeuerUser.LIST.Count > 0 Then
            MsgBox("Für Mitarbeiter " & mitarbeitername.ToString & vbNewLine & " wurden bereits Berechtigungen gesetzt, Berechtigungen vorher löschen!")
            Exit Sub
        End If


        For Each row As DataGridViewRow In dgvGruppen.Rows
            Dim BGRZ As New VERAG_PROG_ALLGEMEIN.cBerechtigungenBenutzerGruppenZuordnung
            BGRZ.berbgz_progId = row.Cells("dgv_progId").Value
            BGRZ.berbgz_mitId = copiedmitId
            BGRZ.berbgz_bergrId = row.Cells("dgv_bergrId").Value
            BGRZ.INSERT()
            MsgBox(BGRZ.berbgz_progId & " _" & BGRZ.berbgz_bergrId)
        Next


        Me.Close()

    End Sub

    'Private Sub gdvGruppen_KeyDown(sender As Object, e As KeyEventArgs) Handles gdvGruppen.KeyDown
    '    If gdvGruppen.SelectedRows.Count = 0 Then Exit Sub
    '    If e.KeyCode = Keys.Delete Then
    '        If vbYes = MsgBox("Möchten Sie die Gruppe und alle verbundenen Zuordnungen wirklich löschen?", vbYesNoCancel) Then
    '            Dim BGRZ As New VERAG_PROG_ALLGEMEIN.cBerechtigungenBenutzerGruppenZuordnung
    '            BGRZ.berbgz_id = gdvGruppen.SelectedRows(0).Cells("dgvGrp_id").Value
    '            BGRZ.DELETE()
    '            init()
    '        End If
    '    End If
    'End Sub

    Private Sub MyComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboSelectedEmployee.SelectedIndexChanged

        If cboSelectedEmployee._value = "" Then
            Button3.Enabled = False
            dgvGruppen.Rows.Clear()
            Exit Sub
        End If

        Button3.Enabled = True

        dgvGruppen.Rows.Clear()

        BerechtigungenBenutzerGruppenZuordnung = New VERAG_PROG_ALLGEMEIN.cBerechtigungenBenutzerGruppenZuordnung_List(cboSelectedEmployee._value)


        For Each b In BerechtigungenBenutzerGruppenZuordnung.LIST
            dgvGruppen.Rows.Add(b.berbgz_id, b.berbgz_progId, b.berbgz_bergrId, b.Gruppenbezeichnung)
        Next

        dgvGruppen.Sort(dgvGruppen.Columns(1), ListSortDirection.Ascending)


        'For Each row As DataGridViewRow In dgvGruppen.Rows
        '    If cboSelectedEmployee._value = row.berbgz_mitId And row.berbgz_progId = progId Then
        '        b.DefaultCellStyle.BackColor = Color.IndianRed
        '    Else

        '    End If
        'Next

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim a As MsgBoxResult = MsgBox("Sollen die Berechtigungen für Mitarbeiter " & mitarbeitername.ToString & "zurückgsetzt/gelöscht werden?", vbYesNo)
        If a = vbYes Then
            For Each b In BerechtigungenBenutzerGruppenZuordnungNeuerUser.LIST
                b.DELETE()
            Next
            initBerechitungslist()
        End If


    End Sub

    Private Sub initBerechitungslist()
        BerechtigungenBenutzerGruppenZuordnungNeuerUser = New VERAG_PROG_ALLGEMEIN.cBerechtigungenBenutzerGruppenZuordnung_List(copiedmitId)

        If BerechtigungenBenutzerGruppenZuordnungNeuerUser.LIST.Count > 0 Then
            Button1.Enabled = True
        Else
            Button1.Enabled = False
        End If

    End Sub
End Class