Untitled

 avatar
unknown
plain_text
9 months ago
7.3 kB
3
Indexable
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Windows;
using System.Windows.Controls;

namespace Ex2Opg1
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void VeldenLeegmaken()
        {
            txtNaam.Clear();
            txtPodium.Clear();
            dpDatum.SelectedDate = null;
            txtBeginuur.Clear();
            txtEinduur.Clear();
        }

        private void MnuOpenen_Click(object sender, RoutedEventArgs e)
        {
            lstFestivals.Items.Clear();
            lstArtiesten.Items.Clear();
            VeldenLeegmaken();

            var dialog = new System.Windows.Forms.FolderBrowserDialog();
            if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                try
                {
                    string[] files = Directory.GetFiles(dialog.SelectedPath, "*.txt");
                    if (files.Length == 0)
                    {
                        MessageBox.Show("Geen bestanden gevonden");
                        return;
                    }

                    foreach (string file in files)
                    {
                        string naam = System.IO.Path.GetFileNameWithoutExtension(file);
                        FestivalBestand festival = new FestivalBestand(naam, file);
                        lstFestivals.Items.Add(festival);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show($"Fout bij het inlezen: {ex.Message}");
                }
            }
        }

        private void LstFestivals_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (lstFestivals.SelectedItem == null)
                return;

            lstArtiesten.Items.Clear();
            VeldenLeegmaken();

            FestivalBestand geselecteerdFestival = (FestivalBestand)lstFestivals.SelectedItem;
            try
            {
                string[] lines = File.ReadAllLines(geselecteerdFestival.VolledigPad);
                for (int i = 0; i < lines.Length; i += 5)
                {
                    Artiest artiest = new Artiest
                    {
                        Naam = lines[i],
                        Podium = lines[i + 1],
                        Datum = DateTime.Parse(lines[i + 2]),
                        Beginuur = lines[i + 3],
                        Einduur = lines[i + 4]
                    };
                    lstArtiesten.Items.Add(artiest);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show($"Fout bij het inlezen van het bestand: {ex.Message}");
            }
        }

        private void BtnArtiestToevoegen_Click(object sender, RoutedEventArgs e)
        {
            if (lstFestivals.SelectedItem == null)
            {
                MessageBox.Show("Geen festival geselecteerd.");
                return;
            }

            if (string.IsNullOrEmpty(txtNaam.Text) || string.IsNullOrEmpty(txtPodium.Text) ||
                !dpDatum.SelectedDate.HasValue || string.IsNullOrEmpty(txtBeginuur.Text) || string.IsNullOrEmpty(txtEinduur.Text))
            {
                MessageBox.Show("Vul alle velden in.");
                return;
            }

            Artiest artiest = new Artiest
            {
                Naam = txtNaam.Text,
                Podium = txtPodium.Text,
                Datum = dpDatum.SelectedDate.Value,
                Beginuur = txtBeginuur.Text,
                Einduur = txtEinduur.Text
            };

            lstArtiesten.Items.Add(artiest);
            VeldenLeegmaken();
        }

        private void LstArtiesten_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (lstArtiesten.SelectedItem == null)
                return;

            Artiest geselecteerdeArtiest = (Artiest)lstArtiesten.SelectedItem;

            txtNaam.Text = geselecteerdeArtiest.Naam;
            txtPodium.Text = geselecteerdeArtiest.Podium;
            dpDatum.SelectedDate = geselecteerdeArtiest.Datum;
            txtBeginuur.Text = geselecteerdeArtiest.Beginuur;
            txtEinduur.Text = geselecteerdeArtiest.Einduur;
        }

        private void BtnArtiestWijzigen_Click(object sender, RoutedEventArgs e)
        {
            if (lstFestivals.SelectedItem == null)
            {
                MessageBox.Show("Geen festival geselecteerd.");
                return;
            }

            if (lstArtiesten.SelectedItem == null)
            {
                MessageBox.Show("Geen artiest geselecteerd.");
                return;
            }

            if (string.IsNullOrEmpty(txtNaam.Text) || string.IsNullOrEmpty(txtPodium.Text) ||
                !dpDatum.SelectedDate.HasValue || string.IsNullOrEmpty(txtBeginuur.Text) || string.IsNullOrEmpty(txtEinduur.Text))
            {
                MessageBox.Show("Vul alle velden in.");
                return;
            }

            Artiest geselecteerdeArtiest = (Artiest)lstArtiesten.SelectedItem;
            geselecteerdeArtiest.Naam = txtNaam.Text;
            geselecteerdeArtiest.Podium = txtPodium.Text;
            geselecteerdeArtiest.Datum = dpDatum.SelectedDate.Value;
            geselecteerdeArtiest.Beginuur = txtBeginuur.Text;
            geselecteerdeArtiest.Einduur = txtEinduur.Text;

            lstArtiesten.Items.Refresh();
        }

        private void BtnArtiestVerwijderen_Click(object sender, RoutedEventArgs e)
        {
            if (lstFestivals.SelectedItem == null)
            {
                MessageBox.Show("Geen festival geselecteerd.");
                return;
            }

            if (lstArtiesten.SelectedItem == null)
            {
                MessageBox.Show("Geen artiest geselecteerd.");
                return;
            }

            lstArtiesten.Items.Remove(lstArtiesten.SelectedItem);
            VeldenLeegmaken();
        }

        private void BtnGeselecteerdFestivalBewaren_Click(object sender, RoutedEventArgs e)
        {
            if (lstFestivals.SelectedItem == null)
            {
                MessageBox.Show("Geen festival geselecteerd.");
                return;
            }

            FestivalBestand geselecteerdFestival = (FestivalBestand)lstFestivals.SelectedItem;

            try
            {
                using (StreamWriter writer = new StreamWriter(geselecteerdFestival.VolledigPad))
                {
                    foreach (Artiest artiest in lstArtiesten.Items)
                    {
                        writer.WriteLine(artiest.Naam);
                        writer.WriteLine(artiest.Podium);
                        writer.WriteLine(artiest.Datum.ToString("dd/MM/yyyy"));
                        writer.WriteLine(artiest.Beginuur);
                        writer.WriteLine(artiest.Einduur);
                    }
                }

                MessageBox.Show("Artiesten succesvol opgeslagen.");
                VeldenLeegmaken();
            }
            catch (Exception ex)
            {
                MessageBox.Show($"Fout bij het wegschrijven: {ex.Message}");
            }
        }
    }
}
Editor is loading...
Leave a Comment