private void BtnIzbrisiReprezentaciju_Click(object sender, EventArgs e)
        {
            if (LvReprezentacije.SelectedItems.Count != 0)
            {
                try
                {
                    var _client   = new MongoClient();
                    var _database = _client.GetDatabase("test");

                    var collection        = _database.GetCollection <Reprezentacija>("reprezentacije");
                    var treneriCollection = _database.GetCollection <Trener>("treneri");

                    //---filter za reperzentaciju ----
                    var filter = new BsonDocument()
                    {
                        { "Ime", LvReprezentacije.SelectedItems[0].Text }
                    };
                    //---Reprezentacija za brisanje ---
                    var zaBrisanje = collection.Find(filter).FirstOrDefault();
                    //update trenera (pointer na reprezentaciju treba da se anulira)
                    var filterZaTrenera = new BsonDocument()
                    {
                        { "TrenutniKlub", zaBrisanje.Ime }
                    };

                    var filterz = Builders <Trener> .Filter.Eq("TrenutniKlub", zaBrisanje.Ime);

                    var update = Builders <Trener> .Update
                                 .Set("TrenutniKlub", "");

                    treneriCollection.UpdateOne(filterz, update);
                    //-------------------------------------------
                    //update statusa igraca ( igraci vise ne pripadaju reprezentaciji
                    //posto se brise

                    AuxLib.UpdateIgracStatus(zaBrisanje.SastavIDs.Split(','), false);
                    collection.DeleteOne(filter);
                    //---------------------------------------------
                    string imeFajla = LvReprezentacije.SelectedItems[0].Text;
                    // Brisanje zastave
                    AuxLib.deleteFromGridFS(imeFajla + "zastava");
                    // Brisanje himne
                    AuxLib.deleteFromGridFS(imeFajla + "himna");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                // ---- Izbaci igraca iz listView ----
                LvReprezentacije.SelectedItems[0].Remove();
            }
            else
            {
                MessageBox.Show("Selektuj reprezentaciju koju hoces da izbrises!");
            }
        }
Esempio n. 2
0
        private void button3_Click(object sender, EventArgs e)
        {
            if (String.IsNullOrWhiteSpace(this.tbIme.Text))
            {
                MessageBox.Show("Ime reprezentacije je obavezno!");
                return;
            }
            if (String.IsNullOrWhiteSpace(this.tbSkracenica.Text))
            {
                MessageBox.Show("Skracenica je obavezna!(3 slova)");
                return;
            }
            if (String.IsNullOrWhiteSpace(this.tbSelektor.Text))
            {
                MessageBox.Show("Selektor je obavezan!");
                return;
            }
            if (this.LVSastav.Items.Count < 11)
            {
                MessageBox.Show("Sastav je nepotpun!");
                return;
            }
            if (elKapetano == null)
            {
                MessageBox.Show("Morate izabrati kapitena!");
                return;
            }
            if (elKapetano != null)
            {
                ListViewItem kapitenNijeUlistu = LVSastav.FindItemWithText(elKapetano._id.ToString());
                if (kapitenNijeUlistu == null)
                {
                    MessageBox.Show("Morate izabrati kapitena!");
                    return;
                }
            }
            string temp = this.CheckTeam();

            //provera pozicija tima
            if (temp != "Ok")
            {
                MessageBox.Show(temp);
                return;
            }
            ;

            try
            {
                //database access
                var _client    = new MongoClient();
                var _database  = _client.GetDatabase("test");
                var collection = _database.GetCollection <Reprezentacija>("reprezentacije");
                //filters
                var filterAllCount = new BsonDocument();
                //var filterForUniqueCheck = Builders<BsonDocument>.Filter.Eq("Ime", this.tbIme.Text);
                var filter = new BsonDocument()
                {
                    { "Ime", tbIme.Text }
                };

                //test if reprezentacija exists
                var test = collection.Find(filter).FirstOrDefault();

                var countForID = collection.Count(filterAllCount);

                // model creating
                Reprezentacija forSave = new Reprezentacija();
                forSave.FifaRang = Convert.ToInt32(numFifaRang.Value);

                forSave.id = 777;
                forSave.IgracSaNajviseNastupa = StringCleaner.checkString(this.tbIgracSaNajviseNastupa.Text);
                forSave.Ime                = StringCleaner.checkString(this.tbIme.Text);
                forSave.Kapiten            = StringCleaner.checkString(elKapetano.PunoIme);
                forSave.Nadimak            = StringCleaner.checkString(tbNadimak.Text);
                forSave.NajboljiStrelac    = StringCleaner.checkString(this.tbNajboljiStrelac.Text);
                forSave.NajvecaPobedaPoraz = StringCleaner.checkString(this.tbNajvecaPobedaPoraz.Text);
                forSave.OsvojeneMedalje    = StringCleaner.checkString(this.rtbOsvojeneMedalje.Text);
                foreach (ListViewItem item in this.LVSastav.Items)
                {
                    forSave.Sastav    += item.SubItems[1].Text;
                    forSave.Sastav    += ",";
                    forSave.SastavIDs += item.SubItems[0].Text;
                    forSave.SastavIDs += ",";
                }
                forSave.Sastav             = forSave.Sastav.TrimEnd(',');
                forSave.SastavIDs          = forSave.SastavIDs.TrimEnd(',');
                forSave.Selektor           = StringCleaner.checkString(tbSelektor.Text);
                forSave.Skracenica         = StringCleaner.checkString(tbSkracenica.Text);
                forSave.SportskaBiografija = StringCleaner.checkString(rtbSportskaBiografija.Text);


                //Serialization and BsonDocument creation


                //var document = forSave.ToBsonDocument();


                // insert or update check.
                if (test == null)
                {
                    collection.InsertOne(forSave);
                    AuxLib.UpdateIgracStatus(forSave.SastavIDs.Split(','), true);


                    MessageBox.Show("Reprezentacija :" + forSave.Ime + " uspesno dodata.");
                }
                else
                {
                    forSave._id = test._id;

                    //update za stare ugrace (stavljamo da ne pripadaju vise timu koji se azurira)
                    AuxLib.UpdateIgracStatus(test.SastavIDs.Split(','), false);

                    collection.ReplaceOne(filter, forSave);

                    //update nove igrace
                    AuxLib.UpdateIgracStatus(forSave.SastavIDs.Split(','), true);

                    MessageBox.Show("Reprezentacija :" + forSave.Ime + " uspesno azurirana.");
                }

                //ucitavanje slike iz strima u GridFS
                if (this.PBslikaReprezentacije.Image != null)
                {
                    AuxLib.deleteFromGridFS(forSave.Ime + "zastava");
                    if (!AuxLib.AddImageToGridFS(this.PBslikaReprezentacije.Image, forSave.Ime + "zastava", formatSlika))
                    {
                        MessageBox.Show("Slika nije ucitana uspesno.");
                    }
                    ;
                }
                else
                {
                    MessageBox.Show("Slika nije selektovana zato nije ubacena.");
                }

                //ucitavanje himne iz strima u GridFS
                if (himnaStream != null)
                {
                    AuxLib.deleteFromGridFS(forSave.Ime + "himna");
                    if (AuxLib.AddSoundToGridFS(himnaStream, this.tbIme.Text + "himna", formatHimna))
                    {
                        MessageBox.Show("Uspesno ste dodali mp3 sadrzaja kao himnu reprezentacije.");
                    }
                }
                else
                {
                    MessageBox.Show("Himna nije ubacena.");
                }
                //reset kapetana na null
                elKapetano = null;
                var filterForListView = new BsonDocument()
                {
                    { "PripadaReprezentaciji", false }
                };
                AuxLib.UpdateIgraciListView(this.LvIgraci, filterForListView);
                this.LVSastav.Items.Clear();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }