Gå till innehållet

Hela programmet - Bordshanteraren

string[] bordsInformation;
string filnamn = "centralbord.txt";
string tomtBordBeskrivning = "0;Inga gäster";
int antalbord = 8;

Console.WriteLine("Detta är Centralrestaurangens bordshanterare");

// Läs in från fil ifall den finns
if (File.Exists(filnamn))
{
    bordsInformation = File.ReadAllLines(filnamn);
    Console.WriteLine("Bordsinformation lästes in från fil");
}
else
{
    // Skapa bordslistan och fyll den med information
    bordsInformation = new string[antalbord];
    for (int i = 0; i < bordsInformation.Length; i++)
    {
        bordsInformation[i] = tomtBordBeskrivning;
    }
    File.WriteAllLines(filnamn, bordsInformation);
    Console.WriteLine("Fil med bordsinformation hittades ej, ny information skapades");
}            
Console.WriteLine();

// Programmets huvudloop
string menyVal = "0";            
while (menyVal != "4")
{
    Console.WriteLine("Välj ett alternativ");
    Console.WriteLine("1. Visa alla bord");
    Console.WriteLine("2. Lägg till/ändra bordsinformation");
    Console.WriteLine("3. Markera att ett bord är tomt");
    Console.WriteLine("4. Avsluta programmet");
    menyVal = Console.ReadLine();

    // Tom rad innan användarens val körs
    Console.WriteLine();

    switch (menyVal)
    {
        // Visa alla bord
        case "1":
            int totaltAntalGäster = 0;
            for (int i = 0; i < bordsInformation.Length; i++)
            {
                if (bordsInformation[i] == tomtBordBeskrivning)
                {
                    Console.WriteLine($"Bord {i + 1} - Inga gäster");
                    continue;
                }

                // Detta sker bara om bordet inte är tomt
                string[] enskiltBordsinformation = bordsInformation[i].Split(';');
                int antalGäster = int.Parse(enskiltBordsinformation[0]);
                string bordsnamn = enskiltBordsinformation[1];
                totaltAntalGäster += antalGäster;
                Console.WriteLine($"Bord {i + 1} - Namn: {bordsnamn}, antal gäster: {antalGäster}");

            }
            Console.WriteLine($"Totalt antal gäster: {totaltAntalGäster}");
            break;

        // Lägg till/ändra bordsinformation
        case "2":
            Console.WriteLine("Vilket bordsnummer vill du lägga till/ändra informationen för?");
            int bordsnummerÄndra = int.Parse(Console.ReadLine());
            if (bordsnummerÄndra <= 0 || bordsnummerÄndra > bordsInformation.Length)
            {
                Console.WriteLine($"{bordsnummerÄndra} är inte ett giltigt bordsnummer");
                break;
            }

            string[] nyttBordInfo = new string[2];
            Console.WriteLine("Skriv in bordets namn");
            nyttBordInfo[1] = Console.ReadLine();
            Console.WriteLine("Hur många gäster finns vid bordet?");
            nyttBordInfo[0] = Console.ReadLine();
            bordsInformation[bordsnummerÄndra - 1] = string.Join(";", nyttBordInfo);

            // Uppdatera sparfilen
            File.WriteAllLines(filnamn, bordsInformation);
            break;

        // Markera att ett bord är tomt
        case "3":
            Console.WriteLine("Vilket bordsnummer vill du markera som tomt?");
            int bordsnummerRadera = int.Parse(Console.ReadLine());
            if (bordsnummerRadera <= 0 || bordsnummerRadera > bordsInformation.Length)
            {
                Console.WriteLine($"{bordsnummerRadera} är inte ett giltigt bordsnummer");
                break;
            }

            bordsInformation[bordsnummerRadera - 1] = tomtBordBeskrivning;
            Console.WriteLine($"Bord {bordsnummerRadera} är markerat som tomt");

            // Uppdatera sparfilen
            File.WriteAllLines(filnamn, bordsInformation);
            break;

        // Gör ingenting (programmet avslutas)
        case "4":
            break;

        default:
            Console.WriteLine("Du valde inte ett giltigt alternativ");
            break;
    }

    // Tom rad innan nästa körning
    Console.WriteLine();