using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ConsoleApplication11
{
class Program
{
static void Main(string[] args)
{
try
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
ds.Tables.Add(dt);
string lokacija = Directory.GetCurrentDirectory() + @"\test.xml";
dt.Columns.Add("IDTicket", typeof(int));
dt.Columns.Add("RegOznaka", typeof(string));
dt.Columns.Add("dtUlaz", typeof(DateTime));
dt.Columns.Add("dtIzlaz", typeof(DateTime));
int id = 0;
if (File.Exists(lokacija))
{
Console.WriteLine("Load Da(d) Ne(n)");
if ("d" == Console.ReadLine().ToLower())
{
dt.ReadXml(lokacija);
id = Convert.ToInt32(dt.AsEnumerable().Max(row => row["IDTicket"]));
Console.WriteLine("Loadovano");
}
File.Delete(lokacija);
}
Console.Write("Broj parking mesta: ");
int parkingMesta = Convert.ToInt16(Console.ReadLine());
Console.Write("Cena parkinga: ");
int parkingCena = Convert.ToInt16(Console.ReadLine());
Start:
Console.WriteLine();
Console.WriteLine("(1)Ulazak Vozila, (2)Izlaz Vozila, (3)Pregled mesta, (s)Sacuvaj, (x)Izlaz ");
Console.Write("Unesite opciju: ");
string opcija = Console.ReadLine();
Console.WriteLine();
switch (opcija)
{
case "1":
int count1 = 0;
foreach (DataRow row1 in dt.Rows)
{
if (row1["dtIzlaz"].ToString() == "")
{
count1++;
}
}
if (count1 == parkingMesta)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Nemate vise slobodnog mesta na parkingu");
Console.ResetColor();
goto Start;
}
else
{
id++;
int idTicket = id;
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Ticket ID ={0}", idTicket);
Console.ResetColor();
Console.Write("Registarska oznak: ");
string regOznaka = Console.ReadLine();
Console.WriteLine("datum ulaska (format dd.mm.yyyy hh:mm)");
DateTime datumUlaska = Convert.ToDateTime(Console.ReadLine());
dt.Rows.Add(new object[] { idTicket, regOznaka, datumUlaska });
goto Start;
}
break;
case "2":
Console.ForegroundColor = ConsoleColor.Green;
Console.Write("Unesite id ticket-a: ");
int izlazTicket = Convert.ToInt16(Console.ReadLine());
Console.ResetColor();
foreach (DataRow dr in dt.Rows)
{
if (Convert.ToInt16(dr["IDTicket"]) == izlazTicket)
{
Console.WriteLine("datum izlaska (format dd.mm.yyyy hh:mm)");
DateTime datumIzlaza = Convert.ToDateTime(Console.ReadLine());
dr["dtIzlaz"] = datumIzlaza;
TimeSpan span = Convert.ToDateTime(dr["dtIzlaz"]) - Convert.ToDateTime(dr["dtUlaz"]);
int iznos = parkingCena * (int)Math.Ceiling(span.TotalHours);
Console.WriteLine();
Console.WriteLine("Vozilo {2} je bilo na parkingu {0} sata i ukupno treba da plati {1} ", (int)Math.Ceiling(span.TotalHours), iznos, dr["RegOznaka"]);
Console.WriteLine();
}
}
goto Start;
break;
case "3":
int count = 0;
string spisak1 = "";
foreach (DataRow row in dt.Rows)
{
string spisak = row["IDTicket"].ToString() + " - " + row["RegOznaka"].ToString() + ", ";
if (row["dtIzlaz"].ToString() == "")
{
count++;
spisak1 = spisak1 + spisak;
}
}
int preostalo;
Console.Write("Vozila koja su na parkingu: ");
Console.WriteLine(spisak1);
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Zauzetih mesta: " + count);
preostalo = parkingMesta - count;
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Slobodnih mesta: " + preostalo);
Console.ResetColor();
goto Start;
case "x":
Console.WriteLine("Da li zelite da sacuvate? Da(d) Ne(n)");
if ("d" == Console.ReadLine().ToLower())
{
dt.WriteXml(lokacija);
Console.WriteLine("Sacuvano!");
}
Environment.Exit(0);
break;
case "s":
dt.WriteXml(lokacija);
Console.WriteLine("Sacuvano!");
goto Start;
break;
default:
Console.WriteLine("Niste uneli ni jednu od navedenih opcija. ");
Console.WriteLine("Da li zelite da izadjete iz programa? Da(d) Ne(n) ");
if ("d" == Console.ReadLine())
{
Console.WriteLine("Press any key to exit.....");
Console.ReadKey();
Environment.Exit(0);
}
else
{
goto Start;
}
break;
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.ReadLine();
}
}
}
}