Пример #1
0
        public void DodajKontrolnuTacku(String naziv)
        {
            KontrolnaTacka nova = new KontrolnaTacka(naziv);
            // dodavanje kontrolne tacke u bazu

            KontrolnaTacka test = KontrolneTacke.FirstOrDefault(x => x.Naziv == naziv);

            if (test == null)
            {
                if (this.Id != 0)
                {
                    try
                    {
                        PZadatak.DodajKontrolnuTacku(naziv, this.Id);
                    }
                    catch (Oracle.ManagedDataAccess.Client.OracleException oraError)
                    {
                        try
                        {
                            System.Windows.MessageBox.Show(PPoruka.VratiPrevod(oraError.Number.ToString()));
                        }
                        catch (Oracle.ManagedDataAccess.Client.OracleException err)
                        {
                            System.Windows.MessageBox.Show("Greska");
                        }
                    }
                }

                KontrolneTacke.Add(nova);
            }
        }
Пример #2
0
        public void DodajKomentar(String korisnik, String komentar)
        {
            Komentar noviKomentar = new Komentar(korisnik, komentar);

            Komentar test = Komentari.FirstOrDefault(x => x.Tekst == komentar && x.Korisnik == korisnik);

            if (test == null)
            {
                // dodavanje komentara u bazu
                if (this.Id != 0)
                {
                    try
                    {
                        PZadatak.DodajKomentar(komentar, this.Id);
                    }
                    catch (Oracle.ManagedDataAccess.Client.OracleException oraError)
                    {
                        try
                        {
                            System.Windows.MessageBox.Show(PPoruka.VratiPrevod(oraError.Number.ToString()));
                        }
                        catch (Oracle.ManagedDataAccess.Client.OracleException err)
                        {
                            System.Windows.MessageBox.Show("Greska");
                        }
                    }
                }

                Komentari.Add(noviKomentar);
            }
        }
Пример #3
0
        // 10.06.2018. mstankovic
        //public void DodajZadatak(Kontejner roditelj)
        public void DodajZadatak(KontejnerZadataka roditelj)
        {
            // 10.06.2018. mstankovic (naredne 3 linije)
            //Zadatak novi = new Zadatak((KontejnerZadataka)roditelj);
            //((KontejnerZadataka)roditelj).Zadaci.Add(novi);
            //((KontejnerZadataka)roditelj).PreurediZadatke();
            if (roditelj.Zadaci.Count != roditelj.MaxBrZadataka)
            {
                Zadatak novi = new Zadatak(roditelj);

                // dodavanje zadatka u bazu se izvrsava samo ako je projekat kreiran (sto znaci da je roditeljskoj fazi dodeljen id)
                if (roditelj.Id != 0)
                {
                    try
                    {
                        novi.Id = PZadatak.Dodaj(novi.Ime, novi.Opis, novi.PocetakIzrade, novi.KrajIzrade, novi.Tip, roditelj.Id);
                    }
                    catch (Oracle.ManagedDataAccess.Client.OracleException oraError)
                    {
                        try
                        {
                            System.Windows.MessageBox.Show(PPoruka.VratiPrevod(oraError.Number.ToString()));
                        }
                        catch (Oracle.ManagedDataAccess.Client.OracleException err)
                        {
                            System.Windows.MessageBox.Show("Greska");
                        }
                    }
                }

                roditelj.Zadaci.Add(novi);
                roditelj.PreurediZadatke();
            }
        }
Пример #4
0
        private void IzracunajStatus()
        {
            int brTacaka      = this.KontrolneTacke.Count;
            int brStikliranih = 0;

            foreach (KontrolnaTacka kt in this.KontrolneTacke)
            {
                if (kt.Vrednost == true)
                {
                    brStikliranih++;
                }
                //izmena u bazi
                if (kt.Id != 0)
                {
                    try
                    {
                        PZadatak.IzmeniKontrolnuTacku(kt.Id, kt.Vrednost);
                    }
                    catch (Oracle.ManagedDataAccess.Client.OracleException oraError)
                    {
                        try
                        {
                            System.Windows.MessageBox.Show(PPoruka.VratiPrevod(oraError.Number.ToString()));
                        }
                        catch (Oracle.ManagedDataAccess.Client.OracleException err)
                        {
                            System.Windows.MessageBox.Show("Greska");
                        }
                    }
                }
            }

            if (brTacaka != 0)
            {
                Kompletnost = (brStikliranih * 100) / brTacaka;
            }
        }
Пример #5
0
        //false vertical, true horizontal
        // 10.06.2018. mstankovic
        // public void Split(Kontejner levaPodkolona, bool flag)
        public void Split(KontejnerZadataka kolonaZaSplit, bool nacinSplitovanja, int idProjekta)
        {
            //kreira se parent kolona koja ce da sadrzi dve podkolone
            //on zauzima mesto prethodne kolone koja ce postati leva podkolona
            KontejnerFaza kf = new KontejnerFaza(kolonaZaSplit.Ime);

            kf.Roditelj = kolonaZaSplit.Roditelj;

            // 10.06.2018. mstankovic (naredne 2 linije)
            //int ind = ((KontejnerFaza)kf.Roditelj).Deca.IndexOf(levaPodkolona);
            //((KontejnerFaza)kf.Roditelj).Deca[ind] = kf;
            int ind = kf.Roditelj.Deca.IndexOf(kolonaZaSplit);

            kf.Roditelj.Deca[ind] = kf;
            kf.Pozicija           = ind;

            //vertical
            if (nacinSplitovanja == false)
            {
                kf.IsVerticalSplit = true;
            }
            //horizontal
            else
            {
                kf.IsVerticalSplit = false;
            }

            kolonaZaSplit.Roditelj = kf;

            List <Zadatak> zadaciRoditelja = new List <Zadatak>();

            foreach (Zadatak z in kolonaZaSplit.Zadaci)
            {
                zadaciRoditelja.Add(z);
            }


            if (idProjekta != 0)
            {
                kf.Id = kolonaZaSplit.Id;
                try
                {
                    PFaza.IzmeniPosleSplita(kf.Id, kf.IsVerticalSplit);
                }
                catch (Oracle.ManagedDataAccess.Client.OracleException oraError)
                {
                    try
                    {
                        System.Windows.MessageBox.Show(PPoruka.VratiPrevod(oraError.Number.ToString()));
                    }
                    catch (Oracle.ManagedDataAccess.Client.OracleException err)
                    {
                        System.Windows.MessageBox.Show("Greska");
                    }
                }
            }

            //leva podkolona
            KontejnerZadataka kzNovi = new KontejnerZadataka(kolonaZaSplit);

            kzNovi.Pozicija = 0;
            if (idProjekta != 0)
            {
                try
                {
                    kzNovi.Id = PFaza.Dodaj_FZ(kzNovi.Ime, kzNovi.Opis, kzNovi.MaxBrZadataka, kzNovi.PocetakIzrade, kzNovi.KrajIzrade, kf.Id, kzNovi.SirinaPoZadacima, kzNovi.VisinaPoZadacima, idProjekta);
                }
                catch (Oracle.ManagedDataAccess.Client.OracleException oraError)
                {
                    try
                    {
                        System.Windows.MessageBox.Show(PPoruka.VratiPrevod(oraError.Number.ToString()));
                    }
                    catch (Oracle.ManagedDataAccess.Client.OracleException err)
                    {
                        System.Windows.MessageBox.Show("Greska");
                    }
                }
            }

            foreach (Zadatak z in zadaciRoditelja)
            {
                try
                {
                    if (z.Id != 0)
                    {
                        PZadatak.IzmeniFazu(z.Id, kzNovi.Id);
                    }
                }
                catch (Oracle.ManagedDataAccess.Client.OracleException oraError)
                {
                    try
                    {
                        System.Windows.MessageBox.Show(PPoruka.VratiPrevod(oraError.Number.ToString()));
                    }
                    catch (Oracle.ManagedDataAccess.Client.OracleException err)
                    {
                        System.Windows.MessageBox.Show("Greska");
                    }
                }
            }

            //desna podkolona
            KontejnerZadataka kz = new KontejnerZadataka("New subcolumn 2", kf);

            kz.Pozicija = 1;
            if (idProjekta != 0)
            {
                try
                {
                    kz.Id = PFaza.Dodaj_FZ(kz.Ime, kz.Opis, kz.MaxBrZadataka, kz.PocetakIzrade, kz.KrajIzrade, kf.Id, kz.SirinaPoZadacima, kz.VisinaPoZadacima, idProjekta);
                }
                catch (Oracle.ManagedDataAccess.Client.OracleException oraError)
                {
                    try
                    {
                        System.Windows.MessageBox.Show(PPoruka.VratiPrevod(oraError.Number.ToString()));
                    }
                    catch (Oracle.ManagedDataAccess.Client.OracleException err)
                    {
                        System.Windows.MessageBox.Show("Greska");
                    }
                }
            }

            kf.Deca.Add(kzNovi);
            kf.Deca.Add(kz);
        }
Пример #6
0
        //kada se otvara postojeci projekat iz baze onda se zove ovaj konstruktor koji povezuje stablo
        public Tabela(String naslov, String opis, int idProjekta)
        {
            Naslov     = naslov;
            Opis       = opis;
            RootKolona = new KontejnerFaza("ROOT");
            RootKolona.IsVerticalSplit = true;

            // 10.06.2018. mstankovic
            // (BEGIN) ULANCAVANJE U STABLO
            try
            {
                List <Kontejner>  faze  = Packages.PFaza.VratiFaze(idProjekta);              // 7 je ID projekta
                Queue <Kontejner> queue = new Queue <Kontejner>();

                // Prvo se pronadju elementi ciji je roditelj
                // ROOT kolona (tj. oni ciji je Roditelj.Id = 0),
                // vezu se za nju i ubace u queue
                foreach (Kontejner k in faze)
                {
                    if (k.Roditelj.Id == 0)
                    {
                        RootKolona.Deca.Add(k);
                        k.Roditelj = RootKolona;

                        // BEGIN PROMENA
                        //za pocetak neka bude ovako
                        //da max moze da stane 30 zadataka po koloni
                        if (k.GetType() == typeof(KontejnerZadataka))
                        {
                            ((KontejnerZadataka)k).SirinaPoZadacima = 3;
                            ((KontejnerZadataka)k).VisinaPoZadacima = 10;
                        }
                        // END PROMENA

                        queue.Enqueue(k);
                    }
                }


                //((KontejnerFaza)RootKolona).Deca = ((KontejnerFaza)RootKolona).Deca.OrderBy(kontejner => kontejner.Pozicija).ToList();
                RootKolona.Deca.Sort((x, y) => x.Pozicija.CompareTo(y.Pozicija));

                // Ostali elementi se ulancavaju po ugledu na algoritam obilaska stabla po sirini (Breadth First)
                while (queue.Count > 0)
                {
                    Kontejner k = queue.Dequeue();

                    // Za svaki kontejner faza je potrebno da se pronadju njegova deca
                    // u ostatku liste, da se ulancaju i ubace u red
                    if (k.GetType() == typeof(KontejnerFaza))
                    {
                        foreach (Kontejner dete in faze)
                        {
                            if (dete.Roditelj.Id == k.Id)
                            {
                                ((KontejnerFaza)k).Deca.Add(dete);
                                dete.Roditelj = (KontejnerFaza)k;

                                // BEGIN PROMENA
                                //za pocetak neka bude ovako
                                //da max moze da stane 30 zadataka po koloni
                                if (dete.GetType() == typeof(KontejnerZadataka))
                                {
                                    if (dete.Roditelj.IsVerticalSplit)
                                    {
                                        ((KontejnerZadataka)dete).SirinaPoZadacima = 3;
                                        ((KontejnerZadataka)dete).VisinaPoZadacima = 10;
                                    }
                                    else
                                    {
                                        ((KontejnerZadataka)dete).SirinaPoZadacima = 6;
                                        ((KontejnerZadataka)dete).VisinaPoZadacima = 5;
                                    }
                                    //ograniceno na 30 za pocetak
                                    ((KontejnerZadataka)dete).MaxBrZadataka = 30;
                                }
                                // END PROMENA

                                queue.Enqueue(dete);
                            }
                        }

                        // 12.06.2018 vvranic
                        //sortiranje kolone po indeksima da bi sve kolone bile prikazane u pravilnom redosledu
                        //u rastucem redosledu ih sortira sto bi trebalo da bude ok
                        //((KontejnerFaza)k).Deca = ((KontejnerFaza)k).Deca.OrderBy(kontejner => kontejner.Pozicija).ToList();
                        ((KontejnerFaza)k).Deca.Sort((x, y) => x.Pozicija.CompareTo(y.Pozicija));
                    }
                    else if (k.GetType() == typeof(KontejnerZadataka))
                    {
                        try
                        {
                            ((KontejnerZadataka)k).Zadaci = Packages.PZadatak.VratiZadatkeFaze(k.Id);
                            //((KontejnerZadataka)k).Zadaci.ForEach(zadatak => zadatak.Roditelj = (KontejnerZadataka)k);
                            ((KontejnerZadataka)k).Zadaci.ForEach(zadatak =>
                            {
                                zadatak.Roditelj       = (KontejnerZadataka)k;
                                zadatak.Komentari      = PZadatak.VratiSveKomentare(zadatak.Id);
                                zadatak.KontrolneTacke = PZadatak.VratiSveKontrolneTacke(zadatak.Id);
                                zadatak.KontrolnaTackaChanged();
                            });

                            ((KontejnerZadataka)k).PreurediZadatke();
                        }
                        catch (Oracle.ManagedDataAccess.Client.OracleException oraError)
                        {
                            try
                            {
                                System.Windows.MessageBox.Show(PPoruka.VratiPrevod(oraError.Number.ToString()));
                            }
                            catch (Oracle.ManagedDataAccess.Client.OracleException err)
                            {
                                System.Windows.MessageBox.Show("Greska");
                            }
                        }
                    }
                }
                // (END) ULANCAVANJE U STABLO
            }
            catch (Oracle.ManagedDataAccess.Client.OracleException oraError)
            {
                try
                {
                    System.Windows.MessageBox.Show(PPoruka.VratiPrevod(oraError.Number.ToString()));
                }
                catch (Oracle.ManagedDataAccess.Client.OracleException err)
                {
                    System.Windows.MessageBox.Show("Greska");
                }
            }
        }