
Imports Mediatheek.Data
Imports Mediatheek.DataAcces

Public Class frmAlbumOpzoeken
    Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "

    Public Sub New()
        MyBase.New()

        'This call is required by the Windows Form Designer.
        InitializeComponent()

        'Add any initialization after the InitializeComponent() call

    End Sub

    'Form overrides dispose to clean up the component list.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.  
    'Do not modify it using the code editor.
    Friend WithEvents ErrorProvider1 As System.Windows.Forms.ErrorProvider
    Friend WithEvents gpbZoekAlbumOp As System.Windows.Forms.GroupBox
    Friend WithEvents gpbResultaten As System.Windows.Forms.GroupBox
    Friend WithEvents btnZoek As System.Windows.Forms.Button
    Friend WithEvents cboZoekWijze As System.Windows.Forms.ComboBox
    Friend WithEvents lblZoek As System.Windows.Forms.Label
    Friend WithEvents lblZoekWijze As System.Windows.Forms.Label
    Friend WithEvents lvwResultaten As System.Windows.Forms.ListView
    Friend WithEvents lblAlbumProductie As System.Windows.Forms.Label
    Friend WithEvents lblAlbumLocatie As System.Windows.Forms.Label
    Friend WithEvents lblAlbumGenre As System.Windows.Forms.Label
    Friend WithEvents btnAlbumVerwijderen As System.Windows.Forms.Button
    Friend WithEvents btnAlbumWijzigen As System.Windows.Forms.Button
    Friend WithEvents gpbHuidigAlbum As System.Windows.Forms.GroupBox
    Friend WithEvents lblAlbumFoto As System.Windows.Forms.Label
    Friend WithEvents txtAlbumProductieHuis As System.Windows.Forms.TextBox
    Friend WithEvents txtAlbumGenre As System.Windows.Forms.TextBox
    Friend WithEvents txtAlbumLocatie As System.Windows.Forms.TextBox
    Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(frmAlbumOpzoeken))
        Me.gpbZoekAlbumOp = New System.Windows.Forms.GroupBox
        Me.lblZoekWijze = New System.Windows.Forms.Label
        Me.cboZoekWijze = New System.Windows.Forms.ComboBox
        Me.btnZoek = New System.Windows.Forms.Button
        Me.lblZoek = New System.Windows.Forms.Label
        Me.gpbResultaten = New System.Windows.Forms.GroupBox
        Me.lvwResultaten = New System.Windows.Forms.ListView
        Me.gpbHuidigAlbum = New System.Windows.Forms.GroupBox
        Me.txtAlbumProductieHuis = New System.Windows.Forms.TextBox
        Me.txtAlbumGenre = New System.Windows.Forms.TextBox
        Me.lblAlbumFoto = New System.Windows.Forms.Label
        Me.btnAlbumWijzigen = New System.Windows.Forms.Button
        Me.lblAlbumProductie = New System.Windows.Forms.Label
        Me.lblAlbumLocatie = New System.Windows.Forms.Label
        Me.lblAlbumGenre = New System.Windows.Forms.Label
        Me.btnAlbumVerwijderen = New System.Windows.Forms.Button
        Me.txtAlbumLocatie = New System.Windows.Forms.TextBox
        Me.ErrorProvider1 = New System.Windows.Forms.ErrorProvider
        Me.PictureBox1 = New System.Windows.Forms.PictureBox
        Me.gpbZoekAlbumOp.SuspendLayout()
        Me.gpbResultaten.SuspendLayout()
        Me.gpbHuidigAlbum.SuspendLayout()
        Me.SuspendLayout()
        '
        'gpbZoekAlbumOp
        '
        Me.gpbZoekAlbumOp.Controls.Add(Me.lblZoekWijze)
        Me.gpbZoekAlbumOp.Controls.Add(Me.cboZoekWijze)
        Me.gpbZoekAlbumOp.Controls.Add(Me.btnZoek)
        Me.gpbZoekAlbumOp.Controls.Add(Me.lblZoek)
        Me.gpbZoekAlbumOp.ForeColor = System.Drawing.SystemColors.ControlText
        Me.gpbZoekAlbumOp.Location = New System.Drawing.Point(16, 80)
        Me.gpbZoekAlbumOp.Name = "gpbZoekAlbumOp"
        Me.gpbZoekAlbumOp.Size = New System.Drawing.Size(400, 88)
        Me.gpbZoekAlbumOp.TabIndex = 0
        Me.gpbZoekAlbumOp.TabStop = False
        Me.gpbZoekAlbumOp.Text = "Zoek Album Op"
        '
        'lblZoekWijze
        '
        Me.lblZoekWijze.Location = New System.Drawing.Point(8, 24)
        Me.lblZoekWijze.Name = "lblZoekWijze"
        Me.lblZoekWijze.Size = New System.Drawing.Size(64, 24)
        Me.lblZoekWijze.TabIndex = 6
        Me.lblZoekWijze.Text = "Zoekwijze"
        '
        'cboZoekWijze
        '
        Me.cboZoekWijze.Location = New System.Drawing.Point(72, 24)
        Me.cboZoekWijze.Name = "cboZoekWijze"
        Me.cboZoekWijze.Size = New System.Drawing.Size(216, 21)
        Me.cboZoekWijze.TabIndex = 5
        Me.cboZoekWijze.Text = "Kies je zoekwijze"
        '
        'btnZoek
        '
        Me.btnZoek.Enabled = False
        Me.btnZoek.Location = New System.Drawing.Point(304, 24)
        Me.btnZoek.Name = "btnZoek"
        Me.btnZoek.Size = New System.Drawing.Size(75, 48)
        Me.btnZoek.TabIndex = 4
        Me.btnZoek.Text = "Zoek"
        '
        'lblZoek
        '
        Me.lblZoek.Location = New System.Drawing.Point(8, 56)
        Me.lblZoek.Name = "lblZoek"
        Me.lblZoek.Size = New System.Drawing.Size(64, 24)
        Me.lblZoek.TabIndex = 0
        Me.lblZoek.Text = "Zoek op:"
        Me.lblZoek.Visible = False
        '
        'gpbResultaten
        '
        Me.gpbResultaten.Controls.Add(Me.lvwResultaten)
        Me.gpbResultaten.Location = New System.Drawing.Point(16, 304)
        Me.gpbResultaten.Name = "gpbResultaten"
        Me.gpbResultaten.Size = New System.Drawing.Size(400, 200)
        Me.gpbResultaten.TabIndex = 19
        Me.gpbResultaten.TabStop = False
        '
        'lvwResultaten
        '
        Me.lvwResultaten.HideSelection = False
        Me.lvwResultaten.Location = New System.Drawing.Point(16, 24)
        Me.lvwResultaten.MultiSelect = False
        Me.lvwResultaten.Name = "lvwResultaten"
        Me.lvwResultaten.Size = New System.Drawing.Size(368, 168)
        Me.lvwResultaten.TabIndex = 1
        Me.lvwResultaten.View = System.Windows.Forms.View.Details
        '
        'gpbHuidigAlbum
        '
        Me.gpbHuidigAlbum.Controls.Add(Me.txtAlbumProductieHuis)
        Me.gpbHuidigAlbum.Controls.Add(Me.txtAlbumGenre)
        Me.gpbHuidigAlbum.Controls.Add(Me.lblAlbumFoto)
        Me.gpbHuidigAlbum.Controls.Add(Me.btnAlbumWijzigen)
        Me.gpbHuidigAlbum.Controls.Add(Me.lblAlbumProductie)
        Me.gpbHuidigAlbum.Controls.Add(Me.lblAlbumLocatie)
        Me.gpbHuidigAlbum.Controls.Add(Me.lblAlbumGenre)
        Me.gpbHuidigAlbum.Controls.Add(Me.btnAlbumVerwijderen)
        Me.gpbHuidigAlbum.Controls.Add(Me.txtAlbumLocatie)
        Me.gpbHuidigAlbum.Location = New System.Drawing.Point(16, 176)
        Me.gpbHuidigAlbum.Name = "gpbHuidigAlbum"
        Me.gpbHuidigAlbum.Size = New System.Drawing.Size(400, 120)
        Me.gpbHuidigAlbum.TabIndex = 20
        Me.gpbHuidigAlbum.TabStop = False
        Me.gpbHuidigAlbum.Text = "Huidig album"
        '
        'txtAlbumProductieHuis
        '
        Me.txtAlbumProductieHuis.Enabled = False
        Me.txtAlbumProductieHuis.Location = New System.Drawing.Point(72, 24)
        Me.txtAlbumProductieHuis.Name = "txtAlbumProductieHuis"
        Me.txtAlbumProductieHuis.Size = New System.Drawing.Size(120, 20)
        Me.txtAlbumProductieHuis.TabIndex = 13
        Me.txtAlbumProductieHuis.Text = ""
        '
        'txtAlbumGenre
        '
        Me.txtAlbumGenre.Enabled = False
        Me.txtAlbumGenre.Location = New System.Drawing.Point(240, 24)
        Me.txtAlbumGenre.Name = "txtAlbumGenre"
        Me.txtAlbumGenre.Size = New System.Drawing.Size(56, 20)
        Me.txtAlbumGenre.TabIndex = 12
        Me.txtAlbumGenre.Text = ""
        '
        'lblAlbumFoto
        '
        Me.lblAlbumFoto.Location = New System.Drawing.Point(304, 16)
        Me.lblAlbumFoto.Name = "lblAlbumFoto"
        Me.lblAlbumFoto.Size = New System.Drawing.Size(80, 56)
        Me.lblAlbumFoto.TabIndex = 7
        '
        'btnAlbumWijzigen
        '
        Me.btnAlbumWijzigen.Enabled = False
        Me.btnAlbumWijzigen.Location = New System.Drawing.Point(16, 88)
        Me.btnAlbumWijzigen.Name = "btnAlbumWijzigen"
        Me.btnAlbumWijzigen.Size = New System.Drawing.Size(176, 23)
        Me.btnAlbumWijzigen.TabIndex = 6
        Me.btnAlbumWijzigen.Text = "Wijzigen"
        '
        'lblAlbumProductie
        '
        Me.lblAlbumProductie.Location = New System.Drawing.Point(8, 24)
        Me.lblAlbumProductie.Name = "lblAlbumProductie"
        Me.lblAlbumProductie.Size = New System.Drawing.Size(56, 24)
        Me.lblAlbumProductie.TabIndex = 3
        Me.lblAlbumProductie.Text = "Productie"
        '
        'lblAlbumLocatie
        '
        Me.lblAlbumLocatie.Location = New System.Drawing.Point(8, 56)
        Me.lblAlbumLocatie.Name = "lblAlbumLocatie"
        Me.lblAlbumLocatie.Size = New System.Drawing.Size(56, 16)
        Me.lblAlbumLocatie.TabIndex = 4
        Me.lblAlbumLocatie.Text = "Locatie:"
        '
        'lblAlbumGenre
        '
        Me.lblAlbumGenre.Location = New System.Drawing.Point(200, 24)
        Me.lblAlbumGenre.Name = "lblAlbumGenre"
        Me.lblAlbumGenre.Size = New System.Drawing.Size(40, 24)
        Me.lblAlbumGenre.TabIndex = 4
        Me.lblAlbumGenre.Text = "Genre:"
        '
        'btnAlbumVerwijderen
        '
        Me.btnAlbumVerwijderen.Enabled = False
        Me.btnAlbumVerwijderen.Location = New System.Drawing.Point(208, 88)
        Me.btnAlbumVerwijderen.Name = "btnAlbumVerwijderen"
        Me.btnAlbumVerwijderen.Size = New System.Drawing.Size(176, 23)
        Me.btnAlbumVerwijderen.TabIndex = 5
        Me.btnAlbumVerwijderen.Text = "Verwijderen"
        '
        'txtAlbumLocatie
        '
        Me.txtAlbumLocatie.Enabled = False
        Me.txtAlbumLocatie.Location = New System.Drawing.Point(72, 56)
        Me.txtAlbumLocatie.Name = "txtAlbumLocatie"
        Me.txtAlbumLocatie.Size = New System.Drawing.Size(224, 20)
        Me.txtAlbumLocatie.TabIndex = 13
        Me.txtAlbumLocatie.Text = ""
        '
        'ErrorProvider1
        '
        Me.ErrorProvider1.ContainerControl = Me
        '
        'PictureBox1
        '
        Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image)
        Me.PictureBox1.Location = New System.Drawing.Point(0, 0)
        Me.PictureBox1.Name = "PictureBox1"
        Me.PictureBox1.Size = New System.Drawing.Size(424, 64)
        Me.PictureBox1.TabIndex = 21
        Me.PictureBox1.TabStop = False
        '
        'frmAlbumOpzoeken
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(418, 511)
        Me.Controls.Add(Me.PictureBox1)
        Me.Controls.Add(Me.gpbHuidigAlbum)
        Me.Controls.Add(Me.gpbResultaten)
        Me.Controls.Add(Me.gpbZoekAlbumOp)
        Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
        Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
        Me.MaximizeBox = False
        Me.Name = "frmAlbumOpzoeken"
        Me.Text = "Album Opzoeken"
        Me.gpbZoekAlbumOp.ResumeLayout(False)
        Me.gpbResultaten.ResumeLayout(False)
        Me.gpbHuidigAlbum.ResumeLayout(False)
        Me.ResumeLayout(False)

    End Sub

#End Region

    Public Event ZoekOpAlbum() 'nutteloos

    'module variabelen

    Dim mGegevenAlbum As clsAlbum
    Dim mHuidigAlbum As clsAlbum
    Dim marlResultaten As ArrayList
    Dim mbAlbumMeegegeven As Boolean = False

    'controls
    Dim txtZoekString As New TextBox
    Dim cboZoekOpLocatie As New ComboBox
    Dim cboZoekOpGenre As New ComboBox
    Dim mZoekvelden As New ControlCollection(Me)

    'alternatieve constructor

    Public Sub New(ByVal oAlbum As clsAlbum)
        MyBase.New()
        InitializeComponent()
        mGegevenAlbum = oAlbum
        mHuidigAlbum = oAlbum
        mbAlbumMeegegeven = True
    End Sub




#Region "Events"
    Private Sub frmAlbumOpzoeken_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        CreateAlbumListview()
        ZoekWijzeOpvullen()
        If mbAlbumMeegegeven = True Then
            AlbumDetailsOpvullen(mGegevenAlbum)
        End If


    End Sub
    Private Sub frmAlbumOpzoeken_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
        RaiseEvent ZoekOpAlbum()
    End Sub
    Private Sub lvwResultaten_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lvwResultaten.SelectedIndexChanged
        'id van geselecteerde album word opgehaald en gelijkgesteld aan mHuidigAlbum
        If lvwResultaten.SelectedItems.Count() > 0 Then
            mHuidigAlbum = clsAlbumDA.GetAlbumByID(lvwResultaten.SelectedItems(0).SubItems(3).Text).Item(0)
            AlbumDetailsOpvullen(mHuidigAlbum)
        End If


    End Sub

    Private Sub cboZoekWijze_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboZoekWijze.SelectedIndexChanged
        'vorig zoekveld verwijderen
        'lvwResultaten.Items.Clear()

        If gpbZoekAlbumOp.Controls.Count() > 4 Then
            gpbZoekAlbumOp.Controls.RemoveAt(4) 'zoek later alternatieve methode om control te verwijderen
        End If

        'zoekbutton actief maken
        btnZoek.Enabled = True

        'zoekvelden initialiseren naargelang zoekwijze
        Dim cControl As Control

        Select Case cboZoekWijze.SelectedIndex
            Case 0
                cControl = CreateZoekStringTextbox()
            Case 1
                cControl = CreateLocatieCombobox()
            Case 2
                cControl = CreateGenreCombobox()
            Case 3

            Case 4

        End Select

        'zoekvelden toevoegen aan form
        lblZoek.Visible = True
        gpbZoekAlbumOp.Controls.Add(cControl)


        'focus op eerste control
        ControlSetFocus(cControl)



    End Sub

    Public Sub ControlSetFocus(ByVal cControl As Control)
        If cControl.CanFocus Then
            cControl.Focus()
        End If
    End Sub

    Private Sub btnAlbumWijzigen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAlbumWijzigen.Click
        Dim oWijzigAlbum As New frmAlbumWijzigen(mHuidigAlbum.AlbumID)

        'AddHandler oWijzigAlbum.AlbumGewijzigd, AddressOf pijn
        oWijzigAlbum.Show()
    End Sub

    Private Sub btnAlbumVerwijderen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAlbumVerwijderen.Click


        Dim response As MsgBoxResult
        response = MsgBox("Bent U zeker dat U " & mHuidigAlbum.AlbumNaam & " " & mHuidigAlbum.ProductieJaar & " wil verwijderen?", MsgBoxStyle.YesNo, "Confirmatie album verwijderen")
        If response = MsgBoxResult.Yes Then
            verwijderAlbum(mHuidigAlbum.AlbumID)
        ElseIf response = MsgBoxResult.No Then
            'do nothing
        End If


        RaiseEvent ZoekOpAlbum()
    End Sub

    Private Sub verwijderAlbum(ByVal sAlbumID As String)
        'nog bevestiging vragen

        Try
            'alle uitvoeringen van het album verwijderen uit database
            clsUitvoeringDA.VerwijderUitvoeringenByAlbumID(sAlbumID)

            'album verwijderen uit database
            clsAlbumDA.VerwijderAlbum(sAlbumID)

            'album verwijderen uit listview


            For Each oItem As ListViewItem In lvwResultaten.Items
                If oItem.SubItems(3).Text = sAlbumID Then
                    lvwResultaten.Items.Remove(oItem)
                End If
            Next




        Catch ex As Exception
            MessageBox.Show("Er trad een onverwachte fout op bij het verwijderen van het album")
        Finally

        End Try
    End Sub



#End Region




#Region "EnableDisableControls  - Reset Input Fields"



#End Region

#Region "Buttons events"
    Private Sub btnZoek_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnZoek.Click
        'CreateZoekStringTextbox()

        If Validatie() = True Then
            gekozenZoekFunctie(cboZoekWijze.SelectedIndex)
        End If


    End Sub



#End Region


#Region "Validatie"



#Region "Liedjes"
    'Private Function valideerLiedDuur(ByVal duurLied As String, ByRef errorMessage As String) As Boolean
    '    ' Confirm there is text in the control.
    '    If txtDuurLied.Text.Length = 0 Then
    '        errorMessage = "Duur lied moet ingevuld worden"
    '        Return False

    '    End If

    '    ' Confirm that there is an "@" and a "." in the e-mail address, and in the correct order.
    '    If duurLied.IndexOf(":") > -1 Then
    '        Return True
    '    End If


    '    errorMessage = "Duur lied moet geldig genoteerd zijn" + ControlChars.Cr + _
    '      "Bijvoorbeeld '03:34' "
    '    Return False
    'End Function
    'Private Sub txtDuurLied_Validating(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs)
    '    Dim errorMsg As String
    '    If Not valideerLiedDuur(txtDuurLied.Text, errorMsg) Then
    '        ' Cancel the event and select the text to be corrected by the user.
    '        e.Cancel = True
    '        txtDuurLied.Select(0, txtDuurLied.Text.Length)

    '        ' Set the ErrorProvider error with the text to display. 
    '        Me.ErrorProvider1.SetError(txtDuurLied, errorMsg)
    '    End If

    'End Sub

    'Private Sub txtDuurLied_Validated(ByVal sender As System.Object, ByVal e As System.EventArgs)
    '    ErrorProvider1.SetError(txtDuurLied, "")
    'End Sub
#End Region


#Region "Locaties"
    Private Sub ControleerLocatie()

        'Dim oLocatie As clsLocatie
        'oLocatie = cboWijzigAlbumLocatie.SelectedItem
        'If Not oLocatie.Id = msGegevenAlbum.LocatieID Then
        '    If oLocatie.MaxAantal < clsAlbumDA.GetAlbumsByLocatieID(oLocatie.Id).Count + 1 Then
        '        MessageBox.Show("Het maximum aantal albums op die locatie is reeds bereikt, gelieve een andere locatie te kiezen")
        '    End If
        'End If

        'MessageBox.Show("max aantal albums " & oLocatie.MaxAantal & " hoeveel albums al aanwezig: " & clsAlbumDA.GetAlbumsByLocatieID(oLocatie.Id).Count & " " & oLocatie.ToString)
    End Sub

#End Region
    Private Function CheckFieldsNotEmpty() As Boolean
        If txtZoekString.Text.Length = 0 Then 'Or txtZoekString.Text.Length = 0 Or txtZoekString.Text.Length = 0 Then
            MsgBox("Gelieve alle velden in te vullen.")
            Return False
        Else
            Return True
        End If
    End Function

    Private Function Validatie() As Boolean
        'If checkFieldsNotEmpty() = True Then
        '    Return True
        'Else
        '    Return False
        'End If
        Return True
    End Function

#End Region

#Region "opvullen"


    Private Sub ZoekWijzeOpvullen()

        Dim arlZoekWijze As Array

        cboZoekWijze.Items.Add("Zoek op album")
        cboZoekWijze.Items.Add("Zoek op locatie")
        cboZoekWijze.Items.Add("Zoek albums op genre")


    End Sub

    Private Sub AlbumDetailsOpvullen(ByVal oAlbum As clsAlbum)
        btnAlbumWijzigen.Enabled = True
        btnAlbumVerwijderen.Enabled = True

        'Naam & jaar
        gpbHuidigAlbum.Text = oAlbum.AlbumNaam & " - " & oAlbum.ProductieJaar

        'Productie
        txtAlbumProductieHuis.Text = oAlbum.Productiehuis

        'Genre
        If IsNumeric(oAlbum.GenreID) = False Then
            txtAlbumGenre.Text = oAlbum.GenreId
        ElseIf IsNumeric(oAlbum.GenreID) = True Then

            Dim oGenre As clsGenre
            oGenre = clsGenreDA.GetGenreByID(oAlbum.GenreId).Item(0)
            txtAlbumGenre.Text = oGenre.ToString
        End If


        Dim oLocatie As clsLocatie
        oLocatie = clsLocatieDA.GetLocatieByID(oAlbum.LocatieId).Item(0)
        txtAlbumLocatie.Text = oLocatie.ToString

    End Sub


#End Region

#Region "Gui"

#Region "zoekvelden aanmaken"
    Public Function CreateZoekStringTextbox() As Control

        txtZoekString.Location() = New Point(72, 56)
        txtZoekString.Size = New Size(New Point(216, 20))
        Return txtZoekString
    End Function
    Public Function CreateLocatieCombobox() As Control

        cboZoekOpLocatie.Location() = New Point(72, 56)
        cboZoekOpLocatie.Size = New Size(New Point(216, 20))
        cboZoekOpLocatie.DataSource = clsLocatieDA.GetLocaties
        Return cboZoekOpLocatie
    End Function
    Public Function CreateGenreCombobox() As Control

        cboZoekOpGenre.Location() = New Point(72, 56)
        cboZoekOpGenre.Size = New Size(New Point(216, 20))
        cboZoekOpGenre.DataSource = clsGenreDA.GetGenres
        Return cboZoekOpGenre
    End Function

#End Region

    Private Sub CreateAlbumListview()

        For Each oColumnheader As System.Windows.Forms.ColumnHeader In lvwResultaten.Columns
            lvwResultaten.Columns.Remove(oColumnheader)
        Next


        Dim oHeader1 As New ColumnHeader
        Dim oHeader2 As New ColumnHeader
        Dim oHeader3 As New ColumnHeader
        Dim oHeader4 As New ColumnHeader
        Dim oHeader5 As New ColumnHeader
        Dim oHeader6 As New ColumnHeader

        'oHeader = New ColumnHeader
        oHeader1.Text = "Album"
        oHeader1.Width = 120
        oHeader2.Text = "Jaar"
        oHeader2.Width = 40
        oHeader3.Text = "Productie"
        oHeader3.Width = 115
        oHeader4.Text = "ID"
        oHeader4.Width = 25
        oHeader5.Text = "Genre" 'genreid
        oHeader5.Width = 64
        oHeader6.Text = "Locatie" 'locatieid
        oHeader6.Width = 40

        lvwResultaten.Columns.Add(oHeader1)
        lvwResultaten.Columns.Add(oHeader2)
        lvwResultaten.Columns.Add(oHeader3)
        lvwResultaten.Columns.Add(oHeader4)
        lvwResultaten.Columns.Add(oHeader5)
        'lvwResultaten.Columns.Add(oHeader6)
    End Sub

#End Region


#Region "Zoekfuncties"
    Private Function gekozenZoekFunctie(ByVal iI As Integer) As ArrayList
        Dim arlResultaten As ArrayList

        Select Case iI
            Case 0
                arlResultaten = AlbumsZoekenOpString(txtZoekString.Text.ToLower)
                gpbResultaten.Text = "Albums gevonden met " & txtZoekString.Text
            Case 1
                Dim oLocatie As clsLocatie
                oLocatie = cboZoekOpLocatie.SelectedItem
                arlResultaten = clsAlbumDA.GetAlbumsByLocatieID(oLocatie.Id)
                gpbResultaten.Text = "Albums gevonden in " & oLocatie.ToString
            Case 2
                Dim oGenre As clsGenre
                oGenre = cboZoekOpGenre.SelectedItem
                arlResultaten = clsAlbumDA.GetAlbumsByGenreID(oGenre.GenreID)
                gpbResultaten.Text = "Alle " & oGenre.GenreNaam & " albums"
            Case 3
                'AlbumsZoekenOpLiedje()
            Case 4

        End Select
        If arlResultaten.Count() = 0 Then
            gpbResultaten.Text = ""
            MsgBox("Probeer op andere criteria te zoeken.", MsgBoxStyle.OKOnly, "Geen resultaten gevonden met deze zoekopdracht")

        Else
            lvwResultatenOpvullen(arlResultaten)
        End If


    End Function

    Private Function AlbumsZoekenOpString(ByVal sZoekString As String) As ArrayList
        Dim arlZoekInAlbums As ArrayList
        Dim arlResultaat As New ArrayList
        arlZoekInAlbums = clsAlbumDA.GetAlbums

        For Each oAlbum As clsAlbum In clsAlbumDA.GetAlbums
            If Not oAlbum.ToString.ToLower.IndexOf(sZoekString) = -1 Then
                arlResultaat.Add(oAlbum)
            End If

        Next
        Return arlResultaat
    End Function

    Private Sub AlbumsZoekenOpGenre()

    End Sub
    Private Sub AlbumsZoekenOpGroep()

    End Sub
    Private Sub AlbumsZoekenOpLiedje()

    End Sub



    Private Function lvwResultatenOpvullen(ByVal arlAlbums As ArrayList)

        lvwResultaten.Items.Clear()


        Dim arlGenres As ArrayList
        arlGenres = clsGenreDA.GetGenres
        'reden aanmaken Genre arraylist zie in lus hieronder

        For Each oAlbum As clsAlbum In arlAlbums

            Dim olitm As ListViewItem

            olitm = New ListViewItem

            olitm.Text = oAlbum.AlbumNaam

            olitm.SubItems.Add(oAlbum.ProductieJaar)

            olitm.SubItems.Add(oAlbum.Productiehuis)

            olitm.SubItems.Add(oAlbum.AlbumID)

            Dim oGenre As clsGenre

            oGenre = arlGenres(Convert.ToInt32(oAlbum.GenreID) - 1)



            olitm.SubItems.Add(oGenre.ToString)

            'zodat niet het GenreID wordt weergegeven maar naam van Genre

            lvwResultaten.Items.Add(olitm)


        Next

    End Function

#End Region










End Class
