public OknoEgzaminu(BazaDanych bazaDanych) { InitializeComponent(); this.bazaDanych = bazaDanych; zegar = (object sender, EventArgs e) => { timer--; czas.Text = string.Format("{0:00}:{1:00}", (timer / 60), (timer % 60)); if (timer == 0) { ZakonczEgzamin(); } }; dispatcherTimer = new DispatcherTimer(); dispatcherTimer.Tick += zegar; dispatcherTimer.Interval = new TimeSpan(0, 0, 1); timer = bazaDanych.Ustawienia.CzasEgzaminu * 60 > 3600 ? 3600 : bazaDanych.Ustawienia.CzasEgzaminu * 60; czas.Text = string.Format("{0:00}:{1:00}", (timer / 60), (timer % 60)); dispatcherTimer.Start(); OtworzPytanie(0); }
public static BazaDanych WczytajBaze(string lokalizacja) { BazaDanych bazaDanych = null; using (StreamReader sr = new StreamReader(lokalizacja, Kodowanie)) { bazaDanych = new BazaDanych(); bazaDanych.Ustawienia = new UstawieniaBazy(sr.ReadLine(), sr.ReadLine(), sr.ReadLine(), byte.Parse(sr.ReadLine()), byte.Parse(sr.ReadLine())) { Lokalizajca = lokalizacja }; int liczbaPytan = int.Parse(sr.ReadLine()); bool[] wylosowanePytania = LosujPytania(liczbaPytan, bazaDanych.Ustawienia.LiczbaPytanEgzaminacyjnych); for (int i = 0; i < liczbaPytan; ++i) { if (wylosowanePytania[i]) { Pytanie pytanie = new Pytanie(sr.ReadLine(), (TrybPytania)Enum.Parse(typeof(TrybPytania), sr.ReadLine())); bazaDanych.Pytania.Add(pytanie); int liczbaOdpowiedzi = int.Parse(sr.ReadLine()); for (int j = 0; j < liczbaOdpowiedzi; ++j) { pytanie.Odpowiedzi.Add(new Odpowiedz(sr.ReadLine(), Boolean.Parse(sr.ReadLine()))); } } } } return(bazaDanych); }
public void WybranoBaze(string lokalizacjaBazyDanych) { BazaDanych bazaDanych = null; try { bazaDanych = Odczyt.WczytajBaze(lokalizacjaBazyDanych); } catch (Exception e) { MessageBox.Show(e.Message); Application.Current.Shutdown(); } oknoWyborBazy.Visibility = Visibility.Hidden; Title = $"Program Testujący: {bazaDanych.Ustawienia.NazwaBazy}"; TrybProgramu = TrybyProgramu.Egzamin; oknoEgzaminu = new OknoEgzaminu(bazaDanych); uchwytProgramu.Children.Add(oknoEgzaminu); }