Esempio n. 1
0
        static void Main(string[] args)
        {
            _mgr = new Manager();
            int       keuze;
            Werknemer werkn = new Werknemer();
            // List<Werknemer> werknemers = _mgr.GetAllWerknemers();
            Taak taak = new Taak();

            // List<Taak> taken = _mgr.GetAllTaken();


            do
            {
                Console.WriteLine("What would you like to do?");
                Console.WriteLine("=============================");
                Console.WriteLine("0) Quit");
                Console.WriteLine("1) show all werknemers");
                Console.WriteLine("2) show all Taken");
                Console.WriteLine("3) show werkgever details");
                Console.WriteLine("4) show werknemers of Functie");
                Console.WriteLine("5) show Taken of Functie and/or uur");
                Console.WriteLine("6) Voeg werknemer toe");
                Console.WriteLine("7) Voeg Taak toe");
                Console.WriteLine("8) Voeg Taak toe aan Werknemer");
                Console.WriteLine("9) Verwijder Taak van Werknemer");
                bool valid = int.TryParse(Console.ReadLine(), out keuze);


                switch (keuze)
                {
                case 1:
                    _mgr.GetAllWerknemersWithTaken().ForEach(x =>
                    {
                        Console.WriteLine(x.ToString());
                        x.Taken?.ToList().ForEach(t =>
                        {
                            Console.WriteLine("Waarvan de taken zijn:");
                            Console.WriteLine("\t taakID: " + t.Taak.Pid + " taakbeschrijving: " + t.Taakbeschrijving);
                        });
                    });
                    break;

                case 2:
                    _mgr.GetAllTakenWithWerknemers().ForEach(x =>
                    {
                        Console.WriteLine(x.ToString());
                        x.Werknemers.ToList().ForEach(w =>
                        {
                            Console.WriteLine("Waarvan de werknemers zijn: ");
                            Console.WriteLine("\t" + w.Werknemer);
                        });
                    });
                    break;

                case 3:
                    _mgr.GetAllWerkgevers().ForEach(x =>
                    {
                        Console.WriteLine(x.ToString());
                    });
                    Console.WriteLine("");
                    break;

                case 4:
                    Console.WriteLine("Welke functie wilt u zien (1 = I, 2 = H, 3 = B, 4 = F, 5 = Z, 6 = B1, 7 = B2): ");
                    int cijfer = int.Parse(Console.ReadLine());

                    var filteredList = _mgr.GetWerknemersByFunctie(cijfer);
                    foreach (var werknemer in filteredList)
                    {
                        Console.WriteLine(werknemer.ToString());
                    }
                    Console.WriteLine("");
                    break;

                case 5:
                    Console.WriteLine("Voer Functie in (1 = I, 2 = H, 3 = B, 4 = F, 5 = Z, 6 = B1, 7 = B2) of laat leeg: ");
                    int functiecijfer;

                    bool cijferCheck = int.TryParse(Console.ReadLine(), out functiecijfer);
                    Console.WriteLine("Voer uur in of laat leeg: ");
                    double uur;
                    bool   uurCheck = double.TryParse(Console.ReadLine(), out uur);

                    if (cijferCheck && uurCheck)
                    {
                        var taakList = _mgr.GetTakenByFunctieAndUur(functiecijfer, uur);
                        foreach (var t in taakList)
                        {
                            Console.WriteLine(t.ToString());
                        }
                    }
                    else if (cijferCheck)
                    {
                        var cijferlist = _mgr.GetTakenByFunctie(functiecijfer);
                        foreach (var t in cijferlist)
                        {
                            Console.WriteLine(t.ToString());
                        }
                    }
                    else if (uurCheck)
                    {
                        var uurList = _mgr.GetTakenByUur(uur);

                        foreach (var t in uurList)
                        {
                            Console.WriteLine(t.ToString());
                        }
                    }
                    else
                    {
                        foreach (var t in _mgr.GetAllTaken())
                        {
                            Console.WriteLine(t.ToString());
                        }
                    }

                    break;

                case 6:
                    Console.WriteLine("Pid: ");
                    int pid = int.Parse(Console.ReadLine());
                    Console.WriteLine("werkgeverId: ");
                    int wid = int.Parse(Console.ReadLine());
                    Console.WriteLine("naam: ");
                    string naam = Console.ReadLine();
                    Console.WriteLine("uurloon: ");
                    double uurloon = double.Parse(Console.ReadLine());
                    Console.WriteLine("werkdag (dd/mm/yyyy): ");
                    DateTime werkdag = DateTime.Parse(Console.ReadLine());
                    Console.WriteLine("functie (1 = I, 2 = H, 3 = B, 4 = F, 5 = Z, 6 = B1, 7 = B2): ");
                    int functie = int.Parse(Console.ReadLine());
                    var item    = (Functie)Enum.GetValues(typeof(Functie)).GetValue(functie - 1);
                    _mgr.AddWerknemer(pid, wid, naam, uurloon, werkdag, item);
                    break;

                case 7:
                    Console.WriteLine("taakId: ");
                    int taakId = int.Parse(Console.ReadLine());
                    Console.WriteLine("pid: ");
                    int tPid = int.Parse(Console.ReadLine());
                    Console.WriteLine("uur: ");
                    double tuur = double.Parse(Console.ReadLine());
                    Console.WriteLine("functie (1 = I, 2 = H, 3 = B, 4 = F, 5 = Z, 6 = B1, 7 = B2): ");
                    int tfunctie = int.Parse(Console.ReadLine());
                    var element  = (Functie)Enum.GetValues(typeof(Functie)).GetValue(tfunctie - 1);
                    _mgr.AddTaak(taakId, tPid, tuur, element);
                    break;

                case 8:
                    Console.WriteLine("Kies een werknemer aan wie je een taak wil toewijzen");
                    _mgr.GetAllWerknemers().ToList().ForEach(x => Console.WriteLine("Id: {0} naam: {1}", x.Pid, x.Naam));
                    int  chosenId;
                    bool IdTry = int.TryParse(Console.ReadLine(), out chosenId);
                    if (!IdTry)
                    {
                        Console.WriteLine("FOUT: Kies de gewenste ID van de werknemer?");
                    }

                    var w = _mgr.GetWerknemer(chosenId);
                    if (w is null)
                    {
                        Console.WriteLine("FOUT: Deze Werknemer staat niet in de lijst?");
                    }
                    else
                    {
                        Console.WriteLine("Welke taak wil je toevoegen");
                        _mgr.GetAllTaken().ForEach(x => Console.WriteLine("Id: {0} naam: {1}", x.TaakId, x.Uur));
                        int  chosenTaakId;
                        bool TaakIdTry = int.TryParse(Console.ReadLine(), out chosenTaakId);
                        if (!TaakIdTry)
                        {
                            Console.WriteLine("FOUT: Kies de gewenste Taak ID?");
                        }

                        var t = _mgr.GetTaak(chosenTaakId);
                        if (t is null)
                        {
                            Console.WriteLine("FOUT: Deze Taak staat niet in de lijst?");
                        }
                        else
                        {
                            Console.WriteLine("Voor welke Afdeling:");
                            Console.WriteLine("Afdeling (1 = Koeken, 2 = Koffie, 3 = NONFOOD, 4 = Frigo, 5 = Conserves, 6 = Wasmiddelen, 7 = Alcohol, 8 = Brood, 9= Energiedranken, 10 = Diepvries, 11 = Kassa): ");
                            int  afdeling;
                            bool afdelingTry = int.TryParse(Console.ReadLine(), out afdeling);
                            if (!afdelingTry)
                            {
                                Console.WriteLine("FOUT: de gekozen afdeling staat niet in de lijst?");
                            }
                            Console.WriteLine("Voer een beschrijving in voor de Taak: ");
                            string beschrijving = Console.ReadLine();


                            _mgr.CreateWerknemerTaak(new WerknemerTaak()
                            {
                                Taak             = t,
                                Afdeling         = (Afdelingen)Enum.GetValues(typeof(Afdelingen)).GetValue(afdeling - 1),
                                Taakbeschrijving = beschrijving,
                                Werknemer        = w
                            });
                        }
                    }
                    break;

                case 9:
                    Console.WriteLine("Van Welke werknemer wilt u een taak van verwijderen?");
                    _mgr.GetAllWerknemers().ForEach(x => Console.WriteLine("Id: {0} naam: {1}", x.Pid, x.Naam));
                    int  wID;
                    bool wIdTry = int.TryParse(Console.ReadLine(), out wID);
                    if (!wIdTry)
                    {
                        Console.WriteLine(" FOUT: Kies de gewenste ID van de werknemer?");
                    }
                    Console.WriteLine("Welke taak wilt u verwijderen?");
                    var getAll = _mgr.GetAllTakenFromWerknemer(wID);

                    _mgr.GetAllTakenFromWerknemer(wID).ForEach(x => Console.WriteLine("Id: {0} uur: {1}", x.TaakId, x.Uur));
                    int  removeTaakId;
                    bool removeTaakIdTry = int.TryParse(Console.ReadLine(), out removeTaakId);
                    if (!removeTaakIdTry)
                    {
                        Console.WriteLine("FOUT: Kies de gewenste ID van de werknemer?");
                    }

                    if (wIdTry && removeTaakIdTry)
                    {
                        _mgr.DeleteWerknemerTaak(wID, removeTaakId);
                        Console.WriteLine("Taak verwijdert van werknemer {0}", _mgr.GetWerknemer(wID));
                    }
                    else
                    {
                        Console.WriteLine(" FOUT: Taak niet verwijdert");
                    }
                    break;
                }
            } while (keuze != 0);
        }