/// <summary> /// Když je kliknuto pravým na popisek události, tak se otevře nabídka /// </summary> private void contextMenuStrip_Opening(object sender, System.ComponentModel.CancelEventArgs e) { udalost = ((ContextMenuStrip)sender).SourceControl.Tag.ToString(); // Získáme z nabídky na co bylo kliknuto a z toho ID události, které to přísluší if (udalost == "-1") // Pokud to je jen popisek pro nula položek, tak zrušíme zobrazení nabídky { e.Cancel = true; return; } Databaze db = new Databaze(); db.Dotaz("SELECT Typ FROM udalosti WHERE ID=" + udalost + ";"); // Zjistíme typ události, na kterou bylo kliknuto while (db.DalsiVysledek()) { typ = db.DejVysledekInt("Typ"); if (typ != (int)Obecne.UdalostiTypy.narozeniny) // Pokud to nebyly narozeniny, tak je zobrazeno možnost posunout to o rok a o hodinu, jinak je neaktivní (protože narozeniny jsou uloženy, že se staly v roce 4 a takto by odešli do roku 5) a s hodinama taky nechceme hýbat { this.toolStripMenuItemPosunoutUdalostORok.Enabled = true; this.toolStripMenuItemPosunoutUdalostOHodinu.Enabled = true; } else { this.toolStripMenuItemPosunoutUdalostORok.Enabled = false; this.toolStripMenuItemPosunoutUdalostOHodinu.Enabled = false; } } db.Close(); }
/// <summary> /// Pokud byla v nabídce vybrána možnost smazat událost, tak se smaže a bude provedeno znovunačtení událostí, případně svátků /// </summary> private void toolStripMenuItemSmazatUdalost_Click(object sender, EventArgs e) { Databaze db = new Databaze(); db.Dotaz("SELECT Nadpis FROM udalosti WHERE ID=" + udalost + ";"); // Vytáhneme název události string nadpis = ""; while (db.DalsiVysledek()) { nadpis = db.DejVysledekString("Nadpis"); } db.Dotaz("SELECT COUNT(*) AS Pocet FROM udalosti WHERE Nadpis='" + nadpis + "';"); // Spočítáme kolik událsotí sdílí tento název while (db.DalsiVysledek()) { if (db.DejVysledekInt("Pocet") < 2) // Pokud méně než dva, tak název odstraníme z kolekce našeptávače { Obecne.PametNadpis.Remove(nadpis); } } db.Dotaz("DELETE FROM udalosti WHERE ID=" + udalost + ";"); // Smažeme událost z databáze db.Close(); Obecne.OnZmenaVUdalostech(); // Informujeme o změně v událostech if (typ == (int)Obecne.UdalostiTypy.narozeniny) // V případě narozenin informujeme i o změně narozenin { Obecne.OnZmenaVeSvatcich(); } }
public static void ConnectDB() { const string sqlCon = @"data source = localhost\SQLEXPRESS; initial catalog = master; integrated security = SSPI"; var db = new Databaze(sqlCon); DbPersist.Instance.Db = db; }
/// <summary> /// Zjistí, kdy se má zobrazit další upozornění, pokud je to déle než za pět minut, tak za dalších 5 minut bude provedena kontrola, aby nedocházelo k případným zpožděním /// </summary> private void DalsiAlarm() { int dalsi = 300000; Databaze db = new Databaze(); db.Dotaz("SELECT Upozorneni FROM udalosti WHERE (Upozorneno=" + ((int)Obecne.UpozorneniTypy.upozornitAutomaticky).ToString() + " OR Upozorneno=" + ((int)Obecne.UpozorneniTypy.upozornitVlastni).ToString() + ") AND (Splneno=0 OR Typ=" + ((int)Obecne.UdalostiTypy.narozeniny).ToString() + ") ORDER BY Upozorneni ASC LIMIT 1;"); // Vytáhne události, na které se má upozornit a nebylo na ně už upozorněno a také nejsou ještě splněny (splněnost v případě narozenin je ignorována, protože je využívána k přechodu na další rok) DateTime kdy; while (db.DalsiVysledek()) { DateTime nyni = DateTime.Now; kdy = db.DejVysledekDatumCas("Upozorneni"); // Kdy má být další upozornění if (kdy >= nyni.AddMinutes(5)) // Pokud je další upozornění za víc než 5 minut, tak další kontrola bude za 5 minut, prevence před zpožděním při velkém časovém rozdílu { dalsi = 300000; } else if (kdy <= nyni) // Pokud už upozornění mělo být, tak další kontrola bude za sekundu, aby nedošlo k přehlcení { dalsi = 1000; } else { dalsi = ((int)(kdy - nyni).TotalSeconds) * 1000; // Spočítáme si, za jak dlouho s emá upozornit na událost } } if (dalsi <= 0) // Kdyby náhodou byl rozdíl časů menší než sekunda, tak další kontrola je až za sekundu (ochrana před přehlcením) { dalsi = 1000; } db.Close(); this.Interval = dalsi; }
/// <summary> /// Způsobí uložení změn a zavře okno /// </summary> private void buttonUložit_Click(object sender, EventArgs e) { Databaze db = new Databaze(); if (zmenyDnu.Count > 0) // Jsou nějaké změny ve významných dnech, pokud ano, tak je prostupně projdeme a uložíme do databáze { foreach (int i in zmenyDnu) { db.Dotaz("UPDATE vyznamne_dny SET Upozornit=" + JeZaskrtnuto(i, checkedListBoxVyznamneDny) + " WHERE Datum='" + ZiskejDatum(checkedListBoxVyznamneDny.Items[i].ToString()) + "'"); } } if (zmenySvatku.Count > 0) // Jsou nějaké změny ve svátcích, pokud ano, tak je prostupně projdeme a uložíme do databáze { foreach (int i in zmenySvatku) { db.Dotaz("UPDATE svatky SET Upozornit=" + JeZaskrtnuto(i, checkedListBoxSvatky) + " WHERE Datum='" + ZiskejDatum(checkedListBoxSvatky.Items[i].ToString()) + "'"); } } db.Close(); if (zmenyDnu.Count > 0 || zmenySvatku.Count > 0) // Pokud došlo k nějaké změně, tak je třeba aktualizovat svátky { Obecne.OnZmenaVeSvatcich(); } this.Close(); }
private void Button_Clicked(object sender, EventArgs e) { PristupTabulka pristup = new PristupTabulka(); Databaze db = new Databaze(pristup.DataAccess()); Predmet predmet = new Predmet(); if (db.GetAllPredmety().Count() == 0 & !string.IsNullOrWhiteSpace(nazevinput.Text)) { predmet.Nazev = nazevinput.Text; db.SaveItemPredmet(predmet); Navigation.PushAsync(new MainPage()); } else if (db.GetAllPredmety().Count() > 0 & !string.IsNullOrWhiteSpace(nazevinput.Text)) { foreach (Predmet p in db.GetAllPredmety()) { if (p.Nazev != nazevinput.Text) { predmet.Nazev = nazevinput.Text; db.SaveItemPredmet(predmet); Navigation.PushAsync(new MainPage()); } else if (p.Nazev == nazevinput.Text) { DisplayAlert("Chyba", "Tento předmět již existuje", "OK"); } } } else if (string.IsNullOrWhiteSpace(nazevinput.Text)) { DisplayAlert("Chyba", "Název nesmí být prázdný", "OK"); } }
public MainPage() { InitializeComponent(); PristupTabulka pristup = new PristupTabulka(); Databaze db = new Databaze(pristup.DataAccess()); foreach (Predmet p in db.GetAllPredmety()) { Label label = new Label(); label.Text = p.Nazev; label.FontSize = 18; layout.Children.Add(label); foreach (Znamka z in db.GetZnamky(p.Id)) { Label label2 = new Label(); label2.Text = z.znamka.ToString() + " - Váha: " + z.Vaha.ToString(); layout.Children.Add(label2); if (deleteZnamka) { Button button = new Button(); button.Clicked += Button_Clicked5; button.ClassId = z.ID.ToString(); layout.Children.Add(button); } } Label label3 = new Label(); label3.Text = "Průměr: " + db.prumerPredmetu(p.Id).ToString(); layout.Children.Add(label3); BoxView boxview = new BoxView(); boxview.Color = Color.Black; boxview.WidthRequest = 100; boxview.HeightRequest = 1; layout.Children.Add(boxview); } }
private void Button_Clicked(object sender, EventArgs e) { PristupTabulka pristup = new PristupTabulka(); Databaze db = new Databaze(pristup.DataAccess()); int value; int value2; if (int.TryParse(znamkainput.Text, out value) & int.TryParse(vahainput.Text, out value2)) { foreach (Predmet p in db.GetAllPredmety()) { if (p.Nazev == (string)predmetinput.SelectedItem) { Znamka znamka = new Znamka(); znamka.znamka = value; znamka.Vaha = value2; znamka.PredmetID = p.Id; p.Znamky = new List <Znamka> { znamka }; db.SaveItemZnamka(znamka); Navigation.PushAsync(new MainPage()); } } } }
/// <summary> /// Zpracuje databázové změny při aktualizaci /// </summary> private void webBrowserDatabaze_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { String zdrojak = PrectiZdrojak(webBrowserDatabaze); // Získáme data, tedy dotazy pro aktualizaci databáze progressBarKonfigurace.PerformStep(); const String KONTROLNI_ZACATEK = "DATABAZE-ZACATEK-OK"; const String KONTROLNI_KONEC = "DATABAZE-KONEC-OK"; if (zdrojak.Substring(0, KONTROLNI_ZACATEK.Length) != KONTROLNI_ZACATEK || zdrojak.Substring(zdrojak.Length - KONTROLNI_KONEC.Length) != KONTROLNI_KONEC) // Kontrola, zda se stáhly { this.DialogResult = DialogResult.Abort; this.Close(); return; } zdrojak = zdrojak.Remove(zdrojak.Length - KONTROLNI_KONEC.Length); // Ořeže kontrolní řetězec na konci zdrojak = zdrojak.Substring(KONTROLNI_ZACATEK.Length); // Ořeže kontrolní řetězec na začátku if (zdrojak != "") // Pokud jsou nějaké dotazy, tak se provedou { Databaze db = new Databaze(); db.Dotaz(zdrojak); } // Uklidíme po sobě webBrowserDatabaze.DocumentCompleted -= webBrowserDatabaze_DocumentCompleted; webBrowserDatabaze.Dispose(); webBrowserDatabaze = null; progressBarKonfigurace.PerformStep(); HotovoAkce(); // Zkontrolujeme, zda už je vše hotové }
/// <summary> /// Constructor /// </summary> public PredmetManager(Databaze databaze) { Predmety = databaze.Predmety; Databaze = databaze; // testovací //LoadDataFromCSV(); //PrintCSV(); }
/// <summary> /// Constructor /// </summary> public VyucujiciManager(Databaze databaze) { Vyucujici = databaze.Vyucujici; Databaze = databaze; // testovací //LoadDataFromCSV(); //PrintCSV(); }
/// <summary> /// Constructor /// </summary> public StudijniOborManager(Databaze databaze) { StudijniObory = databaze.StudijniObory; Databaze = databaze; // testovací //LoadDataFromCSV(); //PrintCSV(); }
/// <summary> /// Constructor /// </summary> public StudentManager(Databaze databaze) { Studenti = databaze.Studenti; Databaze = databaze; // testovací //LoadDataFromCSV(); //PrintCSV(); }
/// <summary> /// Načte data pro událost a vyplní jimi jednotlivé prvky /// </summary> private void NactiData() { Databaze db = new Databaze(); db.Dotaz("SELECT * FROM udalosti WHERE ID=" + Udalost.ToString() + ";"); // Vytáhneme info z databáze while (db.DalsiVysledek()) { comboBoxTyp.SelectedIndex = db.DejVysledekInt("Typ"); // ComboBox dostane typ události Typ = comboBoxTyp.SelectedIndex; // Také ten typ uložíme do sledování typu, abychom pak věděli, zda to byli narozeniny nebo ne textBoxNadpis.Text = db.DejVysledekString("Nadpis"); // Nastavíme nadpis Nadpis = textBoxNadpis.Text; // Nadpis si zapamatujeme pro případné odstranění z kolekce textBoxZprava.Text = db.DejVysledekString("Zprava"); // Popis události nastavíme DateTime datum = db.DejVysledekDatumCas("Kdy"); // Nastavíme kdy (den, měsíc a rok) se koná událost textBoxCasHodina.Text = datum.Hour.ToString(); // Nastavíme hodinu konání události textBoxCasMinuta.Text = datum.ToString("mm"); // Nastavíme minutu konání události if (Typ == (int)Obecne.UdalostiTypy.narozeniny) // Pokud to jsou narozeniny, tak musíme speciálně zobrazit datum konání, aby to zobrazilo nejbližší budoucí narozeniny { if (datum.Month > DateTime.Now.Month || (datum.Month == DateTime.Now.Month && datum.Day >= DateTime.Now.Day)) // Pokud nás ty narozeniny čekají ještě letos, tak rok nastavíme na letošek { datum = datum.AddYears(DateTime.Now.Year - datum.Year); } else // Pokud nás narozeniny čekají příští rok, tak se nastaví příští rok { datum = datum.AddYears(1 + DateTime.Now.Year - datum.Year); } } DateTime upozorneni; // Zde bude uloženo, kdy má proběhnout upozornění if (db.DejVysledekInt("Upozorneno") == (int)Obecne.UpozorneniTypy.neupozornit) // Pokud se neupozorňuje, tak se vybere možnost neupozorňovat a upozornění se nastaví na automatické upozornění (jen aby tam něco bylo) { radioButtonNe.Checked = true; upozorneni = datum; upozorneni = upozorneni.AddMinutes(Nastaveni.UpozorneniDopredu * -1); } else if (db.DejVysledekInt("Upozorneno") == (int)Obecne.UpozorneniTypy.upozornitVlastni || db.DejVysledekInt("Upozorneno") == (int)Obecne.UpozorneniTypy.upozornenoVlastni) // Pokud je nastavené vlastní upozornění, tak se vybere možnost Vlastní a upozornění se nastaví na to, které bylo nastavené u události { radioButtonVlastni.Checked = true; upozorneni = db.DejVysledekDatumCas("Upozorneni"); } else // Pokud je upozornění automatické (případně už upozorněné), tak se nastaví jako automatické upozornění, upozornění se odvodí automaticky z doby konání události { radioButtonAno.Checked = true; upozorneni = datum; upozorneni = upozorneni.AddMinutes(Nastaveni.UpozorneniDopredu * -1); } datum = datum.AddHours(datum.Hour * -1); // Vynulujeme hodinu v datu, abychom začínali od nuly (by se to jinak přičítalo k původnímu času, takže když by byl původní 10 hodin, dáme novej 11, tak by výsledek byl 21) datum = datum.AddMinutes(datum.Minute * -1); // To samé jako s hodinama, jen to je s minutama monthCalendar.SetSelectionRange(datum, datum); // Nastavíme, aby byl vybrán den konání události puvodniDatumUdalosti = datum; // Nastavíme původní datum textBoxCasHodinaUpozorneni.Text = upozorneni.Hour.ToString(); // Získá se hodina upozornění textBoxCasMinutaUpozorneni.Text = upozorneni.ToString("mm"); // Získá se minuta upozornění upozorneni = upozorneni.AddHours(upozorneni.Hour * -1); // Upozornění opět vynulujeme, aby nám neovlivňovalo počet hodin, protože se změna budou přičítat, takže je potřeba mít nulu upozorneni = upozorneni.AddMinutes(upozorneni.Minute * -1); // Stejné jako pro hodiny, jen to je pro minuty dateTimePickerUpozorneni.Value = upozorneni; // Získané upozornění se nastaví do dateTimePickeru comboBoxSplneno.SelectedIndex = db.DejVysledekInt("Splneno"); // Nastaví se, zda byla událost splněna nebo ne } db.Close(); }
public OdebratPredmet() { InitializeComponent(); Databaze db = new Databaze(pristup.DataAccess()); foreach (Predmet p in db.GetAllPredmety()) { predmetinput.Items.Add(p.Nazev); } }
public ActionResult Contact() { ViewBag.Message = "Your contact page."; Databaze databaze = new Databaze(); databaze.Main(); return(View(databaze)); }
/// <summary> /// Při kliknutí na hotovo, kdy se té události nastaví hotovo, umlčí alarm a zavře upozornění /// </summary> private void buttonHotovo_Click(object sender, EventArgs e) { Prehravac.Stop(); if (Typ != (int)Obecne.UdalostiTypy.narozeniny) { Databaze db = new Databaze(); db.Dotaz("UPDATE udalosti SET Splneno=1 WHERE ID=" + Udalost.ToString() + ";"); db.Close(); } this.Close(); }
public PridatZnamku() { InitializeComponent(); PristupTabulka pristup = new PristupTabulka(); Databaze db = new Databaze(pristup.DataAccess()); foreach (Predmet p in db.GetAllPredmety()) { predmetinput.Items.Add(p.Nazev); } }
private async void Button_Clicked5(object sender, EventArgs e) { PristupTabulka pristup = new PristupTabulka(); Databaze db = new Databaze(pristup.DataAccess()); var button = (Button)sender; var classId = button.ClassId; Znamka znamka = db.GetItemZnamka(int.Parse(button.ClassId)); var answer = await DisplayAlert("Potvrzení smazání známky", "Chcete opravdu smazat " + znamka.znamka + " z předmětu " + db.GetItemPredmet(znamka.PredmetID) + "?", "Ano", "Ne"); if (answer.Equals("Ano")) { db.DeleteItemZnamka(db.GetItemZnamka(int.Parse(classId))); deleteZnamka = false; Page_Reload(); } }
/// <summary> /// Zjistí maximální stránku, která může být a tu vrátí /// </summary> /// <returns>Vrátí maximální možnou stránku</returns> private int MaxStranka() { int stranka = -1; // Pro pířpad, že by bylo nula položek do tabulky Databaze db = new Databaze(); db.Dotaz(dotazNaPocet); // Zjistíme kolik je položek while (db.DalsiVysledek()) { if (db.DejVysledekInt("Pocet") != 0) // Když je alespoň jedna, tak spočítáme na kolik stránek to bude { stranka = (db.DejVysledekInt("Pocet") - 1) / tableLayoutPanel.RowCount; } } db.Close(); return(stranka); // Vrátíme počet stránek }
public static void Debug() { PristupTabulka pristup = new PristupTabulka(); Databaze databaze = new Databaze(pristup.DataAccess()); Znamka znamka = new Znamka(); znamka.znamka = 5; znamka.Vaha = 60; databaze.SaveItemZnamka(znamka); Predmet vah = new Predmet(); vah.Nazev = "VAH"; vah.Znamky = new List <Znamka> { znamka }; databaze.SaveItemPredmet(vah); Znamka znamka2 = new Znamka(); znamka2.znamka = 5; znamka2.Vaha = 30; znamka2.PredmetID = 1; databaze.SaveItemZnamka(znamka2); Predmet psi = new Predmet(); psi.Nazev = "PSI"; psi.Znamky = new List <Znamka> { znamka2 }; databaze.SaveItemPredmet(psi); List <Znamka> list = databaze.GetZnamky(0); foreach (Znamka z in list) { Console.WriteLine(); Console.WriteLine("ID - " + z.ID); Console.WriteLine("Známka - " + z.znamka); Console.WriteLine("Váha - " + z.Vaha); Console.WriteLine(); //databaze.DeleteItem(z); } Console.WriteLine(databaze.prumerPredmetu(0)); }
/// <summary> /// Při stisku tlačítka uložit provedeme uložení nastavení /// </summary> private void buttonUlozit_Click(object sender, EventArgs e) { if (Problemu == 0) // Pokud je vše OK, tak pokračujeme { int upozornit = Convert.ToInt32(textBoxMinuty.Text) + Convert.ToInt32(textBoxHodiny.Text) * 60 + Convert.ToInt32(textBoxDny.Text) * 1440; // Spočítáme kolik minut to je to automatické upozornění dopředu bool spousteni = true; if (comboBoxSpousteni.SelectedIndex == 1) // Pokud nebylo vybráno automatické spouštění při startu počítače, tak se vypne spouštění, jinak se ponechá zaplé { spousteni = false; } bool vypisy = true; if (comboBoxChyby.SelectedIndex == 1) // Pokud nebyly vybrány podrobné popisy vyjimek, tak se nebudou zobrazovat, jinak se ponechá jejich zobrazování { vypisy = false; } Databaze db = new Databaze(textBoxServer.Text, textBoxUzivatel.Text, textBoxHeslo.Text, textBoxDatabaze.Text); // Testovací připojení k databázi s nově nastavenými hodnotami db.Dotaz("SHOW TABLES"); // Slouží jako testovací příkaz zda bylo vše dobře zadáno (pokud totiž by bylo prázdné uživatelské jméno a heslo, tak nás to nechá připojit, ale nefungují dotazy) if (db.DejVysledku() == -1) // Připojení se nezdařilo { return; } db.Dotaz(Ukolnik.Properties.Resources.create); // Vytvoříme tabulky (pouze pokud už nebyly vytvořeny) db.Dotaz("SELECT COUNT(*) AS Pocet FROM svatky;"); // Zkontrolujeme, zda tabulka se svátky není prázdná, pokud je, tak ji naplníme while (db.DalsiVysledek()) { if (db.DejVysledekInt("Pocet") == 0) { db.Dotaz(Ukolnik.Properties.Resources.svatky); } } db.Dotaz("SELECT COUNT(*) AS Pocet FROM vyznamne_dny;"); // Zkontrolujeme, zda tabulka s významnými dny není prázdná, pokud je, tak ji naplníme while (db.DalsiVysledek()) { if (db.DejVysledekInt("Pocet") == 0) { db.Dotaz(Ukolnik.Properties.Resources.vyznamne_dny); } } Nastaveni.UpravNastaveni(textBoxServer.Text, textBoxUzivatel.Text, textBoxHeslo.Text, textBoxDatabaze.Text, spousteni, upozornit, vypisy); // Když vše dobře proběhlo, tak si nové připojovací údaje uložíme interně Nastaveni.UlozNastaveni(); // A taky do konfiguráku se to uloží Nastaveni.OnZmenaPripojeni(); // Vyvoláme nucenou změnu připojení u všech již otevřených spojeních s databází Chyba = false; // Chyba byla zažehnána DialogResult = System.Windows.Forms.DialogResult.Yes; // Signalizace úspěchu db.Close(); // Zvařeme spojení s databází } }
/// <summary> /// Pokud bylo kliknuto na tlačítko Smazat událost, tak se provede její smazání a zavření okna /// </summary> private void buttonSmazat_Click(object sender, EventArgs e) { alarm.Vypnout(); // Vypne se alarm na upozornění Databaze db = new Databaze(); db.Dotaz("SELECT COUNT(*) AS Pocet FROM udalosti WHERE Nadpis='" + Nadpis + "';"); // Získá se z databáze počet událsotí s daným nadpisem while (db.DalsiVysledek()) { if (db.DejVysledekInt("Pocet") < 2) // Pokud byla jediná, tak se nadpis vymaže z kolekce { Obecne.PametNadpis.Remove(Nadpis); } } db.Dotaz("DELETE FROM udalosti WHERE ID=" + Udalost.ToString() + ";"); // Smažeme událost db.Close(); this.Close(); // Zavřeme okno, má nastavený dialog result na Yes, takže dojde k aktualizaci událostí (případně i svátků v případě narozenin) }
/// <summary> /// Obsluha kliknutí, kdy bude splněno nebo nesplněna událost, ke které patří tento PictureBox /// </summary> private void PictureBoxSplneno_Click(object sender, EventArgs e) { Databaze db = new Databaze(); string splneno; if ((string)((PictureBox)sender).Image.Tag == "fajfka") // Pokud tam byl obrázek fajfky, tak daná událost byla splněna kliknutím, v opačném případě byla nesplněna { splneno = "1"; } else { splneno = "0"; } db.Dotaz("UPDATE udalosti SET Splneno=" + splneno + " WHERE id=" + ((PictureBox)sender).Tag + ";"); // Provedeme změnu splněnosti pro danou událost db.Close(); Obecne.OnZmenaVUdalostech(); // Je potřeba znovu načíst události }
/// <summary> /// Jakmile je upozornění načteno, tak se zapne alarm a pro danou událost se nastaví, že na ni bylo upozorněno, v případě narozenin se upozornění posune o rok /// </summary> private void Upozorneni_Load(object sender, EventArgs e) { Prehravac.PlayLooping(); Databaze db = new Databaze(); if (Typ != (int)Obecne.UdalostiTypy.narozeniny) { db.Dotaz("UPDATE udalosti SET Upozorneno=" + ((int)Obecne.UpozorneniTypy.upozornenoAutomaticky).ToString() + " WHERE ID=" + Udalost.ToString() + " AND Upozorneno=" + ((int)Obecne.UpozorneniTypy.upozornitAutomaticky).ToString() + ";"); db.Dotaz("UPDATE udalosti SET Upozorneno=" + ((int)Obecne.UpozorneniTypy.upozornenoVlastni).ToString() + " WHERE ID=" + Udalost.ToString() + " AND Upozorneno=" + ((int)Obecne.UpozorneniTypy.upozornitVlastni).ToString() + ";"); } else { db.Dotaz("UPDATE udalosti SET Upozorneni=DATE_ADD(Upozorneni, INTERVAL 1 YEAR) WHERE ID=" + Udalost.ToString() + ";"); comboBoxPosun.Items.Remove("Hodinu"); comboBoxPosun.Items.Remove("Rok"); } db.Close(); }
/// <summary> /// Provede zobrazení upozornění na události, kde už je čas /// </summary> private void ZobrazAlarmy() { lock (this) // Po probuzení ze spánku by mohlo být trošku víc alarmů { Databaze db = new Databaze(); db.Dotaz("SELECT ID FROM udalosti WHERE (Upozorneno=" + ((int)Obecne.UpozorneniTypy.upozornitAutomaticky).ToString() + " OR Upozorneno=" + ((int)Obecne.UpozorneniTypy.upozornitVlastni).ToString() + ") AND Upozorneni<=NOW() AND (Splneno=0 OR Typ=" + ((int)Obecne.UdalostiTypy.narozeniny).ToString() + ") ORDER BY Upozorneni ASC;"); // Vytáhne události, na které se má upozornit a nebylo na ně už upozorněno a také nejsou ještě splněny (splněnost v případě narozenin je ignorována, protože je využívána k přechodu na další rok), tahá je v pořadí od nejstaršího dle doby upozornění while (db.DalsiVysledek()) { Obecne.IkonaStav(false); // Aby se nedal obejít dialog ikonkou Upozorneni alarm = new Upozorneni(db.DejVysledekInt("ID")); // Předá se upozorněnímu ID události if (DialogResult.Yes == alarm.ShowDialog()) // Pokud bylo při upozornění kliknuto na splněno, tak dojde k aktualizaci událostí { Obecne.OnZmenaVUdalostech(); } Obecne.IkonaStav(true); } db.Close(); } }
private async void Button_Clicked(object sender, EventArgs e) { var answer = await DisplayAlert("Potvrzení smazání předmětu", "Chcete opravdu smazat tento" + predmetinput.SelectedItem.ToString(), "Ano", "Ne"); if (answer.Equals("Ano")) { Databaze db = new Databaze(pristup.DataAccess()); foreach (Predmet p in db.GetAllPredmety()) { if (p.Nazev.Equals((string)predmetinput.SelectedItem)) { db.DeleteItemPredmet(p); foreach (Znamka z in db.GetZnamky(p.Id)) { db.DeleteItemZnamka(z); } await Navigation.PushAsync(new MainPage()); } } } }
/// <summary> /// Načte komponenty a provede základní nastavení /// </summary> public Svatky() { InitializeComponent(); Databaze db = new Databaze(); db.Dotaz("SELECT Upozornit, Den, Datum FROM vyznamne_dny ORDER BY Den;"); // Získá významné dny, které postupně vloží do checkedListBoxu i s tím, zda si je přeje zvýrazňovat while (db.DalsiVysledek()) { checkedListBoxVyznamneDny.Items.Add(db.DejVysledekString("Den") + " (" + db.DejVysledekString("Datum").Replace('-', '.') + ")", Convert.ToBoolean(db.DejVysledekInt("Upozornit"))); } db.Dotaz("SELECT Upozornit, Jmeno, Datum FROM svatky ORDER BY Jmeno;"); // Získá svátky, které postupně vloží do checkedListBoxu i s tím, zda si je přeje zvýrazňovat while (db.DalsiVysledek()) { checkedListBoxSvatky.Items.Add(db.DejVysledekString("Jmeno") + " (" + db.DejVysledekString("Datum").Replace('-', '.') + ")", Convert.ToBoolean(db.DejVysledekInt("Upozornit"))); } db.Close(); NactiNarozeniny(); // Načteme narozeniny checkedListBoxVyznamneDny.ItemCheck += checkedListBoxVyznamneDny_ItemCheck; // Už je třeba sledovat změny checků u významných dnů checkedListBoxSvatky.ItemCheck += checkedListBoxSvatky_ItemCheck; // Už je třeba sledovat změny checků u svátků Obecne.ZmenaVeSvatcich += NactiNarozeniny; // Je potřeba sledovat změny ve svátcích, abychom aktualizovali seznam narozenin }
/// <summary> /// Provede načtení narozenin a zobrazení kolik je komu roků /// </summary> private void NactiNarozeniny() { Obecne.PripravNarozeninyPrehled(); // Připraví narozeniny, aby seděli roky richTextBoxNarozeniny.Text = ""; // Vymažeme dosavadní seznam narozenin Databaze db = new Databaze(); db.Dotaz("SELECT Kdy, Nadpis, Zprava, Splneno FROM udalosti WHERE Typ=" + ((int)Obecne.UdalostiTypy.narozeniny).ToString() + " ORDER BY Nadpis;"); // Získá seznam lidí, kteří maj zadané narozeniny a zobrazí je i kolik jim je while (db.DalsiVysledek()) { richTextBoxNarozeniny.Text += db.DejVysledekString("Nadpis") + " " + db.DejVysledekDatumCas("Kdy").ToString("d.M") + "." + db.DejVysledekString("Zprava") + " (" + (DateTime.Today.Year - db.DejVysledekInt("Zprava") + -1 + db.DejVysledekInt("Splneno") + Convert.ToInt32(DateTime.Today.Day == db.DejVysledekDatumCas("Kdy").Day&& DateTime.Today.Month == db.DejVysledekDatumCas("Kdy").Month)).ToString() + ")\n"; } db.Close(); if (richTextBoxNarozeniny.Text != "") // Pokud je zobrazení narozeniny neprázdné, tak odstraníme koncový nový řádek, jinak napíšeme info o nulovém počtu narozenin { richTextBoxNarozeniny.Text = richTextBoxNarozeniny.Text.Remove(richTextBoxNarozeniny.TextLength - 1); } else { richTextBoxNarozeniny.Text = "Zatím nebyly zadány žádné narozeniny"; } }
/// <summary> /// Uloží aktuální nastavení do souboru /// </summary> /// <param name="priVytvoreni">Nepovinný parametr, který značí, zda bylo uložení vyvoláno při vytvořen, takže pokud bude zde True, tak podrobné vypisování vyjímek nebude a taky se nepřepočítá upozornění na události</param> public static void UlozNastaveni(bool priVytvoreni = false) { string podrobnostiVyjimek; if (priVytvoreni == true) // Při prvním vytvoření (spíše uložení) se nastaví podrobnost vyjímek na false { podrobnostiVyjimek = "False"; PodrobnostiVyjimek = false; } else { podrobnostiVyjimek = PodrobnostiVyjimek.ToString(); } string obsah = string.Format("ver: {0}\nser: {1}\nuzi: {2}\nhes: {3}\ndab: {4}\nspo: {5}\nupo: {6}\npod: {7}\n", Verze, Server, Uzivatel, Heslo, Databaze, Spousteni.ToString(), UpozorneniDopredu.ToString(), podrobnostiVyjimek); // Vytvoření obsahu konfiguráku System.IO.File.WriteAllText(SlozkaNastaveni + SouborNastaveni, obsah); if (Spousteni == true) // Pokud je nastaveno automatické spouštění při startu, tak to vytvoří spoušťák, pokud ne, tak ho to smaže (pokud tedy ten spoušťák existuje) { //VytvorSpoustak(); VytvorRegistry(); } else { Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true).DeleteSubKey(RegistryZaznam, false); /*if (System.IO.File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.Startup) + "\\spoustak_ukolniku.bat") == true) * System.IO.File.Delete(Environment.GetFolderPath(Environment.SpecialFolder.Startup) + "\\spoustak_ukolniku.bat");*/ } Databaze db = new Databaze(); db.Dotaz("UPDATE udalosti SET Upozorneni=Kdy WHERE Upozorneno=" + ((int)Obecne.UpozorneniTypy.upozornitAutomaticky).ToString() + " OR Upozorneno=" + ((int)Obecne.UpozorneniTypy.upozornenoAutomaticky).ToString() + ";"); // Srovnáme upozornění s tím, kdy se bude událost konat (pouze automatické upozornění) db.Dotaz("UPDATE udalosti SET Upozorneni=DATE_ADD(Kdy, INTERVAL (1 + YEAR(NOW()) - YEAR(Kdy)) YEAR) WHERE (Upozorneno=" + ((int)Obecne.UpozorneniTypy.upozornitAutomaticky).ToString() + " OR Upozorneno=" + ((int)Obecne.UpozorneniTypy.upozornenoAutomaticky).ToString() + ") AND Typ=" + ((int)Obecne.UdalostiTypy.narozeniny).ToString() + " AND (MONTH(NOW()) > MONTH(KDY) OR (MONTH(NOW()) = MONTH(KDY) AND DAY(NOW()) > DAY(KDY)));"); // Nastavíme příští upozornění pro narozeniny v případě, že narozeniny již tento rok byly db.Dotaz("UPDATE udalosti SET Upozorneni=DATE_ADD(Kdy, INTERVAL (YEAR(NOW()) - YEAR(Kdy)) YEAR) WHERE (Upozorneno=" + ((int)Obecne.UpozorneniTypy.upozornitAutomaticky).ToString() + " OR Upozorneno=" + ((int)Obecne.UpozorneniTypy.upozornenoAutomaticky).ToString() + ") AND Typ=" + ((int)Obecne.UdalostiTypy.narozeniny).ToString() + " AND (MONTH(NOW()) < MONTH(KDY) OR (MONTH(NOW()) = MONTH(KDY) AND DAY(NOW()) <= DAY(KDY)));"); // Nastavíme přístí upozornění pro narozeniny, které nás ještě v tomto roce čekají db.Dotaz("UPDATE udalosti SET Upozorneni=DATE_ADD(Upozorneni, INTERVAL -" + UpozorneniDopredu.ToString() + " MINUTE) WHERE Upozorneno=" + ((int)Obecne.UpozorneniTypy.upozornitAutomaticky).ToString() + " OR Upozorneno=" + ((int)Obecne.UpozorneniTypy.upozornenoAutomaticky).ToString() + ";"); // Dojde k přepočítání upozornění událostí, které mají automatické upozornění string nejmensiDatum = System.Windows.Forms.DateTimePicker.MinimumDateTime.ToString("yyyy-MM-dd HH:mm:ss"); // Zjistíme nejmenší možné datum pro sběrač data db.Dotaz("UPDATE udalosti SET Upozorneni='" + nejmensiDatum + "' WHERE Upozorneni<'" + nejmensiDatum + "';"); // Pokud je nějaké upozornění menší než to datum, tak ho nastavíme na to nejmenší datum, aby nám sběrač neházel chyby db.Dotaz("UPDATE udalosti SET Upozorneno=" + ((int)Obecne.UpozorneniTypy.upozornitAutomaticky).ToString() + " WHERE Upozorneno=" + ((int)Obecne.UpozorneniTypy.upozornenoAutomaticky).ToString() + " AND Upozorneni>NOW();"); // Pokud díky posunutí je upozornění v budoucnu, tak opět umožníme upozornění db.Close(); }