コード例 #1
0
        /// <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();
            }
        }
コード例 #2
0
ファイル: PictureBoxSplneno.cs プロジェクト: Sqeee/ukolnik
        /// <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
        }
コード例 #3
0
ファイル: Alarm.cs プロジェクト: Sqeee/ukolnik
 /// <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();
     }
 }
コード例 #4
0
ファイル: PictureBoxUprava.cs プロジェクト: Sqeee/ukolnik
        /// <summary>
        /// Obsluha kliknutí, kdy bude deaktivována ikona a vyvolán dialog úpravy události
        /// </summary>
        private void PictureBoxUprava_Click(object sender, EventArgs e)
        {
            Obecne.IkonaStav(false);                                             // Vypneme ikonu, aby nešlo obejít dialog
            Uprava okno = new Uprava(Convert.ToInt32(((PictureBox)sender).Tag)); // Vytvoříme úpravu události, ke které byl svázán kliknutý PictureBox

            okno.StartPosition = FormStartPosition.Manual;
            int x = this.Parent.Parent.Parent.Location.X + this.Parent.Parent.Location.X + this.Parent.Location.X + this.Location.X; // Vypočítá se X souřadnice pro zobrazení okna
            int y = this.Parent.Parent.Parent.Location.Y + this.Parent.Parent.Location.Y + this.Parent.Location.Y + this.Location.Y; // Vypočítá se Y souřadnice pro zobrazení okna

            okno.Location = Obecne.UmisteniOkna(new System.Drawing.Point(x, y), okno.Size, 0, 0);
            okno.ShowDialog();
            if (okno.DialogResult == DialogResult.Yes) // Pokud bylo něco upraveno, tak je třeba znovunačíst události, pokud to byly narozeniny tak i svátky
            {
                Obecne.OnZmenaVUdalostech();
                if (okno.Typ == ((int)Obecne.UdalostiTypy.narozeniny))
                {
                    Obecne.OnZmenaVeSvatcich();
                }
            }
            Obecne.IkonaStav(true); // Opět zapneme ikonu
        }
コード例 #5
0
        /// <summary>
        /// Obsluha události kliknutí na Uložit ve formuláři pro nové události
        /// </summary>
        private void buttonUlozit_Click(object sender, EventArgs e)
        {
            if (comboBoxTyp.SelectedIndex == -1) // Nic nebylo vybráno? Něco se vybrat musí
            {
                Obecne.ZobrazZpravu("Nevybral jsi typ události!", "Pozor", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (textBoxNadpis.Text == "") // Má ta událost nějaký název? Nějak se to musí přece jmenovat
            {
                Obecne.ZobrazZpravu("Nadpis (nebo jméno) nemůže být prázdný!", "Pozor", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (comboBoxTyp.SelectedIndex == (int)Obecne.UdalostiTypy.narozeniny) // Jsou to narozeniny?
            {
                try
                {
                    int rokNarozeni = Convert.ToInt32(textBoxZprava.Text); // Pokusíme se získat rok narození z textu, přinejhorším vyhodíme vyjimku
                    rokNarozeni        = Math.Abs(rokNarozeni);            // Záp**né roky nebereme
                    textBoxZprava.Text = rokNarozeni.ToString();           // Upravený rok narození vložíme zpátky do Zprávy
                }
                catch                                                      // Pokud se převod nezdařil, tak se zobrazí info o tom
                {
                    Obecne.ZobrazZpravu("Nebyl zadán platný rok narození!", "Pozor", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }
            string nadpis = textBoxNadpis.Text;

            nadpis = Obecne.OdstranProblemoveZnaky(nadpis); // Odstraníme znaky z nadpisu, jen ty které by mohly dělat problémy, případně je nahradíme vhodnějšími
            string zprava = textBoxZprava.Text;

            zprava = Obecne.OdstranProblemoveZnaky(zprava); // Odstraníme znaky z textu, jen ty které by mohly dělat problémy, případně je nahradíme vhodnějšími
            int hodiny;
            int minuty;

            if (comboBoxTyp.SelectedIndex != (int)Obecne.UdalostiTypy.narozeniny)  // Pokud nejsou narozeniny, tak se pokusíme získat čas konání
            {
                try
                {
                    hodiny = Convert.ToInt32(textBoxCasHodina.Text); // Pokusíme se získat z textu hodinu konání
                    hodiny = hodiny % 24;                            // Převedeme ji na normální rozmezí
                }
                catch
                {
                    hodiny = 0; // Když se nám převod nezdařil, tak hodin bude nula
                }
                try
                {
                    minuty = Convert.ToInt32(textBoxCasMinuta.Text); // Pokusíme se získat z textu minutu konání
                    minuty = minuty % 60;                            // Převedeme ji na normální rozmezí
                }
                catch
                {
                    minuty = 0; // Když se nám převod nezdařil, tak minut bude nula
                }
            }
            else // Pro narozeniny bude nula minut a nula hodin
            {
                hodiny = 0;
                minuty = 0;
            }
            if (hodiny < 0) // Hodiny nemohou být záp**né, takže budou nejméně nula
            {
                hodiny = 0;
            }
            if (minuty < 0) // Ani minuty nemohou být záp**né, takže budou také nejméně nula
            {
                minuty = 0;
            }
            monthCalendar.SelectionStart = monthCalendar.SelectionStart.AddHours(hodiny);   // Získané hodiny zaznamenáme do kalendáře
            monthCalendar.SelectionStart = monthCalendar.SelectionStart.AddMinutes(minuty); // Získané minuty zaznamenáme do kalendáře
            DateTime upozorneni;

            if (radioButtonVlastni.Checked == true)                                                                                                                // Pokud si chce sám zvolit dobu upozornění
            {
                upozorneni = new DateTime(dateTimePickerUpozorneni.Value.Year, dateTimePickerUpozorneni.Value.Month, dateTimePickerUpozorneni.Value.Day, 0, 0, 0); // Získáme ji z dateTimePickeru
                try
                {
                    hodiny = Convert.ToInt32(textBoxCasHodinaUpozorneni.Text); // Pokusíme se získat z textu hodiny
                    if (hodiny < 0)                                            // Hodiny nesmějí být záp**né, nejméně nulové musejí být
                    {
                        hodiny = 0;
                    }
                    hodiny = hodiny % 24;                                      // Také by mělý být ve správném rozmezí
                    minuty = Convert.ToInt32(textBoxCasMinutaUpozorneni.Text); // Pokusíme se získat z textu minuty
                    if (minuty < 0)                                            // Minuty nesmějí být záp**né, nejméně nulové musejí být
                    {
                        minuty = 0;
                    }
                    minuty = minuty % 60; // Také by měly být ve správném rozmezí
                }
                catch                     // Když se nějaký převod nepovedl, tak hodiny nastavíme na nula, minuty dle upozornění dopředu (ale záp**né, aby se dobře odečítaly od doby konání), upozornění se bude čerpat z doby konání
                {
                    hodiny     = 0;
                    minuty     = Nastaveni.UpozorneniDopredu * -1;
                    upozorneni = new DateTime(monthCalendar.SelectionStart.Year, monthCalendar.SelectionStart.Month, monthCalendar.SelectionStart.Day, monthCalendar.SelectionStart.Hour, monthCalendar.SelectionStart.Minute, monthCalendar.SelectionStart.Second); // Získáme dobu konání
                }
            }
            else // Pokud chceme automatické upozornění
            {
                upozorneni = new DateTime(monthCalendar.SelectionStart.Year, monthCalendar.SelectionStart.Month, monthCalendar.SelectionStart.Day, monthCalendar.SelectionStart.Hour, monthCalendar.SelectionStart.Minute, monthCalendar.SelectionStart.Second); // Získáme dobu konání
                hodiny     = 0;                                // S hodinami nebudeme hýbat
                minuty     = Nastaveni.UpozorneniDopredu * -1; // Minuty budou mít automatickou hodnotu dle Upozornění dopředu a zápornou pro lepší odečítání
            }
            upozorneni = upozorneni.AddHours(hodiny);          // K době upozornění přidáme hodiny
            upozorneni = upozorneni.AddMinutes(minuty);        // K době upozornění přidáme minuty
            if (upozorneni > monthCalendar.SelectionStart)     // Pokud by doba upozornění byla až po události, tak jí nastavíme automaticky před událost
            {
                upozorneni = new DateTime(monthCalendar.SelectionStart.Year, monthCalendar.SelectionStart.Month, monthCalendar.SelectionStart.Day, monthCalendar.SelectionStart.Hour, monthCalendar.SelectionStart.Minute, monthCalendar.SelectionStart.Second);
                upozorneni = upozorneni.AddMinutes(Nastaveni.UpozorneniDopredu * -1);
            }
            string upozornit;

            if (radioButtonVlastni.Checked == true) // Je zvoleno vlastní upozornění?
            {
                if (upozorneni <= DateTime.Now)     // Pokud už to upozornění mělo proběhnout, tak se nastaví jako proběhlé, jinak jako vlastní neproběhlé
                {
                    upozornit = ((int)Obecne.UpozorneniTypy.upozornenoVlastni).ToString();
                }
                else
                {
                    upozornit = ((int)Obecne.UpozorneniTypy.upozornitVlastni).ToString();
                }
            }
            else if (radioButtonAno.Checked == true) // Je zvoleno automatické upozornění?
            {
                if (upozorneni <= DateTime.Now)      // Pokud už to upozornění mělo proběhnout, tak se nastaví jako proběhlé, jinak jako automatické neproběhlé
                {
                    upozornit = ((int)Obecne.UpozorneniTypy.upozornenoAutomaticky).ToString();
                }
                else
                {
                    upozornit = ((int)Obecne.UpozorneniTypy.upozornitAutomaticky).ToString();
                }
            }
            else // Je zvoleno neupozorňovat? Tak se nastaví neupozorňování
            {
                upozornit = ((int)Obecne.UpozorneniTypy.neupozornit).ToString();
            }
            if (upozorneni.Year < dateTimePickerUpozorneni.MinDate.Year) // Pokud by byla událost na hranici zobrazení dateTimePickeru, tak automatické upozornění by mohlo způsobit, že by při úpravě hlásil neplatnost data dateTimePicker, takže datum dostaneme do požadovaného rozmezí
            {
                upozorneni = upozorneni.AddYears(dateTimePickerUpozorneni.MinDate.Year - upozorneni.Year);
            }
            int navratDoRoku = monthCalendar.SelectionStart.Year;                 // Abychom se vrátili zpátky do správného roku, protože třeba u narozenin skočíme na rok 4

            if (comboBoxTyp.SelectedIndex == (int)Obecne.UdalostiTypy.narozeniny) // Pokud ukládáme narozeniny, tak se nastaví rok 4
            {
                monthCalendar.SelectionStart = monthCalendar.SelectionStart.AddYears(4 - monthCalendar.SelectionStart.Year);
            }
            Databaze db = new Databaze();

            for (DateTime i = monthCalendar.SelectionStart; i <= monthCalendar.SelectionEnd; i = i.AddDays(1), upozorneni = upozorneni.AddDays(1)) // Postupně procházíme jednotlivé dny, které byly vybrány a vkládáme je do databáze
            {
                db.Dotaz("INSERT INTO udalosti VALUES ('NULL', '" + comboBoxTyp.SelectedIndex.ToString() + "', '" + nadpis + "', '" + zprava + "', '" + i.ToString("yyyy-MM-dd HH:mm:ss") + "', '0', '" + upozornit + "', '" + upozorneni.ToString("yyyy-MM-dd HH:mm:ss") + "');");
                if (i == monthCalendar.SelectionStart && checkBoxSouvisla.Checked == true) // Jakmile jsme uložili první den, tak se vypne upozorňování pokud to je souvislá událost
                {
                    i         = i.AddHours(-i.Hour);
                    i         = i.AddMinutes(-i.Minute);
                    i         = i.AddSeconds(-i.Second);
                    upozornit = ((int)Obecne.UpozorneniTypy.neupozornit).ToString();
                }
                if (comboBoxTyp.SelectedIndex == (int)Obecne.UdalostiTypy.narozeniny) // Pokud jsou narozeniny, tak tam není dovoleno ukládat víc dní, přece člověk se narodil jen jednou
                {
                    i = monthCalendar.SelectionEnd;
                }
            }
            db.Close();
            monthCalendar.SelectionStart = monthCalendar.SelectionStart.AddYears(navratDoRoku - monthCalendar.SelectionStart.Year); // Vrátíme se zpátky do původního roku
            monthCalendar.SelectionStart = monthCalendar.SelectionStart.AddMinutes(-monthCalendar.SelectionStart.Minute);           // Vynulujeme minuty
            monthCalendar.SelectionStart = monthCalendar.SelectionStart.AddHours(-monthCalendar.SelectionStart.Hour);               // Vynulujeme hodiny
            Obecne.OnZmenaVUdalostech();                                                                                            // Vyvoláme událost změny v událostech, aby se načetli znovu data
            if (comboBoxTyp.SelectedIndex == (int)Obecne.UdalostiTypy.narozeniny)                                                   // Pokud jsme ukládali narozeniny, tak ty v přehledu spadají i do svátků, takže je potřeba vyvolat událost pro změnu svátků
            {
                Obecne.OnZmenaVeSvatcich();
            }
            Obecne.VyplnKalendar(monthCalendar, checkBoxSplnenost.Checked);
            if (Obecne.PametNadpis.Contains(textBoxNadpis.Text) == false) // Zjistíme zda se uložený nadpis nachází v kolekci nadpisů, pokud ne, tak ho tam přidáme
            {
                Obecne.PametNadpis.Add(textBoxNadpis.Text);
            }
            buttonReset.PerformClick(); // Vše vyresetujeme pomocí tlačítka reset
        }