Example #1
0
        public Pregled_po_studentima(string id_ispita, int isvu_kolegija, Forma5 forma)
        {
            InitializeComponent();
            ispit_id   = int.Parse(id_ispita);
            isvu_sifra = isvu_kolegija;
            // Mia T
            prethodnaForma = forma;
            ReadAllStudenti();

            // Mia T - dizajn

            // Da se forma otvori u full screen obliku
            this.WindowState = FormWindowState.Normal;
            //this.FormBorderStyle = FormBorderStyle.None; // s ovim se ne vidi na taskbar traka
            this.WindowState = FormWindowState.Maximized;
            this.Dock        = DockStyle.Fill;
            this.BringToFront();

            // Background i panel stretch
            //Image myimage = new Bitmap(@"C:\Users\Mia\Desktop\faks\napredneBazePodataka\AplikacijaZaIspite\AplikacijaZaIspite\images\background-pmf-lightblue2.png");
            Image myimage = new Bitmap(@"C:\Users\Mia\Desktop\Faks\RACUNARSTVO 2019_2020\2. SEMESTAR\Napredne baze podataka\projekt\Fakultet\images\background-pmf-lightblue2.png");

            this.BackgroundImage = myimage;
            panel1.Anchor        = AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Left;
        }
Example #2
0
        // Mia T
        private void buttonNatrag_Click(object sender, EventArgs e)
        {
            Forma5 forma = new Forma5(isvu_sifra, pretprethodnaForma);

            forma.Show();
            this.Close();
        }
Example #3
0
        private void Kolegiji_Click(object sender, EventArgs e)
        {
            //Prelazak u formu 5
            Forma5 forma = new Forma5(dobiveno, this);

            forma.Show();
            this.Hide();
        }
Example #4
0
        private void Spremi_btn_Click(object sender, EventArgs e)
        {
            // Ako nije pozvan konstruktor za izmjenu podataka o ispitu, onda imamo dodavanje novog ispita
            if (flag == "")
            {
                DateTime danasnjiDatum   = DateTime.Now;
                DateTime datumOdrzavanja = DateTime.ParseExact(Datum_odrzavanja_textBox.Text, "yyyy-MM-dd", CultureInfo.InvariantCulture);

                //Ako je neki TextBox ostao prazan
                if (String.IsNullOrEmpty(Datum_odrzavanja_textBox.Text) || String.IsNullOrEmpty(Vrijeme_odrzavanja_textBox.Text) ||
                    String.IsNullOrEmpty(Prijava_ispita_do_textBox.Text) || String.IsNullOrEmpty(Odjava_do_textBox.Text) ||
                    String.IsNullOrEmpty(Nacin_polaganja_textBox.Text) || String.IsNullOrEmpty(Sadrzaj_textBox.Text) ||
                    String.IsNullOrEmpty(Trajanje_textBox.Text) || String.IsNullOrEmpty(Predavaonica_textBox.Text))
                {
                    MessageBox.Show("Potrebno je popuniti sva polja!");
                }
                //Ako unosis datum prije danasnjeg
                else if (datumOdrzavanja < danasnjiDatum)
                {
                    MessageBox.Show("Nije moguće unijeti datum ispita raniji od današnjeg!");
                }
                else
                {
                    //Generiranje novog id-a
                    List <Kolegij> list    = kolekcijaKolegij.AsQueryable().ToList <Kolegij>();
                    int            novi_id = 0;

                    foreach (Kolegij k in list)
                    {
                        if (k.Isvu_sifra == isvu_sifra)
                        {
                            int duljina = k.IspitiNaKolegiju.Count;
                            novi_id = k.IspitiNaKolegiju[duljina - 1].Ispit_id;

                            // Mia T
                            label7.Text = k.Naziv;
                        }
                    }
                    novi_id++;
                    Console.WriteLine("Novi id: " + novi_id);

                    IspitNaKolegiju novi_ispit_kolegij = new IspitNaKolegiju(novi_id, Datum_odrzavanja_textBox.Text,
                                                                             Vrijeme_odrzavanja_textBox.Text, Nacin_polaganja_textBox.Text, Prijava_ispita_do_textBox.Text, Odjava_do_textBox.Text,
                                                                             Sadrzaj_textBox.Text, double.Parse(Trajanje_textBox.Text),
                                                                             Predavaonica_textBox.Text);
                    var updateDef_1 = Builders <Kolegij> .Update.AddToSet("ispiti", novi_ispit_kolegij);

                    kolekcijaKolegij.UpdateOne(k => k.Isvu_sifra == isvu_sifra, updateDef_1);

                    IspitStudenta novi_ispit_studenta = new IspitStudenta(novi_id, "neprijavljen", null);
                    var           updateDef_2         = Builders <Student> .Update.AddToSet("kolegiji.$[i].ispiti", novi_ispit_studenta);

                    var arrayFilters = new List <ArrayFilterDefinition> {
                        new JsonArrayFilterDefinition <Student>(@"{'i.isvu_sifra':" + isvu_sifra + "}")
                    };
                    var updateOptions = new UpdateOptions {
                        ArrayFilters = arrayFilters
                    };

                    kolekcijaStudent.UpdateMany(s => s.KolegijiStudenta.Any(k => k.Isvu_sifra == isvu_sifra), updateDef_2, updateOptions);

                    Forma5 forma5 = new Forma5(isvu_sifra, pretprethodnaForma);
                    this.Hide();
                    forma5.Show();
                }
            }

            //Inače, pozvan je konstruktor za izmjenu podataka o ispitu
            else
            {
                DateTime danasnjiDatum   = DateTime.Now;
                DateTime datumOdrzavanja = DateTime.ParseExact(Datum_odrzavanja_textBox.Text, "yyyy-MM-dd", CultureInfo.InvariantCulture);

                //Ako je neki TextBox ostao prazan
                if (String.IsNullOrEmpty(Datum_odrzavanja_textBox.Text) || String.IsNullOrEmpty(Vrijeme_odrzavanja_textBox.Text) ||
                    String.IsNullOrEmpty(Prijava_ispita_do_textBox.Text) || String.IsNullOrEmpty(Odjava_do_textBox.Text) ||
                    String.IsNullOrEmpty(Nacin_polaganja_textBox.Text) || String.IsNullOrEmpty(Sadrzaj_textBox.Text) ||
                    String.IsNullOrEmpty(Trajanje_textBox.Text) || String.IsNullOrEmpty(Predavaonica_textBox.Text))
                {
                    MessageBox.Show("Potrebno je popuniti sva polja!");
                }

                //Ako unosis datum prije danasnjeg
                else if (datumOdrzavanja < danasnjiDatum)
                {
                    MessageBox.Show("Nije moguće unijeti datum ispita raniji od današnjeg!");
                }
                else
                {
                    List <Kolegij> list = kolekcijaKolegij.AsQueryable().ToList <Kolegij>();
                    foreach (Kolegij k in list)
                    {
                        if (k.Isvu_sifra == isvu_sifra)
                        {   // Mia T
                            label7.Text = k.Naziv;
                        }
                    }

                    var updateDef_1 = Builders <Kolegij> .Update.Set("ispiti.$[i].datum_odrzavanja", Datum_odrzavanja_textBox.Text)
                                      .Set("ispiti.$[i].vrijeme_odrzavanja", Vrijeme_odrzavanja_textBox.Text)
                                      .Set("ispiti.$[i].prijava_do", Prijava_ispita_do_textBox.Text)
                                      .Set("ispiti.$[i].odjava_do", Odjava_do_textBox.Text)
                                      .Set("ispiti.$[i].nacin_polaganja", Nacin_polaganja_textBox.Text)
                                      .Set("ispiti.$[i].sadrzaj", Sadrzaj_textBox.Text)
                                      .Set("ispiti.$[i].trajanje", double.Parse(Trajanje_textBox.Text))
                                      .Set("ispiti.$[i].predavaonica", Predavaonica_textBox.Text);


                    var arrayFilters_1 = new List <ArrayFilterDefinition> {
                        new JsonArrayFilterDefinition <Kolegij>(@"{'i.ispit_id':" + ispit_id + "}")
                    };
                    var updateOptions_1 = new UpdateOptions {
                        ArrayFilters = arrayFilters_1
                    };

                    kolekcijaKolegij.UpdateOne(k => k.Isvu_sifra == isvu_sifra && k.IspitiNaKolegiju.Any(i => i.Ispit_id == ispit_id), updateDef_1, updateOptions_1);


                    Forma5 forma5 = new Forma5(isvu_sifra, pretprethodnaForma);
                    this.Hide();
                    forma5.Show();
                }
            }
        }