Exemple #1
0
 /// <summary>
 /// Načte komponenty, získá ID události, připraví text, načte data, vyplní kalendář tučnými daty a ty pak nechá zobrazit, zapně alarm na upozorňování
 /// </summary>
 /// <param name="udalost">ID události, která s ebude upravovat</param>
 public Uprava(int udalost)
 {
     InitializeComponent();
     Udalost   = udalost;
     this.Text = "Úprava události ID: " + Udalost.ToString();
     NactiData();
     Obecne.VyplnKalendar(monthCalendar);
     monthCalendar.UpdateBoldedDates();
     alarm.Zapnout();
 }
Exemple #2
0
 /// <summary>
 /// Načte data pro kalendář, aby se vedělo co je třeba ztučnit, nevinutí si to okamžitou aktualizaci kalendáře, data budou načtena pro budoucí potřebu (například přechod na jiný měsíc)
 /// </summary>
 private void AktualizujKalendar()
 {
     Obecne.VyplnKalendar(monthCalendar, checkBoxSplnenost.Checked);
 }
Exemple #3
0
 /// <summary>
 /// Načte data pro kalendář, aby se vedělo co je třeba ztučnit, provede okamžité zobrazení načtených dat
 /// </summary>
 private void AktualizujKalendarNasilne()
 {
     Obecne.VyplnKalendar(monthCalendar, checkBoxSplnenost.Checked);
     monthCalendar.UpdateBoldedDates();
 }
Exemple #4
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
        }