Пример #1
0
        public static async Task NaložiRezultate()
        {
            //    naloži vaje
            FileInfo file   = new FileInfo("vaje.json");
            var      result = File.ReadAllText("vaje.json");

            List <Class1> TotalList = new List <Class1>();
            var           task      = Task.Factory.StartNew(() => JsonConvert.DeserializeObject <List <Class1> >(result));

            TotalList = await task;
            //TotalList = JsonConvert.DeserializeObject<List<Class1>>(result);
            foreach (var d in TotalList)
            {
                Vaje r = new Vaje();
                TipkanjeDataGroup group = null;
                r.vsebina = new ObservableCollection <Vsebina>();
                r.Id      = d.Id;
                foreach (var a in d.vsebina)
                {
                    Vsebina v = new Vsebina();
                    v.vrstica = a.vrstica;
                    v.tekst   = a.tekst;
                    r.vsebina.Add(v);
                }
                try
                {
                    r.zadnjicReseno = DateTime.Parse(d.zadnjicReseno);
                }
                catch { r.zadnjicReseno = null; }
                r.reseno       = d.reseno;
                r.napake       = d.napake;
                r.porabljencas = d.porabljencas;
                r.slika        = new BitmapImage(new Uri(d.slika, UriKind.Relative)); //iz stringa v sliko
                r.test         = d.test;
                var list1 = d.crke;
                r.crke = new string[list1.Count()];
                int št = 0;
                foreach (var a in list1)
                {
                    r.crke[št] = a;
                    št++;
                }
                var skupina = d.group;
                group = _pvm.AllGroups.FirstOrDefault(s => s.Id.Equals(d.group.key));
                if (group == null)
                {
                    group = CreateTipkanjeGroup(skupina);
                }
                r.Group = group;
                if (group != null)
                {
                    group.Items.Add(r);
                }
                _pvm.Vaja.Add(r);
            }
        }
Пример #2
0
        private void NovaVrstica()
        {
            štVrstice++;
            štČrk        = 0;
            txtVnos.Text = "";

            udarci = (int)((številoUdarcev - napake * 25) / ((vm.Sekunde + vm.Minute * 60) / 60));
            if (štVrstice > 2)
            {
                KonecVaje();
                return;
            }
            var vrstice = VsebinaVrstic.ToList();

            trenutnaVrstica   = (Vsebina)vrstice[štVrstice];
            vsehČrkVVaji     += trenutnaVrstica.tekst.Length;
            grd.SelectedIndex = štVrstice;
            //tbOK.Text = "Pravilno!";
            //tbPomoc.Visibility = Visibility.Collapsed;
        }
Пример #3
0
        private void KonecVaje()
        {
            vm.Stop();

            var  as = (int)vm.Sekunde + vm.Minute * 60;
            var hitrost = (int)((številoUdarcev - napake * 25) / (as / 60.0));  //preveri

            nvProcentih.Text = string.Format("{0,5:P2}", (double)napake / vsehČrkVVaji);
            ud.Text          = številoUdarcev + "";

            asSkupaj = asSkupaj + (int)vm.Sekunde + vm.Minute * 60;

            napakeSkupaj = napakeSkupaj + napake;

            udarciSkupaj = udarciSkupaj + številoUdarcev;

            štČrkSkupaj = štČrkSkupaj + vsehČrkVVaji;

            txtNapake.Text = napakeSkupaj + "";
            txtN.Text      = napake.ToString();
            txtH.Text      = hitrost.ToString();
            double procentS = Math.Round((double)napakeSkupaj / štČrkSkupaj * 100, 2) / 100.0;;
            int    hitrostS = (int)((udarciSkupaj - napakeSkupaj * 25) / (asSkupaj / 60.0));

            if (zaporedneŠtevilke != null)
            {
                if (zaporedneŠtevilke.Length < 40)
                {
                    if (zaporedneŠtevilke == "")
                    {
                        zaporedneŠtevilke = št + "";
                    }
                    else
                    {
                        zaporedneŠtevilke = zaporedneŠtevilke + ", " + št;
                    }
                }
                else
                {
                    int zadnja = zaporedneŠtevilke.LastIndexOf(',');
                    if (zadnja != -1)
                    {
                        zaporedneŠtevilke = zaporedneŠtevilke.Substring(0, zadnja) + "..." + št;
                    }
                }
            }
            else
            {
                zaporedneŠtevilke = št + "";
            }
            txtŠtevilke.Text = zaporedneŠtevilke;
            // uds.Text = udarciSkupaj.ToString();
            if (procentS * 100 <= 0.2)
            {
                uds1.Text = "5";
            }
            else if (procentS * 100 <= 0.4)
            {
                uds1.Text = "4";
            }
            else if (procentS * 100 <= 0.7)
            {
                uds1.Text = "3";
            }
            else if (procentS * 100 <= 0.99)
            {
                uds1.Text = "2";
            }
            else
            {
                uds1.Text = "1";
            }
            if (hitrostS >= 160)
            {
                uds.Text = "5";
            }
            else if (hitrostS >= 143)
            {
                uds.Text = "4";
            }
            else if (hitrostS >= 126)
            {
                uds.Text = "3";
            }
            else if (hitrostS >= 110)
            {
                uds.Text = "2";
            }
            else
            {
                uds.Text = "1";
            }
            //piši v json datoteko nazaj
            štČrk             = 0;
            štVrstice         = 0;
            trenutnaVrstica   = null;
            txtVnos.IsEnabled = false;
            btnZačni.Content  = "Naslednja vaja";

            btnZačni.IsEnabled = true;
            //if (načinDela != NačinDela.Test)
            //    backButton.IsEnabled = true;

            //lahko začne znova, samo če ima cikel vaj, sicer iz vaje ne more iti na drugo vajo kot eno naprej
            //tbOK.Text = "";
            grd.SelectedIndex = 0;
            var način = načinDela + " " + oba[1];
            //prava pozicija
            var nov = PrivzetiViewModel.SetItemR(št, napake, as, številoUdarcev, vsehČrkVVaji, način, up, opisS);

            //var busyIndicator = PrepareIndeterminateTask("Počakaj trenutek, rezultati samo na tem računalniku");
            PrivzetiViewModel.PišiRezultate();

            // CleanUpIndeterminateTask(busyIndicator);

            btnZačni.Focus();
        }
Пример #4
0
        private void ZačniZVajo(object sender, RoutedEventArgs e)
        {
            btnPrav1.Visibility = Visibility.Collapsed;
            btnPrav2.Visibility = Visibility.Collapsed;
            btnPrav3.Visibility = Visibility.Collapsed;
            grd.SelectedIndex   = 0;
            if (btnZačni.Content.Equals("Začni z vajo"))
            {
                btnZačni.IsEnabled = false;
                štVrstice          = 0;
                var vrstice = VsebinaVrstic.ToList();
                trenutnaVrstica   = (Vsebina)vrstice[štVrstice];
                txtVnos.IsEnabled = true;
                vm = (StoparicaViewModel)ura.Resources["vm"];
                vm.Start();
                txtVnos.Focus();
                štČrk          = 0;
                napake         = 0;
                številoUdarcev = 0;
                vsehČrkVVaji  += trenutnaVrstica.tekst.Length;
            }
            else //naslednja vaja
            {
                var a = new ZaPagePayload2();
                //če si v načinu dela je prof preveri ali je že konec sklopa vaj
                //ne na naslednjo številko, ampak na naslednjo vajo v sklopu teh vaj - v načinu jeProf
                if (št != številkeVaj[štVaj - 1])
                //  if (pomžniŠtevec < štVaj - 1)
                {
                    //naslednja vaja
                    for (int k = 0; k < štVaj; k++)
                    {
                        if (številkeVaj[k] == št)
                        {
                            pomžniŠtevec = k;
                            break;
                        }
                    }
                    pomžniŠtevec++;
                    št                     = številkeVaj[pomžniŠtevec];
                    a.št                   = št;
                    a.n                    = načinDela + " " + oba[1];
                    a.napakeSkupaj         = napakeSkupaj;
                    a.štČrkSkupaj          = štČrkSkupaj;
                    a.številoUdarcevSkupaj = udarciSkupaj;
                    a.asSkupaj             = asSkupaj;
                    a.vsehVajSkupaj        = štVaj;
                    a.številkeVajZaDan     = številkeVaj;
                    a.trenutnaPozicijaVaj  = pomžniŠtevec;
                    a.opisS                = opisS;
                    a.imeD                 = tekstDatoteke;
                    a.zaporedneŠtevilke    = zaporedneŠtevilke;
                }
                else
                {
                    //končaj - v načinu test je treba tukaj nekaj narediti
                    var r = "Statistika za " + načinDela + " za skupino " + opisS;
                    r += "\nŠtevilo udarcev " + udarciSkupaj;
                    r += "\nČas skupaj " + asSkupaj + "s";
                    r += "\nNapake " + napakeSkupaj;

                    var m =
                        Xceed.Wpf.Toolkit.MessageBox.Show("Teksta je konec, lahko ga ponoviš \n" +
                                                          r, "Strojepisje", MessageBoxButton.OK, MessageBoxImage.Information);
                    if (načinDela == NačinDela.Test)
                    {
                        Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Render, new Action(() =>
                        {
                            var navWindow = Window.GetWindow(this) as NavigationWindow;
                            if (navWindow != null)
                            {
                                navWindow.ShowsNavigationUI = true;
                            }
                        }));
                    }
                    //this.NavigationService.Navigate(new VajeTekst());
                    return;
                }

                try
                {
                    this.NavigationService.Navigate(new PoVajahTekst(a));
                }
                catch
                {
                    var a1 = new ZaPagePayload2();
                    a1.št = številkeVaj[0]; //1.2.2019 - ponovi vse skupaj
                    a1.n  = načinDela + " " + oba[1];
                    a1.zaporedneŠtevilke = "";
                    this.NavigationService.Navigate(new PoVajahTekst(a1));
                }
            }
        }
Пример #5
0
        private void ZačniZVajo(object sender, RoutedEventArgs e)
        {
            btnPrav1.Visibility = Visibility.Collapsed;
            btnPrav2.Visibility = Visibility.Collapsed;
            btnPrav3.Visibility = Visibility.Collapsed;
            grd.SelectedIndex   = 0;
            if (btnZačni.Content.Equals("Začni z vajo"))
            {
                btnZačni.IsEnabled = false;
                štVrstice          = 0;
                var vrstice = VsebinaVrstic.ToList();
                trenutnaVrstica   = (Vsebina)vrstice[štVrstice];
                txtVnos.IsEnabled = true;
                vm = (StoparicaViewModel)ura.Resources["vm"];
                vm.Start();
                txtVnos.Focus();
                štČrk  = 0;
                napake = 0;
                btnNovaVaja.IsEnabled = false;
                // backButton.IsEnabled = false; mogoče v vrstici, kjer ga imaš
                //barNacin.IsEnabled = false;
                številoUdarcev = 0;
                vsehČrkVVaji  += trenutnaVrstica.tekst.Length;
            }
            else
            {
                var a = new ZaPagePayload();
                //če si v načinu dela je prof preveri ali je že konec sklopa vaj
                //ne na naslednjo številko, ampak na naslednjo vajo v sklopu teh vaj - v načinu jeProf
                if (!jeProf)
                {
                    št++;
                    a.št                   = št;
                    a.n                    = načinDela + " " + oba[1];
                    a.napakeSkupaj         = napakeSkupaj;
                    a.štČrkSkupaj          = štČrkSkupaj;
                    a.številoUdarcevSkupaj = udarciSkupaj;
                    a.asSkupaj             = asSkupaj;
                    a.zaporedneŠtevilke    = zaporedneŠtevilke;
                }
                else
                {
                    if (št != številkeVaj[štVaj - 1]) //ni bila zadnja vaja v tem sklopu
                    //if (pomžniŠtevec < štVaj - 1)
                    {
                        //naslednja vaja
                        //pomžniŠtevec++;
                        //dobi vajo z številko vaje št v tabeli številkeVaj
                        for (int k = 0; k < štVaj; k++)
                        {
                            if (številkeVaj[k] == št)
                            {
                                pomžniŠtevec = k;
                                break;
                            }
                        }
                        pomžniŠtevec++;
                        št = številkeVaj[pomžniŠtevec];

                        a.št                   = št;
                        a.n                    = načinDela + " " + oba[1];
                        a.napakeSkupaj         = napakeSkupaj;
                        a.štČrkSkupaj          = štČrkSkupaj;
                        a.številoUdarcevSkupaj = udarciSkupaj;
                        a.asSkupaj             = asSkupaj;
                        a.vsehVajSkupaj        = štVaj;
                        a.številkeVajZaDan     = številkeVaj;
                        a.trenutnaPozicijaVaj  = pomžniŠtevec;
                        a.opisS                = opisS;
                        a.zaporedneŠtevilke    = zaporedneŠtevilke;
                    }
                    else
                    {
                        //končaj - v načinu test je treba tukaj nekaj narediti
                        var r = "Statistika za " + načinDela + " za skupino " + opisS;
                        r += "\nŠtevilo udarcev " + udarciSkupaj;
                        r += "\nČas skupaj " + asSkupaj + "s";
                        r += "\nNapake " + napakeSkupaj;

                        var m =
                            Xceed.Wpf.Toolkit.MessageBox.Show("Ta sklop si končal, lahko ga ponoviš ali se vrneš na začetni zaslon\n" +
                                                              r);
                        if (načinDela == NačinDela.Test)
                        {
                            Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Render, new Action(() =>
                            {
                                // var navWindow = this as Page;

                                var navWindow = Window.GetWindow(this) as NavigationWindow;
                                if (navWindow != null)
                                {
                                    navWindow.ShowsNavigationUI = true;
                                }
                                //this.ShowsNavigationUI = false;
                            }));
                        }
                        return;
                    }
                }
                try
                {
                    this.NavigationService.Navigate(new PoVajah(a));
                }
                catch
                {
                    var a1 = new ZaPagePayload();
                    if (jeProf)
                    {
                        a1.št = številkeVaj[0];
                        a1.zaporedneŠtevilke = "";
                    }
                    else
                    {
                        a1.št = št;
                        a1.zaporedneŠtevilke = "";
                    }
                    a1.n = načinDela + " " + oba[1];
                    this.NavigationService.Navigate(new PoVajah(a1));
                }
            }
        }