private void btnDodeli_Click(object sender, EventArgs e) { if (listBox1.SelectedIndices.Count == 1) { ISession sesija = DataLayer.GetSession(); ITransaction transakcija = sesija.BeginTransaction(); // sesija.Save(poklon); Ucesnik ucesnik = (Ucesnik)listBox1.SelectedItem; ucesnik = sesija.Load <Ucesnik>(ucesnik.Id); sesija.Delete(ucesnik); transakcija.Commit(); listBox1.Items.Clear(); Ucesnik dobitnik = new Ucesnik(); dobitnik.DatumPrvePorudzbine = ucesnik.DatumPrvePorudzbine; Poklon poklon; if (radioPizza.Checked) { poklon = new PoklonPizza(); } else { poklon = new PoklonPopust(); } poklon.Bodovi = (int)numericUpDown1.Value; dobitnik.SakupljeniBodovi = ucesnik.SakupljeniBodovi - poklon.Bodovi; dobitnik.Porudzbine = ucesnik.Porudzbine; dobitnik.LicniBroj = ucesnik.LicniBroj; sesija.Save(dobitnik); sesija.Close(); sesija = DataLayer.GetSession(); transakcija = sesija.BeginTransaction(); poklon.DatumDodele = DateTime.Now; poklon.DatumIskoriscen = DateTime.Now; poklon.IdKupca = dobitnik; sesija.Save(poklon); transakcija.Commit(); sesija.Close(); sesija = DataLayer.GetSession(); transakcija = sesija.BeginTransaction(); foreach (Porudzbina porudzbina in ucesnik.Porudzbine) { Porudzbina p; if (porudzbina.GetType() == typeof(NeisporucenaPorudzbina)) { p = new NeisporucenaPorudzbina(); } else { p = new IsporucenaPorudzbina(); } p = porudzbina; p.IdKupca = dobitnik; sesija.Save(p); } foreach (Poklon nagrada in ucesnik.Pokloni) { Poklon p; if (nagrada.GetType() == typeof(PoklonPopust)) { p = new PoklonPopust(); } else { p = new PoklonPizza(); } p = nagrada; p.IdKupca = dobitnik; sesija.Save(p); } transakcija.Commit(); sesija.Close(); UcitajUcesnike(); } else { MessageBox.Show("Izaberite jednog ucesnika"); } }
private void btnPrimiPorudzibnu_Click(object sender, EventArgs e) { if (listOperater.SelectedItems.Count == 0 || listKupac.SelectedItems.Count == 0 || sadrzi.Count == 0 || comboNacinPlacanja.SelectedItem == null) { MessageBox.Show("Morate izbrati jednog operatera,dostavaljaca,nacin placanja i popuniti sadrzaj bar jedne porudzbine"); return; } ISession s = DataLayer.GetSession(); ITransaction t = s.BeginTransaction(); Kupac k = s.Load <Kupac>(((Kupac)listKupac.SelectedItem).Id); int suma = 0; Operater o = s.Load <Operater>(((Operater)listOperater.SelectedItem).Id); NeisporucenaPorudzbina p = new NeisporucenaPorudzbina() { NacinPlacanja = comboNacinPlacanja.Text, IdKupca = k, IdOperater = o, DatumVremeKreiranja = DateTime.Now }; s.Save(p); k.Porudzbine.Add(p); o.PrimljenePorudzbine.Add(p); foreach (var x in sadrzi) { x.PorudzbinaId = p; s.Save(x); p.Sadrzaj.Add(x); suma += x.VelicinaId.Bodovi; } // k = (Ucesnik)k; if (k.GetType() == typeof(Ucesnik)) { ISession sesija = DataLayer.GetSession(); ITransaction transakcija = sesija.BeginTransaction(); sesija.Delete(k); transakcija.Commit(); listOperater.Items.Clear(); listKupac.Items.Clear(); Ucesnik novi = new Ucesnik(); novi.DatumPrvePorudzbine = novi.DatumPrvePorudzbine; novi.SakupljeniBodovi = ((Ucesnik)k).SakupljeniBodovi + suma; novi.Porudzbine = k.Porudzbine; novi.LicniBroj = k.LicniBroj; sesija.Save(novi); sesija.Close(); sesija = DataLayer.GetSession(); transakcija = sesija.BeginTransaction(); foreach (Porudzbina porudzbina in k.Porudzbine) { Porudzbina por; if (porudzbina.GetType() == typeof(NeisporucenaPorudzbina)) { por = new NeisporucenaPorudzbina(); } else { por = new IsporucenaPorudzbina(); } por = porudzbina; por.IdKupca = novi; sesija.Save(por); } foreach (Poklon nagrada in ((Ucesnik)k).Pokloni) { Poklon pok; if (nagrada.GetType() == typeof(PoklonPopust)) { pok = new PoklonPopust(); } else { pok = new PoklonPizza(); } pok = nagrada; pok.IdKupca = novi; sesija.Save(pok); } transakcija.Commit(); sesija.Close(); // k = novi; } t.Commit(); s.Close(); DialogResult = DialogResult.OK; Close(); }