Example #1
0
 /// <summary>
 /// Jakmile se nastavovací okno zavírá, tak se indikuje, že už není zobrazeno a tak se může zobrazit další nastavovací okno v případě potřeby, taky se kontroluje, zda nebylo okno zobrazeno z důvodu chyb, pokud ano, tak dojde k ukončení aplikace
 /// </summary>
 private void NastavovaciOkno_FormClosing(object sender, FormClosingEventArgs e)
 {
     Nastaveni.NastaveniOtevreno = false;
     if (this.DialogResult != System.Windows.Forms.DialogResult.Yes && Chyba == true)
     {
         Nastaveni.NastavStavAplikace((int)Nastaveni.StavyAplikace.koncici);
     }
 }
Example #2
0
 /// <summary>
 /// Zkontroluje, zda už vše bylo provedeno, pokud ano, tak se provede dokončení
 /// </summary>
 private void HotovoAkce()
 {
     if (progressBarKonfigurace.Value == progressBarKonfigurace.Maximum - 1) // Zda je vše provedeno (tedy kromě posledního kroku - uložení aktuální verze)
     {
         Nastaveni.NastavAktualniVerzi();                                    // Získáme aktuální verzi
         Nastaveni.UlozNastaveni();                                          // Uložíme aktuální verzi, aby pak nedocházelo k aktualizaci při dalším spuštění
         progressBarKonfigurace.PerformStep();
         labelStav.Text           = "Hotovo";                                // Označíme stav jako hotovo a povolíme tlačítka
         buttonPokracovat.Enabled = true;
         this.ControlBox          = true;
     }
 }
Example #3
0
        /// <summary>
        ///
        /// </summary>
        private void NainstalujAktualizaci()
        {
            UpdateCheckInfo info = null;

            if (ApplicationDeployment.IsNetworkDeployed)
            {
                ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;

                try
                {
                    info = ad.CheckForDetailedUpdate();
                }
                catch (DeploymentDownloadException exc)
                {
                    Vyjimky.VypisVyjimek("Nepodařilo se stáhnout novou verzi. Zkontroluj připojení k internetu", exc);
                    return;
                }
                catch (InvalidDeploymentException exc)
                {
                    Vyjimky.VypisVyjimek("Nepodařilo se stáhnout novou verzi.", exc);
                    Nastaveni.ZapisChybovySoubor(DateTime.Now.ToString("d.M.yyyy H:mm:ss") + ": Chybně sestavený soubor (deployment). Detaily: " + exc.Message);
                    return;
                }
                catch (InvalidOperationException exc)
                {
                    Vyjimky.VypisVyjimek("Nepodařilo se aktualizovat novou verzi.", exc);
                    Nastaveni.ZapisChybovySoubor(DateTime.Now.ToString("d.M.yyyy H:mm:ss") + ": Nezdařená aktualizace. Detaily: " + exc.Message);
                    return;
                }

                if (info.UpdateAvailable)
                {
                    MessageBox.Show("Byla nalezena aktualizace a nyní bude provedena její instalace.", "Aktualizace k dispozici", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    try
                    {
                        ad.Update();
                        MessageBox.Show("Aplikace byla aktualizována a nyní bude restartována.");
                        Nastaveni.NastavStavAplikace((int)Nastaveni.StavyAplikace.koncici); // Vynucené okamžité ukončení aplikace
                        Application.Restart();
                        this.Close();
                        return;
                    }
                    catch (DeploymentDownloadException exc)
                    {
                        Vyjimky.VypisVyjimek("Nepodařilo se nainstalovat aktualizaci. Zkontorluj si připojení k internetu nebo zkus později", exc);
                        return;
                    }
                }
            }
        }
Example #4
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í
     }
 }
Example #5
0
        static void Main()
        {
            bool prvniOtevreni; // Zda je toto první otevření Úkolníku nebo už je otevřen

            System.Threading.Mutex m = new System.Threading.Mutex(true, "Ukolnik", out prvniOtevreni);
            if (prvniOtevreni == false) // Pokud to není první otevření tak zobrazíme info, získáme proces již běžícího Úkolníku, získáme aktvní okno a to se pokusíme přenést do popředí
            {
                Obecne.ZobrazZpravu("Úkolník je již spuštěn.", "Vícenásobné spuštění není dovoleno", MessageBoxButtons.OK, MessageBoxIcon.Information);
                System.Diagnostics.Process[] procesy = System.Diagnostics.Process.GetProcessesByName("Ukolnik");
                SetForegroundWindow(procesy[0].MainWindowHandle);
                return;
            }
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Nastaveni.NastavStavAplikace((int)Nastaveni.StavyAplikace.bezici); // Úkolník běží normálně
            Nastaveni.NastaveniOtevreno = false;                               // Nastavovací okno nebylo otevřeno
            Application.Run(new Start());                                      // Spustíme startovací okno, kde se provedou nezbytné věci
            if (Nastaveni.StavAplikace == (int)Nastaveni.StavyAplikace.bezici) // Pokud je vše v pořádku, tak se spustí okno s přehledem a po jeho zavření již hlavní okno
            {
                Application.Run(new Prehled(true));
                Application.Run(new HlavniOkno());
            }
        }
Example #6
0
        /// <summary>
        /// Provádí jednotlivé akce a zobrazuje postup
        /// </summary>
        private void Start_Load(object sender, EventArgs e)
        {
            Nastaveni.NastavPodrobnostiVyjimek(true);                           // V tuto chvíli nejsou načteny data z konfiguráku, takže je zapnuto vypisování vyjímek
            if (System.IO.Directory.Exists(Nastaveni.SlozkaNastaveni) == false) // Existuje složka, kde má být uložen konfigurák? Pokud ne, tak se pokusí vytvořit
            {
                try
                {
                    System.IO.Directory.CreateDirectory(Nastaveni.SlozkaNastaveni);
                }
                catch (Exception exc)
                {
                    Vyjimky.VypisVyjimek("Nepodařilo se vytvořit tuto cestu: " + Nastaveni.SlozkaNastaveni, exc);
                    Nastaveni.NastavStavAplikace((int)Nastaveni.StavyAplikace.koncici); // Vynucené okamžité ukončení aplikace
                    this.Close();
                    return;
                }
            }
            if (System.IO.File.Exists(Nastaveni.SlozkaNastaveni + Nastaveni.SouborNastaveni) == false) // Existuje konfigurák? Pokud ne, tak ho vytvořit (v té době je ochrana proti zobrazování chyb), pokud ano, tak ho přečíst
            {
                try
                {
                    Nastaveni.PraveVytvorenKonfigurak = true;
                    Nastaveni.VytvorNastaveni();
                }
                catch (Exception exc)
                {
                    Vyjimky.VypisVyjimek("Nepodařilo se vytvořit konfigurační soubor v této složce: \n" + Nastaveni.SlozkaNastaveni, exc);
                    Nastaveni.NastavStavAplikace((int)Nastaveni.StavyAplikace.koncici); // Vynucené okamžité ukončení aplikace
                    this.Close();
                    return;
                }
            }
            else
            {
                if (Nastaveni.CtiNastaveni() == false)
                {
                    if (DialogResult.Abort == new Aktualizace().ShowDialog()) // Zda nedošlo k chybě při aktualizaci
                    {
                        Obecne.ZobrazZpravu("Nezdařila se konfigurace aplikace po provedení aktualizace, aplikace nemůže dál pokračovat a bude tudíž ukončena. Opětovné spuštění by mělo problém vyřešit. Pokud ne, tak jsou na vině internetové problémy, které snad brzo budou vyřešeny.", "Problém s konfigurací", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        Nastaveni.NastavStavAplikace((int)Nastaveni.StavyAplikace.koncici);
                        this.Close();
                        return;
                    }
                }
            }
            progressBarStart.Value += 1;
            if (Nastaveni.StavAplikace != (int)Nastaveni.StavyAplikace.bezici) // Pokud nastala chyba při čtení konfiguráku
            {
                this.Close();
                return;
            }
            new System.Threading.Thread(Nastaveni.OdesliChybovySoubor).Start(); // Pokusí se odeslat soubor s chybama - má vlastní vlákno, aby nezdržovalo start aplikace
            progressBarStart.Value += 1;
            Databaze db = new Databaze();

            db.Dotaz("UPDATE udalosti SET Splneno=1 WHERE Splneno=0 AND Typ=" + ((int)Obecne.UdalostiTypy.udalost).ToString() + " AND Kdy <= NOW();");       // Staré události automaticky splnění (když se mělo něco udát, tak se to událo)
            progressBarStart.Value += 1;
            alarm.AlarmKontrola();                                                                                                                           // Aktivuje alarm, aby se upozornilo na případné blížící se události
            progressBarStart.Value += 1;
            db.Dotaz("SELECT COUNT(*) as Pocet FROM udalosti WHERE Splneno=0 AND Typ=" + ((int)Obecne.UdalostiTypy.ukol).ToString() + " AND Kdy <= NOW();"); // Získá nesplněné úkoly, který už měly být splněny
            while (db.DalsiVysledek())
            {
                if (db.DejVysledekInt("Pocet") > 0) // Pokud jsou nesplněné úkoly, které měly být splněny, tak se zobrazé dialog s jejich výpisem
                {
                    StareUdalosti okno = new StareUdalosti((int)Obecne.UdalostiTypy.ukol);
                    okno.ShowDialog();
                }
            }
            progressBarStart.Value += 1;
            db.Dotaz("SELECT COUNT(*) as Pocet FROM udalosti WHERE Splneno=0 AND Typ=" + ((int)Obecne.UdalostiTypy.pisemka).ToString() + " AND Kdy <= NOW();"); // Získá nesplněné písemky, který už měly být splněny
            while (db.DalsiVysledek())
            {
                if (db.DejVysledekInt("Pocet") > 0) // Pokud jsou nesplněné písemky, které měly být splněny, tak se zobrazé dialog s jejich výpisem
                {
                    StareUdalosti okno = new StareUdalosti((int)Obecne.UdalostiTypy.pisemka);
                    okno.ShowDialog();
                }
            }
            progressBarStart.Value += 1;
            Obecne.PametNadpis      = new AutoCompleteStringCollection(); // Vytvoříme novou nápovědní kolekci nadpisů
            db.Dotaz("SELECT DISTINCT Nadpis FROM udalosti;");            // Získáme unikátní nadpisy a ty postupně přidáváme do kolekce
            while (db.DalsiVysledek())
            {
                Obecne.PametNadpis.Add(db.DejVysledekString("Nadpis"));
            }
            progressBarStart.Value += 1;
            db.Close();                        // Zavře databázové spojení, uvolní zdroje
            Obecne.PripravNarozeninyPrehled(); // Připravíme narozeniny pro zobrazení (aby seděly přechody roků)
            alarm.Vypnout();                   // Vypne upozorňování na blížíce se události
            progressBarStart.Value += 1;
            this.Close();                      // Zavře okno
        }
Example #7
0
 /// <summary>
 /// V menu byla vybrána volba Konec, takže Úkolník bude ukončen
 /// </summary>
 private void MoznostKonec_Click(object sender, EventArgs e)
 {
     Nastaveni.NastavStavAplikace((int)Nastaveni.StavyAplikace.koncici); // Pozastavit probíhající věci
     Application.Exit();
 }