예제 #1
0
        private bool validacijaIzmeneProjektora()
        {
            Ucionica staraUcionica = racunarskiCentar.Ucionice[oznakaUcioniceZaIzmenu];

            if (prisustvoProjektoraUcionica.IsChecked)
            {
                staraUcionica.PrisustvoProjektora = prisustvoProjektoraUcionica.IsChecked;
                staraUcionica.ProjektorString     = staraUcionica.PrisustvoProjektora ? "prisutan" : "nije prisutan";
                return(true);
            }
            List <string> sviPredmetiUcionice = new List <string>();

            foreach (KalendarPolje polje in racunarskiCentar.PoljaKalendara.Values)  //trazimo sve predmete koji se odrzavaju u datoj ucionici
            {
                if (polje.Ucionica.Trim().Equals(staraUcionica.Oznaka.Trim()))
                {
                    sviPredmetiUcionice.Add(polje.NazivPolja.Split('-')[0].Trim());
                }
            }

            List <string> predmetiKojiZahtevajuProjektor = new List <string>();

            foreach (string poz in sviPredmetiUcionice)
            {
                if (racunarskiCentar.Predmeti[poz].NeophodanProjektor)
                {
                    predmetiKojiZahtevajuProjektor.Add(poz);
                }
            }

            List <string> predmetiKojiZahtevajuProjektorBezDupl = predmetiKojiZahtevajuProjektor.Distinct().ToList();

            if (predmetiKojiZahtevajuProjektorBezDupl.Count > 0)
            {
                PotvrdaIzmene potvrda = new PotvrdaIzmene();
                potvrda.Title = "Nedostatak projektora";
                potvrda.PorukaBrisanja.Text = "Da li ste sigurni?\n\nUkoliko potvrdite izmenu, sledeci predmeti ce se ukloniti iz rasporeda"
                                              + " u ucionici zbog nedostatka projektora:\n";
                List <string> kljuceviPolja = new List <string>();
                for (int i = 0; i < predmetiKojiZahtevajuProjektorBezDupl.Count; i++)
                {
                    potvrda.PorukaBrisanja.Text += "\n" + (i + 1) + ". " + predmetiKojiZahtevajuProjektorBezDupl[i];
                    foreach (KalendarPolje polje in racunarskiCentar.PoljaKalendara.Values)
                    {
                        if (polje.NazivPolja.Split('-')[0].Trim().Equals(predmetiKojiZahtevajuProjektorBezDupl[i]) && polje.Ucionica.Equals(staraUcionica.Oznaka))
                        {
                            kljuceviPolja.Add(polje.Id);
                        }
                    }
                }
                potvrda.ShowDialog();
                if (potvrda.daKlik)
                {
                    foreach (string id in kljuceviPolja)
                    {
                        racunarskiCentar.PoljaKalendara.Remove(id);
                    }
                    foreach (string poz in predmetiKojiZahtevajuProjektor)
                    {
                        racunarskiCentar.Predmeti[poz].PreostaliTermini++;
                    }
                }
                else
                {
                    return(false);
                }
            }
            staraUcionica.PrisustvoProjektora = prisustvoProjektoraUcionica.IsChecked;
            staraUcionica.ProjektorString     = staraUcionica.PrisustvoProjektora ? "prisutan" : "nije prisutan";
            return(true);
        }
예제 #2
0
        private bool validacijaBrojaRadnihMesta()
        {
            Ucionica staraUcionica = racunarskiCentar.Ucionice[oznakaUcioniceZaIzmenu];

            if (staraUcionica.BrojRadnihMesta == int.Parse(brojRadnihMestaUcionica.Text.Trim()))
            {
                return(true);
            }
            int           noviBrMesta         = int.Parse(brojRadnihMestaUcionica.Text.Trim());
            List <string> sviPredmetiUcionice = new List <string>();

            foreach (KalendarPolje polje in racunarskiCentar.PoljaKalendara.Values)  //trazimo sve predmete koji se odrzavaju u datoj ucionici
            {
                if (polje.Ucionica.Trim().Equals(staraUcionica.Oznaka.Trim()))
                {
                    sviPredmetiUcionice.Add(polje.NazivPolja.Split('-')[0].Trim());
                }
            }

            List <string> predmetiKojiZahtevajuBrojMesta = new List <string>();

            foreach (string poz in sviPredmetiUcionice)
            {
                if (racunarskiCentar.Predmeti[poz].VelicinaGrupe > noviBrMesta)
                {
                    predmetiKojiZahtevajuBrojMesta.Add(poz);
                }
            }

            List <string> predmetiKojiZahtevajuBrojMestaBezDupl = predmetiKojiZahtevajuBrojMesta.Distinct().ToList();

            if (predmetiKojiZahtevajuBrojMestaBezDupl.Count > 0)
            {
                PotvrdaIzmene potvrda = new PotvrdaIzmene();
                potvrda.Title = "Nedovoljno mesta";
                potvrda.PorukaBrisanja.Text = "Da li ste sigurni?\n\nUkoliko potvrdite izmenu, sledeci predmeti ce se ukloniti iz rasporeda"
                                              + " u ucionici zbog nedostatka mesta u ucionici:\n";
                List <string> kljuceviPolja = new List <string>();
                for (int i = 0; i < predmetiKojiZahtevajuBrojMestaBezDupl.Count; i++)
                {
                    potvrda.PorukaBrisanja.Text += "\n" + (i + 1) + ". " + predmetiKojiZahtevajuBrojMestaBezDupl[i];
                    foreach (KalendarPolje polje in racunarskiCentar.PoljaKalendara.Values)
                    {
                        if (polje.NazivPolja.Split('-')[0].Trim().Equals(predmetiKojiZahtevajuBrojMestaBezDupl[i]) && polje.Ucionica.Equals(staraUcionica.Oznaka))
                        {
                            kljuceviPolja.Add(polje.Id);
                        }
                    }
                }
                potvrda.ShowDialog();
                if (potvrda.daKlik)
                {
                    foreach (string id in kljuceviPolja)
                    {
                        racunarskiCentar.PoljaKalendara.Remove(id);
                    }
                    foreach (string poz in predmetiKojiZahtevajuBrojMesta)
                    {
                        racunarskiCentar.Predmeti[poz].PreostaliTermini++;
                    }
                }
                else
                {
                    return(false);
                }
            }
            staraUcionica.BrojRadnihMesta = int.Parse(brojRadnihMestaUcionica.Text.Trim());
            return(true);
        }
예제 #3
0
        private bool validacijaIzmeneSoftvera()
        {
            Ucionica      staraUcionica       = racunarskiCentar.Ucionice[oznakaUcioniceZaIzmenu];
            List <string> sviPredmetiUcionice = new List <string>();

            foreach (KalendarPolje polje in racunarskiCentar.PoljaKalendara.Values)  //trazimo sve predmete koji se odrzavaju u datoj ucionici
            {
                if (polje.Ucionica.Trim().Equals(staraUcionica.Oznaka.Trim()))
                {
                    sviPredmetiUcionice.Add(polje.NazivPolja.Split('-')[0].Trim());
                }
            }

            List <string> predmetiUcionice    = sviPredmetiUcionice.Distinct().ToList(); //izbacimo duplikate
            List <string> predmetiBezSoftvera = new List <string>();

            foreach (string poz in sviPredmetiUcionice)     // prolazim kroz sve predmete unutar ucionice
            {
                Predmet predmet = racunarskiCentar.Predmeti[poz];
                foreach (string soft in predmet.Softveri)       //prolazim kroz sve softvere jednog predmeta
                {
                    bool postoji = false;
                    for (int i = 0; i < softverTabela.Items.Count; i++) //iteriram kroz svaki oznaceni softver
                    {
                        Softver softver = (Softver)softverTabela.Items[i];
                        if (softver.Instaliran)
                        {
                            if (soft.Trim().Equals(softver.Oznaka.Trim()))  //trazim taj softver u ucionici
                            {
                                postoji = true;
                            }
                        }
                    }
                    if (!postoji)
                    {
                        predmetiBezSoftvera.Add(poz);
                    }
                }
            }

            List <string> predmetiBezSoftBezDupl = predmetiBezSoftvera.Distinct().ToList();

            if (predmetiBezSoftBezDupl.Count > 0)
            {
                PotvrdaIzmene potvrda = new PotvrdaIzmene();
                potvrda.Title = "Nedostatak softvera";
                potvrda.PorukaBrisanja.Text = "Da li ste sigurni?\n\nUkoliko potvrdite izmenu, sledeci predmeti ce se ukloniti iz rasporeda"
                                              + " u ucionici zbog nedostatka softvera:\n";
                List <string> kljuceviPolja = new List <string>();
                for (int i = 0; i < predmetiBezSoftBezDupl.Count; i++)
                {
                    potvrda.PorukaBrisanja.Text += "\n" + (i + 1) + ". " + predmetiBezSoftBezDupl[i];
                    foreach (KalendarPolje polje in racunarskiCentar.PoljaKalendara.Values)
                    {
                        if (polje.NazivPolja.Split('-')[0].Trim().Equals(predmetiBezSoftBezDupl[i]) && polje.Ucionica.Equals(staraUcionica.Oznaka))
                        {
                            kljuceviPolja.Add(polje.Id);
                        }
                    }
                }
                potvrda.ShowDialog();
                if (potvrda.daKlik)
                {
                    foreach (string id in kljuceviPolja)
                    {
                        racunarskiCentar.PoljaKalendara.Remove(id);
                    }
                    foreach (string poz in predmetiBezSoftvera)
                    {
                        racunarskiCentar.Predmeti[poz].PreostaliTermini++;
                    }
                }
                else
                {
                    return(false);
                }
            }
            if ((bool)LinuxOSUcionica.IsChecked)
            {
                staraUcionica.OperativniSistem = "Linux";
            }
            else if ((bool)WindowsOSUcionica.IsChecked)
            {
                staraUcionica.OperativniSistem = "Windows";
            }
            else
            {
                staraUcionica.OperativniSistem = "Windows i Linux";
            }

            staraUcionica.InstaliraniSoftveri.Clear();
            StringBuilder sb           = new StringBuilder();
            int           brojSoftvera = 0;

            for (int i = 0; i < softverTabela.Items.Count; i++)
            {
                Softver softver = (Softver)softverTabela.Items[i];
                if (softver.Instaliran)
                {
                    brojSoftvera++;
                    staraUcionica.InstaliraniSoftveri.Add(softver.Oznaka);

                    if (brojSoftvera > 1)
                    {
                        sb.Append("\n");
                    }
                    sb.Append("Oznaka: " + softver.Oznaka);
                    sb.Append("\nNaziv: " + softver.Naziv);
                    sb.Append("\nOpis: " + softver.Opis + "\n");
                    softver.Instaliran = false;
                }
            }
            staraUcionica.SoftveriLista = sb.ToString();
            return(true);
        }