/*
Veidoja: Edgars Katajevs
Grupa: 110
Praktiskais darbs: 6.3
Izmantotais compiler: www.onlinegdb.com
*/

using System;
using System.Collections.Generic;

class PR63 
{
  static void Main() {
    Console.WriteLine("Hello World");
    int[][] vietas = new int[][]
    {
        new int[] { 0, 0, 0, 0, 0 },
        new int[] { 0, 0, 0, 0, 0, 0, 0 }, 
        new int[] { 0, 0, 0, 0 } 
    };
    
    List<string> rezervacija =  new List<string>();
    
    ApstrādātIzvēli(vietas, rezervacija);
  }
  static void ParādītZāli (int[][] vietas)
  {
      for (int i=0; i<vietas.Length; i++)
      {
          for (int j=0; j<vietas[i].Length; j++)
          {
              if(vietas[i][j]==0)
              Console.Write("[0]");
              else
              Console.Write("[X]");
          }
          Console.WriteLine();
      }
  }
  static bool RezervētVietu (int[][] vietas, List<string> rezervacija)
  {
      Console.WriteLine("Lūdzu ievadiet rindas numburu:");
      if(!int.TryParse(Console.ReadLine(), out int rinda) || rinda < 1 || rinda > vietas.Length)
      {
          Console.WriteLine("Nepareiz numurs");
          return false;
      }
      Console.WriteLine("Lūdzu ievadiet sēdvietas numburu:");
      if(!int.TryParse(Console.ReadLine(), out int sedvieta) || sedvieta < 1 || sedvieta > vietas[rinda-1].Length)
      {
          Console.WriteLine("Nepareiz numurs");
          return false;
      }
      if(vietas[rinda-1][sedvieta-1] == 1)
      {
      Console.WriteLine("Vieta jau ir rezervēta!");
      return false;
      }
      vietas[rinda-1][sedvieta-1] = 1;
      string ieraksts = $"Rinda {rinda}, Vieta {sedvieta}";
      rezervacija.Add(ieraksts);
      Console.WriteLine($"Vieta tika rezervēta {ieraksts}!");
      return true;
  }
  static void ApstrādātIzvēli (int[][] vietas, List<string> rezervacija)
  {
      bool turpini = true;
      do
      {
          Console.Clear();
          Console.WriteLine("1 – Parādīt zāli");
          Console.WriteLine("2 – Rezervēt vietu");
          Console.WriteLine("3 – Parādīt rezervāciju sarakstu");
          Console.WriteLine("4 – Iziet");
          string nevada = Console.ReadLine();
          switch(nevada)
          {
              case "1":
              ParādītZāli(vietas);
              break;
              case "2":
              RezervētVietu(vietas, rezervacija);
              break;
              case "3":
              if (rezervacija.Count==0)
              Console.WriteLine("Nav rezervāciju!");
              else
              rezervacija.ForEach(r => Console.WriteLine(r));
              break;
              case "4": 
              turpini = false;
              break;
              default:
              Console.WriteLine("Kļūda!");
              break;
          }
          if (turpini)
          {
              Console.WriteLine("Nospied ENTER!!!");
              Console.ReadKey(); 
          }
      }
      while(turpini);
  }
}