// Praktiskais darbs 6.3
// Ralfs Emīls Saldnieks
// 110

using System;
public class HelloWorld {
  
  static void paraditZali(int[][] vietas)
  {
    Console.Clear();
    Console.WriteLine("+--------------+");
    Console.WriteLine("| Zāles vietas |");
    Console.WriteLine("+--------------+");
    for (int y = 0; y < vietas.Length; y++)
    {
      for (int x = 0; x < vietas[y].Length; x++)
      {
        if (vietas[y][x] == 1)
        {
          Console.Write("[x]");
        }
        else
        {
          Console.Write("[ ]");
        }
      }
      Console.WriteLine("");
    }
  }

  static bool rezervetVietu(int[][] vietas, List<string> rezervets)
  {
    Console.Clear();
    Console.Write("Ievadiet rindu: ");
    int.TryParse(Console.ReadLine(), out int y);

    Console.Write("Ievadiet vietu: ");
    int.TryParse(Console.ReadLine(), out int x);
    
    try
    {
        if (vietas[y - 1][x - 1] == 1)
        {
            Console.WriteLine($"Šī vieta jau ir aizņemta.");
            return false;
        }
        else
        {
            rezervets.Add($"Rinda {y}, vieta {x}");
            vietas[y-1][x-1] = 1;
            Console.WriteLine($"Veiksmīgi rezervēta Rinda {y}, vieta {x}.");
            return true;
        }
    }
    catch (IndexOutOfRangeException)
    {
        Console.WriteLine("Tādas rindas vai vietas nav!");
        return false;
    }
  }

  static void Main() 
  {
    bool exit = false;
    // Zāles konfigurācija: 3 rindas ar atšķirīgu vietu skaitu
    // 0 = Brīva, 1 = Rezervēta
    int[][] vietas = new int[][]
    {
      new int[] { 0, 0, 0, 0, 0 },    // 1. rinda (5 vietas)
      new int[] { 0, 0, 0, 0, 0, 0, 0 }, // 2. rinda (7 vietas)
      new int[] { 0, 0, 0, 0 }       // 3. rinda (4 vietas)
    };
    List<string> rezrvets = new List<string>();

    Console.Clear();
    while(!exit)
    {
      Console.WriteLine("Izvēlieties darbību! \n(1 – Parādīt zāli, 2 – Rezervēt vietu, 3 – Parādīt rezervāciju sarakstu, 4 - Iziet)");
      switch (Console.ReadKey().KeyChar)
      {
        case '1':
          paraditZali(vietas);
          break;
        case '2':
          rezervetVietu(vietas, rezrvets);
          break;
        case '3':
          Console.Clear();
          for (int i = 0; i < rezrvets.Count(); i++)
          {
            Console.WriteLine(rezrvets[i]);
          }
          break;
        case '4':
          exit = true;
          Console.WriteLine("\r "); 
          break;
        default:
          Console.WriteLine("Nav tādas darbības!");
          break;
      }
    }
  }
}