private void OdstranitUserB_Click(object sender, EventArgs e) { if (GeneratorID.ExistujeID(RemoveUserByIDTB.Text)) { if (RemoveUserByIDTB.Text == idAdmina) { MessageBox.Show("Nemůžete smazat svůj účet - požádejte jiného admina o jeho smazání", "ERROR"); return; } foreach (User u in PromenneProVsechnyForms.UsersList) { if (u.UserID == RemoveUserByIDTB.Text) { if (u.KrestniJmeno == "Odstraneny" && u.Prijmeni == "Uzivatel") { MessageBox.Show("Nelze odstranit již odstraněného uživatele", "ERROR"); return; } u.OdstranitZeSystemu(); MessageBox.Show("Uživatel úspěšně odstraněn ze systému - nyní je veden pod názvem: " + u.Username, "SUCCESS"); ReloadListBoxUseru(); break; } } } else { MessageBox.Show("User s tímto IDem neexistuje - zkuste znovu", "ERROR"); } }
private void AddAutoB_Click(object sender, EventArgs e) { string idNovehoAuta = GeneratorID.VygenerujAutoID(); for (int i = 0; i < listNakladuNovehoAuta.Count; i++) { listNakladuNovehoAuta[i].AutoID = idNovehoAuta; PromenneProVsechnyForms.NakladyList.Add(listNakladuNovehoAuta[i]); } if (!KontrolaTextVstupu.KontrolaUsernameANazvuAut(ZnackaNovehoAutaTB.Text)) { MessageBox.Show("Prosím používejte znaky české abecedy, pomlčky a čísla - jiné znaky jsou ve značce auta zakázány", "ERROR"); } if (!KontrolaTextVstupu.KontrolaUsernameANazvuAut(ModelNovehoAutaTB.Text)) { MessageBox.Show("Prosím používejte znaky české abecedy, pomlčky a čísla - jiné znaky jsou v názvu modelu auta zakázány", "ERROR"); } if (!KontrolaTextVstupu.KontrolaJmen(TypNovehoAutaTB.Text)) { MessageBox.Show("Prosím používejte znaky české abecedy a pomlčky - jiné znaky jsou zakázány v popisu typu auta.", "ERROR"); } double spotrebaD = 0; if (ModelNovehoAutaTB.Text.Length != 0 && ZnackaNovehoAutaTB.Text.Length != 0 && TypNovehoAutaTB.Text.Length != 0) { if (double.TryParse(SpotrebaNovehoAutaTB.Text, out spotrebaD)) { spotrebaD = double.Parse(SpotrebaNovehoAutaTB.Text); if (spotrebaD <= 0) { MessageBox.Show("Spotřeba nesmí být menší nebo rovna než 0", "ERROR"); return; } } else { MessageBox.Show("Spotřeba musí být desetinné číslo", "ERROR"); return; } } else { MessageBox.Show("Model, značka či typ je prázdný - toto nesmí nastat", "ERROR"); return; } Auto noveAuto = new Auto(idNovehoAuta, ZnackaNovehoAutaTB.Text, ModelNovehoAutaTB.Text, TypNovehoAutaTB.Text, spotrebaD, "D", "-", listNakladuNovehoAuta); PromenneProVsechnyForms.AutaList.Add(noveAuto); MessageBox.Show("Auto úspěšně přidáno do systému - pokud chcete můžete zavřít toto okno, přidat další auto, či dokonce otevřít správce nákladů v systému", "SUCCESS"); RefreashListBox(); }
private void NactiNaklady(string id) { if (id.Length == 0) { NakladyLB.Items.Clear(); NakladyLB.Items.Add("Č.Faktury|AutoID|Popis|ČasVytvořeníNákladu|ČasováNáročnost|Cena"); //hlavička NakladyLB.Items.Add(""); foreach (NakladyAuta nA in PromenneProVsechnyForms.NakladyList) { NakladyLB.Items.Add(nA.ToString()); NakladyLB.Items.Add(""); } } else { if (GeneratorID.ExistujeID(id)) { Auto autoKtereHledame = new Auto(); foreach (Auto a in PromenneProVsechnyForms.AutaList) { if (a.AutoID == id) { autoKtereHledame = a; break; } } NakladyLB.Items.Clear(); NakladyLB.Items.Add("Náklady vozidla: " + id); NakladyLB.Items.Add("Č.Faktury|AutoID|Popis|ČasVytvořeníNákladu|ČasováNáročnost|Cena"); //hlavička NakladyLB.Items.Add(""); foreach (NakladyAuta nA in autoKtereHledame.NakladyTohotoAuta) { NakladyLB.Items.Add(nA.ToString()); NakladyLB.Items.Add(""); } } else { MessageBox.Show("Zadané ID neexistuje - buď nechte pole prázdné pro vypsání všech rezervací, nebo napište validní ID", "ERROR"); return; } } }
private void NastavitDostupnostB_Click(object sender, EventArgs e) { if (!GeneratorID.ExistujeID(IDAutaNedostupnehoTB.Text)) { MessageBox.Show("Auto s tímto ID neexistuje", "ERROR"); return; } foreach (Auto a in PromenneProVsechnyForms.AutaList) { if (a.AutoID == IDAutaNedostupnehoTB.Text) { a.NastavitDostupnost(); MessageBox.Show("Vozidlo bylo opět nastaveno na dostupné", "SUCCESS"); RefreashListBox(); break; } } }
private bool LoadVracejiciValiditu(string[] radkySouboru) { if (radkySouboru[0] == "UParker.txt" && radkySouboru[radkySouboru.Length - 1] == "") { int nejdelsiUserID = 6; int indexZacatkuUseru = Array.IndexOf(radkySouboru, "Users:") + 1; int indexKonecUseru = Array.IndexOf(radkySouboru, "", indexZacatkuUseru); if (indexKonecUseru - indexZacatkuUseru >= 1) { for (int i = indexZacatkuUseru; i < indexKonecUseru; i++) { string patternUser = "******"; Regex regex = new Regex(patternUser); if (regex.IsMatch(radkySouboru[i]) == false) { return(false); } else { GroupCollection gc = regex.Match(radkySouboru[i]).Groups; if (GeneratorID.ExistujeID(gc[1].ToString())) { MessageBox.Show("V souboru nalezeno duplictní user ID: " + gc[1], "ERROR"); return(false); } if (gc[6].ToString() == "") { PromenneProVsechnyForms.UsersList.Add(new User(gc[1].ToString(), gc[2].ToString(), gc[3].ToString(), gc[4].ToString(), gc[5].ToString(), bool.Parse(gc[7].ToString()), bool.Parse(gc[8].ToString()), bool.Parse(gc[9].ToString()))); } else //"dd.MM.yyyy HH:mm" { PromenneProVsechnyForms.UsersList.Add(new User(gc[1].ToString(), gc[2].ToString(), gc[3].ToString(), gc[4].ToString(), gc[5].ToString(), DateTime.Parse(gc[6].ToString()), bool.Parse(gc[7].ToString()), bool.Parse(gc[8].ToString()), bool.Parse(gc[9].ToString()))); } if (gc[1].Length - 1 > nejdelsiUserID) { nejdelsiUserID = gc[1].Length - 1; } } } } else { MessageBox.Show("No-User - doporučení: vytvořte defaultní databázi, která obsahuje 1 admin usera", "ERROR"); return(false); } PromenneProVsechnyForms.pocetCiferVID = nejdelsiUserID; int indexZacatkuAut = Array.IndexOf(radkySouboru, "Auta:") + 1; int indexKonecAut = Array.IndexOf(radkySouboru, "", indexZacatkuAut); if (indexKonecAut - indexZacatkuAut >= 1) { for (int i = indexZacatkuAut; i < indexKonecAut; i++) { string patternAut = "^(A\\d*[A-Z]{2})\\|([a-zA-ZěščřžýáíéóúůďťňĎŇŤŠČŘŽÝÁÍÉÚŮ 0-9-]*)\\|([a-zA-ZěščřžýáíéóúůďťňĎŇŤŠČŘŽÝÁÍÉÚŮ 0-9-]*)\\|([a-zA-ZěščřžýáíéóúůďťňĎŇŤŠČŘŽÝÁÍÉÚŮ -]*)\\|(\\d+\\.?\\d*)\\|(MP|D)\\|(DoOdvolani|Odstraneno|-|\\d{1,2}\\.\\d{1,2}\\.\\d\\d\\d\\d \\d\\d:\\d\\d)$"; Regex regex = new Regex(patternAut); if (regex.IsMatch(radkySouboru[i]) == false) { return(false); } else { GroupCollection gc = regex.Match(radkySouboru[i]).Groups; if (GeneratorID.ExistujeID(gc[1].ToString())) { MessageBox.Show("V souboru nalezeno duplictní auto ID: " + gc[1], "ERROR"); return(false); } double spotrebaVDouble = double.Parse(gc[5].Value, System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo); PromenneProVsechnyForms.AutaList.Add(new Auto(gc[1].Value, gc[2].Value, gc[3].Value, gc[4].Value, spotrebaVDouble, gc[6].Value, gc[7].Value)); } } } int indexZacatkuNakladu = Array.IndexOf(radkySouboru, "Naklady:") + 1; int indexKonecNakladu = Array.IndexOf(radkySouboru, "", indexZacatkuNakladu); if (indexKonecNakladu - indexZacatkuNakladu >= 1) { for (int i = indexZacatkuNakladu; i < indexKonecNakladu; i++) { string patternNakladu = "^(.*?)\\|(A\\d*[A-Z]{2})\\|(.*?)\\|(\\d{1,2}\\.\\d{1,2}\\.\\d\\d\\d\\d \\d\\d:\\d\\d)\\|(\\d\\d:\\d\\d:\\d\\d)\\|-?(\\d*(\\.\\d+)?)$"; Regex regex = new Regex(patternNakladu); if (regex.IsMatch(radkySouboru[i]) == false) { return(false); } else { GroupCollection gc = regex.Match(radkySouboru[i]).Groups; decimal cenaVDecimal = decimal.Parse(gc[6].Value, System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo); NakladyAuta naklad = new NakladyAuta(gc[1].Value, gc[2].Value, gc[3].Value, DateTime.Parse(gc[4].Value), TimeSpan.Parse(gc[5].Value), cenaVDecimal); PromenneProVsechnyForms.NakladyList.Add(naklad); if (GeneratorID.ExistujeID(gc[2].Value)) { foreach (Auto a in PromenneProVsechnyForms.AutaList) { if (gc[2].Value == a.AutoID) { a.NakladyTohotoAuta.Add(naklad); break; } } } else { MessageBox.Show("V souboru se vyskytuje náklad vázaný na neexistující ID - náklad je navázan na ID auta: " + gc[2].Value, "ERROR"); return(false); } } } } int indexZacatkuRezervaci = Array.IndexOf(radkySouboru, "Rezervace:") + 1; int indexKonecRezervaci = Array.IndexOf(radkySouboru, "", indexZacatkuRezervaci); if (indexKonecRezervaci - indexZacatkuRezervaci >= 1) { for (int i = indexZacatkuRezervaci; i < indexKonecRezervaci; i++) { string patternRezervace = "^(R\\d*)\\|(U\\d*[A-Z]{2})\\|(\\d{1,2}\\.\\d{1,2}\\.\\d\\d\\d\\d \\d\\d:\\d\\d)\\|(\\d{1,2}\\.\\d{1,2}\\.\\d\\d\\d\\d \\d\\d:\\d\\d)\\|(A\\d*[A-Z]{2})\\|(Proběhlo|Zrušeno - uživatelem|Zrušeno - adminem|Zrušeno - uživatel již neexistuje|Zrušeno - vozidlo odstraněno|Zrušeno - vozidlo mimo provoz|Neproběhlo)$"; Regex regex = new Regex(patternRezervace); if (regex.IsMatch(radkySouboru[i]) == false) { return(false); } else { GroupCollection gc = regex.Match(radkySouboru[i]).Groups; if (GeneratorID.ExistujeID(gc[1].ToString())) { MessageBox.Show("V souboru nalezeno duplictní rezervace ID: " + gc[1], "ERROR"); return(false); } if (!(GeneratorID.ExistujeID(gc[2].Value) && GeneratorID.ExistujeID(gc[5].Value))) { MessageBox.Show("V souboru se vyskytuje rezervace vázaná na neexistující ID - rezervace: " + gc[1].Value, "ERROR"); return(false); } DateTime casOd = DateTime.Parse(gc[3].Value); DateTime casDo = DateTime.Parse(gc[4].Value); if (casDo > casOd) { PromenneProVsechnyForms.RezervaceList.Add(new Rezervace(gc[1].Value, gc[2].Value, casOd, casDo, gc[5].Value, gc[6].Value)); } else { return(false); } } } } } else { MessageBox.Show("Úvod+závěr", "ERROR"); return(false); } return(true); }
private void AddNovyNakladAutaB_Click(object sender, EventArgs e) { if (!GeneratorID.ExistujeID(AutoIDTB.Text)) { MessageBox.Show("Dané auto neexistuje - zvolte validní ID", "ERROR"); return; } ValidaceDatumuACasu(DatumNakladuDTP.Value, CasNakladuTB.Text, true); DateTime datum = DatumNakladuDTP.Value; DateTime cas = DateTime.Parse(CasNakladuTB.Text); DateTime datumACas = new DateTime(datum.Year, datum.Month, datum.Day, cas.Hour, cas.Minute, 00); if (CisloFakturyTB.Text.Length < 0 || CenaNakladuTB.Text.Length < 0 || PopisNakladuTB.Text.Length < 0) { MessageBox.Show("Vstupy nesmí být prázdné - minimálně je potřeba 1 znak", "ERROR"); return; } if (!KontrolaTextVstupu.KontrolaVolnychVstupu(CisloFakturyTB.Text)) { MessageBox.Show("Prosím nepoužívejte znak | v čísle faktury", "ERROR"); } if (!KontrolaTextVstupu.KontrolaVolnychVstupu(PopisNakladuTB.Text)) { MessageBox.Show("Prosím nepoužívejte znak | v popis nákladu", "ERROR"); } decimal cena; if (decimal.TryParse(CenaNakladuTB.Text, out cena)) { cena = decimal.Parse(CenaNakladuTB.Text); } else { MessageBox.Show("Nelze překonvertovat cenu na číslo", "ERROR"); return; } string casovaNarocnostString = CasovaNarocnostTB.Text; if (casovaNarocnostString.Contains(':')) { string[] poleHodinAMinut = casovaNarocnostString.Split(':'); if (poleHodinAMinut.Length == 3) { if (poleHodinAMinut[0].Length == 2 && poleHodinAMinut[1].Length == 2 && poleHodinAMinut[2].Length == 2) { if (int.TryParse(poleHodinAMinut[0], out int i) && int.TryParse(poleHodinAMinut[1], out int y) && int.TryParse(poleHodinAMinut[1], out int z)) { i = int.Parse(poleHodinAMinut[0]); y = int.Parse(poleHodinAMinut[1]); z = int.Parse(poleHodinAMinut[2]); if (i >= 0 && i <= 23 && y >= 0 && y <= 59 && z <= 99) { //correct vstup } else { MessageBox.Show("Časová náročnost nemá správný formát", "ERROR"); return; } } else { MessageBox.Show("Časová náročnost nemá správný formát", "ERROR"); return; } } else { MessageBox.Show("Časová náročnost nemá správný formát", "ERROR"); return; } } else { MessageBox.Show("Časová náročnost nemá správný formát", "ERROR"); return; } } else { MessageBox.Show("Časová náročnost nemá správný formát", "ERROR"); return; } TimeSpan casovaNarocnostTimeSpan = TimeSpan.Parse(casovaNarocnostString); NakladyAuta novyNaklad = new NakladyAuta(CisloFakturyTB.Text, AutoIDTB.Text, PopisNakladuTB.Text, datumACas, casovaNarocnostTimeSpan, cena); PromenneProVsechnyForms.NakladyList.Add(novyNaklad); foreach (Auto a in PromenneProVsechnyForms.AutaList) { if (a.AutoID == AutoIDTB.Text) { a.NakladyTohotoAuta.Add(novyNaklad); MessageBox.Show("Úspěšně byla přidán náklad - pozn.: pro aktualizaci listboxu vypište jeho obsah znovu", "SUCCESS"); break; } } }
private void AddRezervB_Click(object sender, EventArgs e) { DateTime odDatum = OdDatumDTP.Value; DateTime doDatum = DoDatumDTP.Value; if (odDatum.Date < DateTime.Now.Date || doDatum.Date < DateTime.Now.Date) { MessageBox.Show("Nelze rezervovat v minulosti - operace zrušena", "ERROR"); return; } bool dataSeRovnaji = odDatum.Date == doDatum.Date; if (odDatum >= doDatum && !(dataSeRovnaji)) { MessageBox.Show("Datum začátku rezervace je po konci rezervace - operace zrušena", "ERROR"); return; } string odCas = OdCasTB.Text; string doCas = DoCasTB.Text; if (TestFormatuCasu(odCas) == false) { MessageBox.Show("Od čas nemá správný formát (formát: hh:mm - 00-23 : 00-59 - např.: 09:31 nebo 21:00) - operace zrušena", "ERROR"); return; } if (TestFormatuCasu(doCas) == false) { MessageBox.Show("Do čas nemá správný formát (formát: hh:mm - 00-23 : 00-59 - např.: 09:31 nebo 21:00) - operace zrušena", "ERROR"); return; } DateTime casOdDT = DateTime.Parse(odCas); DateTime casDoDT = DateTime.Parse(doCas); if (dataSeRovnaji) { double hodinyOdDouble = casOdDT.Hour + (Convert.ToDouble(casOdDT.Minute) / 60); double hodinyDoDouble = casDoDT.Hour + (Convert.ToDouble(casDoDT.Minute) / 60); if (hodinyOdDouble >= hodinyDoDouble) { MessageBox.Show("Čas od musí být menší než čas do pokud se jedná o rezervace ve stejném dni", "ERROR"); return; } } DateTime finalOd = new DateTime(odDatum.Year, odDatum.Month, odDatum.Day, casOdDT.Hour, casOdDT.Minute, 00); DateTime finalDo = new DateTime(doDatum.Year, doDatum.Month, doDatum.Day, casDoDT.Hour, casDoDT.Minute, 00); if (vybraneVozidlo.JeDostupneVCas(finalOd, finalDo)) { MessageBox.Show("Rezervace proběhla úspěšně! Pokud chcete můžete okno zavřít a překliknout do minulého okna či můžete přidat další rezervaci", "SUCCESS"); string rezervaceID = GeneratorID.VygenerujRezervaceID(); string rezervaterID; if (fromAdmin) { rezervaterID = UserIDTB.Text; if (!GeneratorID.ExistujeID(rezervaterID)) { MessageBox.Show("Uživatel s tímto ID neexistuje - prosím zadejte ID, které již v systému existuje", "ERROR"); return; } } else { rezervaterID = userFormu.UserID; } Rezervace novaRezervace = new Rezervace(rezervaceID, rezervaterID, finalOd, finalDo, vybraneVozidlo.AutoID); PromenneProVsechnyForms.RezervaceList.Add(novaRezervace); } else { MessageBox.Show("Změnili jste čas rezervace, ale nenačetli jste si znovu auta - toto auto v tomto čase není dostupné!", "ERROR"); } }
private void NastavitNedostupnostB_Click(object sender, EventArgs e) { if (!GeneratorID.ExistujeID(IDAutaNedostupnehoTB.Text)) { MessageBox.Show("Auto s tímto ID neexistuje", "ERROR"); return; } if (NedostupneDoOdvolaniCheckB.Checked) { foreach (Auto a in PromenneProVsechnyForms.AutaList) { if (a.AutoID == IDAutaNedostupnehoTB.Text) { a.NastavitNedostupnost(); List <string> userIDList = new List <string>(); foreach (Rezervace r in PromenneProVsechnyForms.RezervaceList) { if (r.IDAuta == a.AutoID && r.Stav == "Neproběhlo") { r.NastavStav("Zrušeno - vozidlo mimo provoz"); if (!userIDList.Contains(r.IDUser)) { userIDList.Add(r.IDUser); } } } foreach (User u in PromenneProVsechnyForms.UsersList) { if (userIDList.Contains(u.UserID)) { u.ZrusenaUzivatelskaRezervaceOdPosledniNavstevy = true; } } MessageBox.Show("Auto mimo provoz do odvolání", "SUCCESS"); RefreashListBox(); return; } } } else { if (!ValidaceVstupuVTextBoxuProNedostupnost(NedostupneDoDatumDTP.Value, NedostupneDoCasuTB.Text, false)) { return; } foreach (Auto a in PromenneProVsechnyForms.AutaList) { if (a.AutoID == IDAutaNedostupnehoTB.Text) { DateTime datum = NedostupneDoDatumDTP.Value; DateTime cas = DateTime.Parse(NedostupneDoCasuTB.Text); DateTime nedostupneDoDatumACas = new DateTime(datum.Year, datum.Month, datum.Day, cas.Hour, cas.Minute, 00); a.NastavitNedostupnost(nedostupneDoDatumACas); List <string> userIDList = new List <string>(); foreach (Rezervace r in PromenneProVsechnyForms.RezervaceList) { if (r.IDAuta == a.AutoID && r.Stav == "Neproběhlo" && r.DatumACasDo < nedostupneDoDatumACas) { r.NastavStav("Zrušeno - vozidlo mimo provoz"); if (!userIDList.Contains(r.IDUser)) { userIDList.Add(r.IDUser); } } } foreach (User u in PromenneProVsechnyForms.UsersList) { if (userIDList.Contains(u.UserID)) { u.ZrusenaUzivatelskaRezervaceOdPosledniNavstevy = true; } } MessageBox.Show("Auto mimo provoz do: " + nedostupneDoDatumACas.ToString("dd.MM.yyyy HH:mm"), "SUCCESS"); RefreashListBox(); return; } } } }