Imports IntraSell_DLL
Imports MySql.Data.MySqlClient

Module ModuleMitarbeiter

    ''' <summary>
    ''' WIP: funktioniert nicht
    ''' </summary>
    ''' <param name="MitarbeiterNr"></param>
    ''' <returns></returns>
    Function MitarbeiterNameEF(MitarbeiterNr As Integer) As String
        Dim mitarbeiter = IntraSellContext.Mitarbeiter.Find(MitarbeiterNr)
        If mitarbeiter IsNot Nothing Then
            Return mitarbeiter.Name
        End If
        Return Nothing
    End Function

    Function MitarbeiterName(MitarbeiterNr As Integer) As String
        Try
            Dim cmd2 = New MySqlCommand("select Name from ofMitarbeiter where IDNR = @MitarbeiterNr")
            cmd2.Parameters.AddWithValue("MitarbeiterNr", MitarbeiterNr)
            Return FirstRow(cmd2)
        Catch ex As Exception
            'Ignore
        End Try
        Return Nothing
    End Function

    Function MitarbeiterUsername(MitarbeiterNr As Integer) As String
        Try
            Dim cmd2 = New MySqlCommand("select Username from ofMitarbeiter where IDNR = @MitarbeiterNr")
            cmd2.Parameters.AddWithValue("MitarbeiterNr", MitarbeiterNr)
            Return FirstRow(cmd2)
        Catch ex As Exception
            'Ignore
        End Try
        Return Nothing

    End Function

    Function MitarbeiterPosition(MitarbeiterNr As Integer) As String
        Try
            Dim cmd2 = New MySqlCommand("select Position from ofMitarbeiter where IDNR = @MitarbeiterNr")
            cmd2.Parameters.AddWithValue("MitarbeiterNr", MitarbeiterNr)
            Return FirstRow(cmd2)
        Catch ex As Exception
            'Ignore
        End Try
        Return Nothing
    End Function

    Function MitarbeiterFeld(MitarbeiterNr As Integer, feld As String) As String
        Try
            Dim cmd = New MySqlCommand("select " & feld & " from ofMitarbeiter where IDNR = @MitarbeiterNr")
            cmd.Parameters.AddWithValue("MitarbeiterNr", MitarbeiterNr)
            Return FirstRow(cmd)
        Catch ex As Exception
            'Ignore
        End Try
        Return Nothing
    End Function

    Sub SetFeld(MitarbeiterNr As String, feld As String, value As String)
        Dim cmd = New MySqlCommand("update ofMitarbeiter set " & feld & "=@Value where IDNR = @MitarbeiterNr")
        cmd.Parameters.AddWithValue("Value", value)
        cmd.Parameters.AddWithValue("MitarbeiterNr", MitarbeiterNr)
        RunSQL(cmd)
    End Sub

    Function MitarbeiterFarbe(MitarbeiterNr As Integer) As Color
        Dim colorIndex = MitarbeiterNr Mod 20
        If colorIndex = 0 Then Return Color.AliceBlue
        If colorIndex = 1 Then Return Color.LightCyan
        If colorIndex = 2 Then Return Color.LightSteelBlue
        If colorIndex = 3 Then Return Color.Azure
        If colorIndex = 4 Then Return Color.Beige
        If colorIndex = 5 Then Return Color.LightBlue
        If colorIndex = 6 Then Return Color.BlanchedAlmond
        If colorIndex = 7 Then Return Color.Blue
        If colorIndex = 8 Then Return Color.BlueViolet
        If colorIndex = 9 Then Return Color.BurlyWood
        If colorIndex = 10 Then Return Color.CadetBlue
        If colorIndex = 11 Then Return Color.Chartreuse
        If colorIndex = 12 Then Return Color.Chocolate
        If colorIndex = 13 Then Return Color.Coral
        If colorIndex = 14 Then Return Color.CornflowerBlue
        If colorIndex = 15 Then Return Color.Cornsilk
        If colorIndex = 16 Then Return Color.Crimson
        If colorIndex = 17 Then Return Color.Cyan
        If colorIndex = 18 Then Return Color.LightGreen
        If colorIndex = 19 Then Return Color.Fuchsia
        If colorIndex = 99 Then Return Color.Orange 'Chef
    End Function

    Friend Function MitarbeiterAnlegen(IDNR As Integer, Position As String, Name As String, Username As String, Passwort As String)

        Dim sqlCheck = "select IDNR from ofMitarbeiter 
                   where Username=@Username"
        Dim cmdCheck As New MySqlCommand(sqlCheck, CurrentDB)
        cmdCheck.Parameters.AddWithValue("Username", Username)
        Dim hasMitarbeiter = FirstRow(cmdCheck)

        If hasMitarbeiter Is Nothing Then
            Dim sql = "Insert IGNORE into ofMitarbeiter (IDNR, Position, Name, Username, Passwort) 
                    Values (@IDNR, @Position, @Name, @Username, @Passwort)"
            Dim cmd As New MySqlCommand(sql, CurrentDB)
            cmd.Parameters.AddWithValue("IDNR", IDNR)
            cmd.Parameters.AddWithValue("Position", Position)
            cmd.Parameters.AddWithValue("Name", Name)
            cmd.Parameters.AddWithValue("Username", Username)
            cmd.Parameters.AddWithValue("Passwort", Passwort)

            Return cmd.ExecuteNonQuery
        End If

        Return hasMitarbeiter
    End Function
End Module
