Ejemplo n.º 1
0
 public static void VoerItemAf(Item item)
 {
     CollectieBibliotheek.AfgevoerdeItems.Add(item);
     CollectieBibliotheek.ItemsInCollectie.Remove(item);
     item.VoerAf();
     CollectieBibliotheek.SaveCollectionsToFile();
 }
 public void Terugbrengen(Item item)
 {
     ItemsUitgeleend.Remove(item);
     item.BrengTerug();
     CollectieBibliotheek.SaveCollectionsToFile();
     CollectieBibliotheek.SaveUserData();
 }
 public void Uitlenen(Item item)
 {
     ItemsUitgeleend.Add(item);
     UitleenHistoriek.Add(item);
     item.LeenUit();//zet bool op true
     if (Reservatie.Contains(item))
     {
         Reservatie.Remove(item);
         item.SetReservatie(false);
     }
     CollectieBibliotheek.SaveCollectionsToFile();
     CollectieBibliotheek.SaveUserData();
 }
Ejemplo n.º 4
0
 public static void VoegItemToe(Item item)
 {
     CollectieBibliotheek.ItemsInCollectie.Add(item);
     CollectieBibliotheek.SaveCollectionsToFile();
 }
Ejemplo n.º 5
0
 public static void PromoveerLidNaarMedewerker(Lid lid)
 {
     CollectieBibliotheek.Leden.Add(new Medewerker(lid.Voornaam, lid.Familienaam, lid.GeboorteDatum, lid.Gebruikersnaam, lid.Wachtwoord));
     CollectieBibliotheek.Leden.Remove(lid);
     CollectieBibliotheek.SaveUsersToFile();
 }
        public void RegistreerAlsLid()
        {
            bool     dateParse             = true;
            bool     isValidGebruikersnaam = true;
            bool     isValidWachtwoord     = true;
            string   gebruikersnaam        = "";
            string   wachtwoord            = "";
            string   verifyWachtwoord      = "";
            DateTime tempDateTime;

            do
            {
                if (!dateParse)
                {
                    Console.WriteLine("Ingevoerde datum niet geldig");
                }
                Console.WriteLine("Wat is uw geboortedatum?(dd/mm/yyyy)");
                dateParse = DateTime.TryParse(Console.ReadLine(), out tempDateTime);
            } while (!dateParse);
            do
            {
                Console.Clear();
                Console.WriteLine("Kies een gebruikersnaam. Spaties zijn niet toegestaan.");
                Console.Write("Gebrukersnaam:");
                gebruikersnaam = Console.ReadLine();
                foreach (var item in CollectieBibliotheek.Leden)
                {
                    if (item.Gebruikersnaam == gebruikersnaam || String.IsNullOrWhiteSpace(gebruikersnaam))
                    {
                        isValidGebruikersnaam = false;
                    }
                }
                for (int i = 0; i < gebruikersnaam.Length; i++)
                {
                    if (gebruikersnaam[i] == ' ')
                    {
                        isValidGebruikersnaam = false;
                    }
                }
            } while (!isValidGebruikersnaam);
            do
            {
                if (!isValidWachtwoord)
                {
                    Console.WriteLine("Het wachtwoord komt niet overeen\nmet het geverifieerde wachtwoord!");
                }
                Console.WriteLine("Kies een wachtwoord. Druk enter om lid te worden zonder wachtwoord");
                Console.Write("Wachtwoord:");
                wachtwoord = Console.ReadLine();

                if (wachtwoord != "" && wachtwoord != " ")
                {
                    Console.Clear();
                    Console.WriteLine("Verifieer je wachtwoord:");
                    Console.Write("Wachtwoord:");
                    verifyWachtwoord = Console.ReadLine();
                    if (verifyWachtwoord != wachtwoord)
                    {
                        isValidWachtwoord = false;
                    }
                }
            } while (!isValidWachtwoord);
            CollectieBibliotheek.Leden.Add(new Lid(Voornaam, Familienaam, tempDateTime, gebruikersnaam, wachtwoord));
            CollectieBibliotheek.SaveUsersToFile();
            CollectieBibliotheek.CreateNewUserDataFolder(gebruikersnaam);
            Console.WriteLine($"Proficiat {Voornaam} {Familienaam}, u bent nu lid van de bibliotheek!");
            Console.WriteLine($"Uw gebruikersnaam: {gebruikersnaam}\nUw geboortedatum: {tempDateTime.Day}/{tempDateTime.Month}/{tempDateTime.Year} ");
            Console.WriteLine("Druk enter in te loggen als lid!");
            Console.ReadLine();
            Console.Clear();
            Menu.LidMenu(gebruikersnaam);
        }
        private static void AfvoerMenu(string gebruikersNaam)
        {
            string inputID      = "";
            int    itemIndex    = -1;
            bool   isIDValid    = true;
            int    accountIndex = CollectieBibliotheek.GetAccountIndex(gebruikersNaam);

            if (CollectieBibliotheek.Leden[accountIndex] is Medewerker == false)
            {
                throw new Exception("Toegang tot afvoer menu geweigerd. Gebruiker is geen medewerker.");
            }
            do
            {
                Console.Clear();
                CollectieBibliotheek.Leden[accountIndex].ToonOverzichtCollectie();
                if (!isIDValid)
                {
                    Console.WriteLine($"Item {inputID} bestaat niet!");
                }
                Console.WriteLine("Geef het ID van het item om af te voeren");
                inputID = Console.ReadLine();
                for (int i = 0; i < CollectieBibliotheek.ItemsInCollectie.Count; i++)
                {
                    if (CollectieBibliotheek.ItemsInCollectie[i].ItemId == inputID)
                    {
                        Console.WriteLine("Item gevonden.");
                        isIDValid = true;
                        itemIndex = i;
                    }
                }
                if (itemIndex == -1)
                {
                    isIDValid = false;
                }
            } while (!isIDValid);
            Medewerker.VoerItemAf(CollectieBibliotheek.ItemsInCollectie[itemIndex]);
            Console.Clear();
            Console.WriteLine($"Item {inputID} werd afgevoerd!");
            int  inputInt = 1;
            bool intParse = true;

            do
            {
                if (inputInt < 1 || inputInt > 2 || !intParse)
                {
                    Console.Clear();
                    Console.WriteLine("Het ingevoerde getal is niet geldig!");
                }
                Console.WriteLine("Maak uw keuze:");
                Console.WriteLine("[1]Keer terug");
                Console.WriteLine("[2]Voer een ander item af");
                intParse = Int32.TryParse(Console.ReadLine(), out inputInt);
            } while (inputInt < 1 || inputInt > 2 || !intParse);
            switch (inputInt)
            {
            case 1:
                MedewerkerMenu(gebruikersNaam);
                break;

            case 2:
                AfvoerMenu(gebruikersNaam);
                break;

            default:
                throw new Exception("Het gekozen getal staat niet in het menu! (afvoer menu)");
            }
        }
        private static void ToevoegMenu(string gebruikersNaam)
        {
            bool      intParse       = true;
            bool      isTitelValid   = true;
            bool      isMakerValid   = true;
            bool      isJaartalValid = true;
            string    maker          = "";
            string    makerWoord     = "";
            string    titel          = "";
            int       userIntInput   = 1;
            SoortItem soortItem;
            int       jaartal;
            int       accountIndex = CollectieBibliotheek.GetAccountIndex(gebruikersNaam);

            if (CollectieBibliotheek.Leden[accountIndex] is Medewerker == false)
            {
                throw new Exception("Toegang tot toevoeg menu geweigerd. Gebruiker is geen medewerker.");
            }
            do
            {
                Console.Clear();
                if (userIntInput < 1 || userIntInput > 4 || !intParse)
                {
                    Console.WriteLine("Het ingegeven getal is niet geldig!");
                }
                Console.WriteLine("Kies een itemsoort om toe te voegen:");
                Console.WriteLine("[1]Boek");
                Console.WriteLine("[2]Stripverhaal");
                Console.WriteLine("[3]DVD");
                Console.WriteLine("[4]CD");
                intParse = Int32.TryParse(Console.ReadLine(), out userIntInput);
            } while (userIntInput < 1 || userIntInput > 4 || !intParse);
            soortItem = (SoortItem)userIntInput - 1;
            do
            {
                Console.Clear();
                if (!isTitelValid)
                {
                    Console.Clear();
                    Console.WriteLine("Ingegeven title is niet geldig!");
                }
                Console.WriteLine($"Geef de titel het {soortItem} item");
                Console.Write("Titel:");
                titel = Console.ReadLine();
                if (String.IsNullOrWhiteSpace(titel))
                {
                    isTitelValid = false;
                }
            } while (!isTitelValid);
            switch (soortItem)
            {
            case SoortItem.Boek:
                makerWoord = "Auteur";
                break;

            case SoortItem.Stripverhaal:
                makerWoord = "Auteur";
                break;

            case SoortItem.DVD:
                makerWoord = "Regisseur";
                break;

            case SoortItem.CD:
                makerWoord = "Uitvoerder";
                break;

            default:
                throw new Exception("Ingegeven SoortItem bestaat niet (toevoeg menu)");
            }
            do
            {
                Console.Clear();
                if (!isMakerValid)
                {
                    Console.WriteLine($"Ingevoerde {makerWoord.ToLower()} is niet geldig!");
                }
                Console.WriteLine($"Voer de {makerWoord.ToLower()} in voor {titel}.");
                Console.Write(makerWoord + ":");
                maker = Console.ReadLine();
                if (String.IsNullOrWhiteSpace(maker))
                {
                    isMakerValid = false;
                }
            } while (!isMakerValid);
            do
            {
                if (!isJaartalValid || !intParse)
                {
                    Console.WriteLine("Het ingegeven jaartal is niet geldig!");
                }
                Console.WriteLine($"Voer het jaartal voor {titel} in.");
                Console.Write("Jaartal:");
                intParse = Int32.TryParse(Console.ReadLine(), out jaartal);
                if (jaartal < 0)
                {
                    isJaartalValid = false;
                }
            } while (!isJaartalValid || !intParse);
            Medewerker.VoegItemToe(new Item(soortItem, titel, maker, jaartal, false, false, false));
            int inputInt = 1;

            do
            {
                if (inputInt < 1 || inputInt > 2 || !intParse)
                {
                    Console.Clear();
                    Console.WriteLine("Het ingevoerde getal is niet geldig!");
                }
                Console.WriteLine("Maak uw keuze:");
                Console.WriteLine("[1]Keer terug");
                Console.WriteLine("[2]Voeg een ander item toe");
                intParse = Int32.TryParse(Console.ReadLine(), out inputInt);
            } while (inputInt < 1 || inputInt > 2 || !intParse);
            switch (inputInt)
            {
            case 1:
                MedewerkerMenu(gebruikersNaam);
                break;

            case 2:
                ToevoegMenu(gebruikersNaam);
                break;

            default:
                throw new Exception("Het gekozen getal staat niet in het menu! (toevoeg menu)");
            }
        }
        private static void PromoveerMenu(string gebruikersNaam)
        {
            string inputUserName      = "";
            int    promoveerUserIndex = 0;
            int    accountIndex       = CollectieBibliotheek.GetAccountIndex(gebruikersNaam);
            bool   kanPromoveren      = false;
            bool   isGevonden         = false;

            if (CollectieBibliotheek.Leden[accountIndex] is Medewerker == false)
            {
                throw new Exception("Toegang tot promoveer menu geweigerd. Gebruiker is geen medewerker.");
            }
            else
            {
                Medewerker.GeefOverzichtLeden();
                Console.WriteLine("Geef de gebruikersnaam van het lid om te promoveren");
                inputUserName = Console.ReadLine();
                for (int i = 0; i < CollectieBibliotheek.Leden.Count; i++)
                {
                    if (CollectieBibliotheek.Leden[i].Gebruikersnaam == inputUserName)
                    {
                        Console.WriteLine("Lid gevonden");
                        isGevonden = true;
                        if (CollectieBibliotheek.Leden[i] is Medewerker == false)
                        {
                            kanPromoveren      = true;
                            promoveerUserIndex = i;
                        }
                        else
                        {
                            Console.WriteLine($"De gebruiker {inputUserName} is al een medewerker!");
                        }
                    }
                }
                if (!isGevonden)
                {
                    Console.WriteLine($"De gebruiker {inputUserName} bestaat niet!");
                }
                if (kanPromoveren)
                {
                    Medewerker.PromoveerLidNaarMedewerker(CollectieBibliotheek.Leden[promoveerUserIndex]);
                    Console.WriteLine($"Het lid {inputUserName} is nu een medewerker!");
                }
                int  inputInt = 1;
                bool intParse = true;
                do
                {
                    if (inputInt < 1 || inputInt > 2 || !intParse)
                    {
                        Console.Clear();
                        Console.WriteLine("Het ingevoerde getal is niet geldig!");
                    }
                    Console.WriteLine("Maak uw keuze:");
                    Console.WriteLine("[1]Keer terug");
                    Console.WriteLine("[2]Promoveer een andere gebruiker");
                    intParse = Int32.TryParse(Console.ReadLine(), out inputInt);
                } while (inputInt < 1 || inputInt > 2 || !intParse);
                switch (inputInt)
                {
                case 1:
                    MedewerkerMenu(gebruikersNaam);
                    break;

                case 2:
                    PromoveerMenu(gebruikersNaam);
                    break;

                default:
                    throw new Exception("Het gekozen getal staat niet in het menu! (promoveer menu)");
                }
            }
        }
        private static void TerugbrengMenu(string gebruikersNaam)
        {
            string inputID           = "";
            bool   itemTeruggeefbaar = false;
            int    terugbrengIndex   = 0;
            int    accountIndex      = CollectieBibliotheek.GetAccountIndex(gebruikersNaam);

            CollectieBibliotheek.Leden[accountIndex].ToonItemsUitgeleend();
            Console.WriteLine("Geef het ID van het item dat u wenst terug te brengen");
            Console.Write("ID:");
            inputID = Console.ReadLine();

            for (int i = 0; i < CollectieBibliotheek.Leden[accountIndex].ItemsUitgeleend.Count; i++)
            {
                if (CollectieBibliotheek.Leden[accountIndex].ItemsUitgeleend[i].ItemId == inputID)
                {
                    terugbrengIndex = i;
                    Console.WriteLine("Item gevonden");
                    Console.WriteLine($"Item {CollectieBibliotheek.Leden[accountIndex].ItemsUitgeleend[i].ItemId} teruggebracht");
                    itemTeruggeefbaar = true;
                }
            }
            if (!itemTeruggeefbaar)
            {
                Console.WriteLine("Item met ingegeven ID is niet uitgeleend, dus kan niet teruggebracht worden.");
            }
            else
            {
                CollectieBibliotheek.Leden[accountIndex].Terugbrengen(CollectieBibliotheek.Leden[accountIndex].ItemsUitgeleend[terugbrengIndex]);
            }
            int  inputInt = 1;
            bool intParse = true;

            do
            {
                if (inputInt < 1 || inputInt > 2 || !intParse)
                {
                    Console.Clear();
                    Console.WriteLine("Het ingevoerde getal is niet geldig!");
                }
                Console.WriteLine("Maak uw keuze:");
                Console.WriteLine("[1]Keer terug");
                Console.WriteLine("[2]Breng een ander item terug");
                intParse = Int32.TryParse(Console.ReadLine(), out inputInt);
            } while (inputInt < 1 || inputInt > 2 || !intParse);
            switch (inputInt)
            {
            case 1:
                if (CollectieBibliotheek.Leden[accountIndex] is Medewerker)
                {
                    MedewerkerMenu(gebruikersNaam);
                }
                else
                {
                    LidMenu(gebruikersNaam);
                }
                break;

            case 2:
                TerugbrengMenu(gebruikersNaam);
                break;

            default:
                throw new Exception("Het gekozen getal staat niet in het menu! (terugbreng menu)");
            }
        }
        private static void ReservatieMenu(string gebruikersNaam)
        {
            string inputID           = "";
            int    itemIndex         = 0;
            int    accountIndex      = CollectieBibliotheek.GetAccountIndex(gebruikersNaam);
            bool   itemReserveerbaar = false;

            CollectieBibliotheek.Leden[accountIndex].ToonOverzichtBeschikBaar();
            Console.WriteLine("Geef het ID van het item dat u wenst te reserveren");
            Console.Write("ID:");
            inputID = Console.ReadLine();
            for (int i = 0; i < CollectieBibliotheek.ItemsInCollectie.Count; i++)
            {
                if (CollectieBibliotheek.ItemsInCollectie[i].ItemId == inputID)
                {
                    Console.WriteLine("Item gevonden.");
                }
                if (CollectieBibliotheek.ItemsInCollectie[i].ItemId == inputID && CollectieBibliotheek.ItemsInCollectie[i].Gereserveerd == false)
                {
                    itemReserveerbaar = true;
                    itemIndex         = i;
                    Console.WriteLine("Item beschikbaar voor reservatie.");
                }
                else if (CollectieBibliotheek.ItemsInCollectie[i].ItemId == inputID && CollectieBibliotheek.ItemsInCollectie[i].Gereserveerd == true)
                {
                    if (CollectieBibliotheek.Leden[accountIndex].IsGereserveerd(CollectieBibliotheek.ItemsInCollectie[i]))
                    {
                        Console.WriteLine("Je hebt dit item al gereserveert!");
                    }
                    else
                    {
                        Console.WriteLine("Item is al gereserveerd door een andere gebruiker.");
                    }
                }
            }
            if (itemReserveerbaar == true)
            {
                CollectieBibliotheek.Leden[accountIndex].Reservatie.Add(CollectieBibliotheek.ItemsInCollectie[itemIndex]);
                CollectieBibliotheek.ItemsInCollectie[itemIndex].SetReservatie(true);
                Console.WriteLine($"Item met ID:{inputID} werd gereserveerd door gebruiker {CollectieBibliotheek.Leden[accountIndex].Gebruikersnaam}");
            }
            else
            {
                Console.WriteLine("Het gekozen item kon niet worden gereserveerd");
            }

            int  inputInt = 1;
            bool intParse = true;

            do
            {
                if (inputInt < 1 || inputInt > 2 || !intParse)
                {
                    Console.Clear();
                    Console.WriteLine("Het ingevoerde getal is niet geldig!");
                }
                Console.WriteLine("Maak uw keuze:");
                Console.WriteLine("[1]Keer terug");
                Console.WriteLine("[2]Reserveer een ander item");
                intParse = Int32.TryParse(Console.ReadLine(), out inputInt);
            } while (inputInt < 1 || inputInt > 2 || !intParse);
            switch (inputInt)
            {
            case 1:
                if (CollectieBibliotheek.Leden[accountIndex] is Medewerker)
                {
                    MedewerkerMenu(gebruikersNaam);
                }
                else
                {
                    LidMenu(gebruikersNaam);
                }
                break;

            case 2:
                ReservatieMenu(gebruikersNaam);
                break;

            default:
                throw new Exception("Het gekozen getal staat niet in het menu! (reservatie menu)");
            }
        }
        private static void MedewerkerMenu(string gebruikersNaam)
        {
            int  inputInt     = 1;
            int  accountIndex = CollectieBibliotheek.GetAccountIndex(gebruikersNaam);
            bool intParse     = true;

            Console.Clear();
            Console.WriteLine($"Welkom {CollectieBibliotheek.Leden[accountIndex].Voornaam} {CollectieBibliotheek.Leden[accountIndex].Familienaam}");
            do
            {
                if (inputInt < 0 || inputInt > 9 || !intParse)
                {
                    Console.WriteLine("Ingevoerde getal is niet geldig!");
                }
                Console.WriteLine("Maak uw keuze:");
                Console.WriteLine("[1]Zoek een item");
                Console.WriteLine("[2]Toon overzichten");
                Console.WriteLine("[3]Leen een item uit");
                Console.WriteLine("[4]Reserveer een item");
                Console.WriteLine("[5]Breng een item terug");
                Console.WriteLine("[6]Bekijk uitleenhistoriek");
                Console.WriteLine("[7]Bekijk uitgeleende items");
                Console.WriteLine("[8]Bekijk gereserveerde items");
                Console.WriteLine("[9]Promoveer een lid naar medewerker");
                Console.WriteLine("[10]Voeg een item toe aan de collectie");
                Console.WriteLine("[11]Voer een item af uit de collectie");
                Console.WriteLine("[12]Log uit en keer terug");
                intParse = Int32.TryParse(Console.ReadLine(), out inputInt);
            } while (inputInt < 0 || inputInt > 12 || !intParse);
            switch (inputInt)
            {
            case 1:
                Console.Clear();
                CollectieBibliotheek.Leden[accountIndex].ZoekItem();
                Console.WriteLine("Druk enter om terug te keren");
                Console.ReadLine();
                MedewerkerMenu(gebruikersNaam);
                break;

            case 2:
                Console.Clear();
                CollectieBibliotheek.Leden[accountIndex].ToonOverzicht();
                Console.WriteLine("Druk enter om terug te keren");
                Console.ReadLine();
                MedewerkerMenu(gebruikersNaam);
                break;

            case 3:
                Console.Clear();
                UitleenMenu(gebruikersNaam);
                break;

            case 4:
                Console.Clear();
                ReservatieMenu(gebruikersNaam);
                break;

            case 5:
                Console.Clear();
                TerugbrengMenu(gebruikersNaam);
                break;

            case 6:
                Console.Clear();
                CollectieBibliotheek.Leden[accountIndex].ToonUitleenHistoriek();
                Console.WriteLine("Druk enter om terug te keren");
                Console.ReadLine();
                MedewerkerMenu(gebruikersNaam);
                break;

            case 7:
                Console.Clear();
                CollectieBibliotheek.Leden[accountIndex].ToonItemsUitgeleend();
                Console.WriteLine("Druk enter om terug te keren");
                Console.ReadLine();
                MedewerkerMenu(gebruikersNaam);
                break;

            case 8:
                Console.Clear();
                CollectieBibliotheek.Leden[accountIndex].ToonGereserveerdeItems();
                Console.WriteLine("Druk enter om terug te keren");
                Console.ReadLine();
                MedewerkerMenu(gebruikersNaam);
                break;

            case 9:
                Console.Clear();
                PromoveerMenu(gebruikersNaam);
                break;

            case 10:
                Console.Clear();
                ToevoegMenu(gebruikersNaam);
                break;

            case 11:
                Console.Clear();
                AfvoerMenu(gebruikersNaam);
                break;

            case 12:
                Console.Clear();
                StartScherm();
                break;

            default:
                break;
            }
        }
 public void Reserveren(Item item)
 {
     Reservatie.Add(item);
     CollectieBibliotheek.SaveCollectionsToFile();
     CollectieBibliotheek.SaveUserData();
 }