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!"); } }
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); } }