예제 #1
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;
                    }
                }
            }
        }
예제 #2
0
파일: Nastaveni.cs 프로젝트: Sqeee/ukolnik
 /// <summary>
 /// Provádí čtení konfiguráku a kontroluje aktuálnost údajů
 /// </summary>
 /// <returns>True, pokud jsou data aktuální, false pokud nejsou data aktuální</returns>
 public static bool CtiNastaveni()
 {
     System.IO.StreamReader soubor = new System.IO.StreamReader(SlozkaNastaveni + SouborNastaveni); // Otevření konfiguráku
     while (!soubor.EndOfStream)                                                                    // Dokud nejsme na samém konci konfiguráku
     {
         string radek = soubor.ReadLine();                                                          // Postupně čteme jednotlivé řádky
         if (radek.Substring(0, 4) == "ver:")                                                       // Jestliže je na začátku řádku ver: tak je to info o poslední verzi Úkolníku (důležité pro aktualizace)
         {
             Verze = radek.Remove(0, 5);                                                            // Odtrhneme začátek a získáme tak verzi
         }
         else if (radek.Substring(0, 4) == "ser:")                                                  // Jestliže je na začátku řádku ser: tak je to info o databázovém serveru
         {
             Server = radek.Remove(0, 5);                                                           // Odtrhneme začátek a získáme tak databázový server
         }
         else if (radek.Substring(0, 4) == "uzi:")                                                  // Jestliže je na začátku řádku uzi: tak je to přihlašovací jméno do databáze
         {
             Uzivatel = radek.Remove(0, 5);                                                         // Odtrhneme začátek a získáme tak uživatelské jméno pro přihlášení do databáze
         }
         else if (radek.Substring(0, 4) == "hes:")                                                  // Jestliže je na začátku řádku hes: tak je to heslo pro přihlášení do databáze
         {
             Heslo = radek.Remove(0, 5);                                                            // Odtrhneme začátek a získáme tak heslo pro přihlášení do databáze
         }
         else if (radek.Substring(0, 4) == "dab:")                                                  // Jestliže je na začátku řádku dab: tak je to info o databázi obshaující tabulky pro Úkolník
         {
             Databaze = radek.Remove(0, 5);                                                         // Odtrhneme začátek a získáme tak databázi obsahující tabulky pro Úkolník
         }
         else if (radek.Substring(0, 4) == "spo:")                                                  // Jestliže je na začátku řádku spo: tak je to info, zda se má Úkolník automaticky spouštět při startu počítače
         {
             NastavSpousteni(radek.Remove(0, 5));                                                   // Odtrhneme začátek a získáme tak, zda se má Úkolník automaticky spouštět při startu počítače
         }
         else if (radek.Substring(0, 4) == "upo:")                                                  // Jestliže je na začátku řádku upo: tak je to o kolik minut předem se má upozorňovat na události
         {
             try
             {
                 UpozorneniDopredu = Convert.ToInt32(radek.Remove(0, 5)); // Zkusíme odtrhnutím začátku a převodu na číslo získat o kolik minut dřív se má upozorňovat na události
             }
             catch (Exception exc)                                        // Pokud nastal problém a zadaná hodnota nelze předělat na číslo, tak se nastaví záklandí hodnota a vypíše se info o tomto problému
             {
                 UpozorneniDopredu = 7;
                 Vyjimky.VypisVyjimek("Chyba konfiguračním souboru, je zadána špatná hodnota pro upozornění, běž do nastavení a ulož tam novou.", exc);
             }
         }
         else if (radek.Substring(0, 4) == "pod:")         // Jestliže je na začátku řádku pod: tak je to info o tom, zda se mají zobrazovat podrobnosti u vyjimek
         {
             NastavPodrobnostiVyjimek(radek.Remove(0, 5)); // Odtrhneme začátek a a předáme ho funkci na nastavení podrobností u výpisu vyjimek
         }
     }
     soubor.Close(); // Zavřeme konfigurák
     return(Verze == Obecne.DejVerzi());
 }
예제 #3
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
        }