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 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 AddNakladNovehoAutaB_Click(object sender, EventArgs e) { if (!ValidaceVstupuVTextBoxuProNedostupnost(DatumNakladuDTP.Value, CasNakladuTB.Text, true)) { return; } 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"); } 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; } 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); 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; } NakladyAuta novyNaklad = new NakladyAuta(CisloFakturyTB.Text, PopisNakladuTB.Text, DatumNakladuDTP.Value, TimeSpan.Parse(CasovaNarocnostTB.Text), cena); listNakladuNovehoAuta.Add(novyNaklad); string reformatovanyNaklad = $"{CisloFakturyTB.Text}|{PopisNakladuTB.Text}|{datumACas.ToString("dd.MM.yyyy HH:mm")}|{TimeSpan.Parse(CasovaNarocnostTB.Text).ToString()}|{cena}"; NakladyLB.Items.Add(reformatovanyNaklad); NakladyLB.Items.Add(""); }