/*
Veidoja: Gustavs Skripa
Grupa: 110
Praktiskais darbs 6.3
izmantotais compiler: https://www.programiz.com
*/
using System;
using System.Collections.Generic;

class Program
{
static void Main(string[] args)

{
int[][] vietas = new int[][]
{
new int[] { 0, 0, 0, 0, 0 },
new int[] { 0, 0, 0, 0, 0 },
new int[] { 0, 0, 0, 0, 0 }
};

List<string> rezervacijas = new List<string>();

do
{
Console.Clear();
ApstradatIzveli(vietas, rezervacijas);
} while (true);
}

static void ParaditZali(int[][] vietas)
{
Console.WriteLine("Zales plans:");
for (int i = 0; i < vietas.Length; i++)
{
for (int j = 0; j < vietas[i].Length; j++)
{
Console.Write(vietas[i][j] == 0 ? "[O] " : "[X] ");
}
Console.WriteLine();
}
}

static void RezervetVietu(int[][] vietas, List<string> rezervacijas)
{
Console.WriteLine("Ievadiet rindas numuru (1-3):");
int rinda = Convert.ToInt32(Console.ReadLine()) - 1;

Console.WriteLine("Ievadiet vietas numuru (1-5):");
int vieta = Convert.ToInt32(Console.ReadLine()) - 1; //par ciparu parvers

if (rinda >= 0 && rinda < vietas.Length && vieta >= 0 && vieta < vietas[rinda].Length) //parbauda vai derigi masivam
{
if (vietas[rinda][vieta] == 0)
{
vietas[rinda][vieta] = 1;
rezervacijas.Add($"Rinda {rinda + 1}, Vieta {vieta + 1}");
Console.WriteLine("Rezervacija veiksmiga");
}
else
{
Console.WriteLine("Sita vieta jau ir rezerveta");
}
}
else
{
Console.WriteLine("Nepareiza ievade");
}
}

static void ApstradatIzveli(int[][] vietas, List<string> rezervacijas)
{
Console.WriteLine("Izveleties darbibu:");
Console.WriteLine("1 - Paradit zali");
Console.WriteLine("2 - Rezervet vietu");
Console.WriteLine("3 - Paradit rezervaciju sarakstu");
Console.WriteLine("4 - Iziet");

string izvele = Console.ReadLine();

switch (izvele)
{
case "1":
ParaditZali(vietas);
break;
case "2":
RezervetVietu(vietas, rezervacijas);
break;
case "3":
Console.WriteLine("Rezervaciju saraksts:");
foreach (var rezervacija in rezervacijas)
{
Console.WriteLine(rezervacija);
}
break;
case "4":
Console.WriteLine("Paldies ka lietojāt darbu");
Environment.Exit(0);
break;
default:
Console.WriteLine("Nepareiza izvele");
break;
}

Console.WriteLine("Nospiediet jebkuru taustinu lai turpinatu");
Console.ReadKey();
}
}