/// <summary> /// Ako gost postoji, ažuriraju se podaci. Ukoliko je pronađena prijava za ažuriranje (korisnik želi /// ažurirati podatke) ažuriraju se svi podaci o gostu. /// </summary> /// <param name="izmjeniGosta">Objekt tipa klase gost (sadrži podatke o gostu koje je je potrebno izmjeniti)</param> private void AzurirajGosta(gost izmjeniGosta) { kontekst.gosts.Attach(izmjeniGosta); vrsta_dokumenta noviDokument = unosVrstaDoc.SelectedItem as vrsta_dokumenta; drzava novaDrzavaStan = unosDrzavaStan.SelectedItem as drzava; //ako je učitana prijava za ažuriranje potrebno je izmjeniti sve podatke o gostu //u suprotnom ažurira se samo dio podataka o gostu if (this.azurirajPrijavu != null) { drzava novaDrzavaRod = unosDrzavaRod.SelectedItem as drzava; string spol = unosSpolMuski.Checked ? spol = "M" : spol = "Ž"; izmjeniGosta.spol = spol; izmjeniGosta.ime = unosIme.Text; izmjeniGosta.prezime = unosPrezime.Text; izmjeniGosta.drzava1 = novaDrzavaRod; izmjeniGosta.datum_rodenja = DateTime.Parse(unosDatumRodenja.Text); } izmjeniGosta.vrsta_dokumenta = noviDokument; izmjeniGosta.broj_dokumenta = unosBrojDoc.Text; izmjeniGosta.drzava = novaDrzavaStan; kontekst.SaveChanges(); }
/// <summary> /// Pohrana prijave za danog gosta u bazu podataka. /// </summary> /// <param name="prijaviGosta">Objekt tipa gost za kojeg se unosi prijava.</param> private void PohraniPrijavu(gost prijaviGosta) { string orgDolaska = unosOsobno.Checked ? "O" : "A"; smjestaj odabraniSmjestaj = odabirSmjestajaUnos.SelectedItem as smjestaj; status_osobe odabraniStatus = unosStatusOsobe.SelectedItem as status_osobe; if (String.IsNullOrEmpty(unosDatumDolaska.Text) || String.IsNullOrEmpty(unosDatumOdlaska.Text)) { throw new KampiralisteException("Nisu uneseni podaci prijave!", this.Name); } else { DateTime datumPrijave = DateTime.Parse(unosDatumDolaska.Text); DateTime datumOdjave = DateTime.Parse(unosDatumOdlaska.Text); prijava prijavaGosta = new prijava { gost1 = prijaviGosta, datum_prijave = datumPrijave, datum_odjave = datumOdjave, organizacija_dolaska = orgDolaska, status_osobe = odabraniStatus, zaposlenik = this.prijavljeniZaposlenik, smjestaj = odabraniSmjestaj }; kontekst.prijavas.Add(prijavaGosta); kontekst.SaveChanges(); } }
/// <summary> /// Unos nove prijave (unos/ažuriranje gosta i unos nove prijave). Ako postoji gost ažurira zapise /// u suprotnom kreira novi zapis. /// </summary> private void NovaPrijava() { gost pohranjeniGost = PostojiGostUBazi(); if (pohranjeniGost == null) { pohranjeniGost = NoviGost(); } else { AzurirajGosta(pohranjeniGost); } PohraniPrijavu(pohranjeniGost); }
/// <summary> /// Funkcija za brisanje prijave, a ukoliko gost vezan za prijavu ima jednu ili nula prijava briše se /// i gost. /// </summary> /// <param name="prijavaZaBrisanje">Objekt tipa klase prijava koji će biti obrisan</param> private void ObrisiPrijavu(prijava prijavaZaBrisanje) { gost gostZaBrisanje = prijavaZaBrisanje.gost1; int brojPrijava = gostZaBrisanje.prijavas.Count(); kontekst.gosts.Attach(gostZaBrisanje); kontekst.prijavas.Attach(prijavaZaBrisanje); if (brojPrijava < 2) { kontekst.gosts.Remove(gostZaBrisanje); } kontekst.prijavas.Remove(prijavaZaBrisanje); kontekst.SaveChanges(); MessageBox.Show("Gost uspješno obrisan", "Poruka o brisanju", MessageBoxButtons.OK, MessageBoxIcon.Information); }
/// <summary> /// Na temelju unesenih podataka provjerava se postoji li gost u bazi podataka. /// </summary> /// <returns>Objekt tipa klase gost ili null ukoliko nije pronađen</returns> private gost PostojiGostUBazi() { gost gostPostoji = null; string ime = unosIme.Text; string prezime = unosPrezime.Text; string drzavaRodenja = (unosDrzavaRod.SelectedItem as drzava).id; string spol = unosSpolMuski.Checked ? "M" : "Ž"; if (String.IsNullOrEmpty(ime) || String.IsNullOrEmpty(prezime) || String.IsNullOrEmpty(drzavaRodenja) || String.IsNullOrEmpty(unosDatumRodenja.Text)) { throw new KampiralisteException("Nisu uneseni podaci o gostu!", this.Name); } else { DateTime datumRodenja = DateTime.Parse(unosDatumRodenja.Text); gostPostoji = (from b in kontekst.gosts where b.ime == ime && b.prezime == prezime && b.drzava_id_rodenja == drzavaRodenja && b.datum_rodenja == datumRodenja && b.spol == spol select b).FirstOrDefault(); } return(gostPostoji); }
/// <summary> /// Pohrana novog gosta u bazu podataka. /// </summary> /// <returns>Povratna vrijednos je objekt tipa klase "gost".</returns> private gost NoviGost() { vrsta_dokumenta dokument = unosVrstaDoc.SelectedItem as vrsta_dokumenta; drzava drzavaStan = unosDrzavaStan.SelectedItem as drzava; drzava drzavaRod = unosDrzavaRod.SelectedItem as drzava; string spol = unosSpolMuski.Checked ? spol = "M" : spol = "Ž"; gost krairajGosta = new gost { spol = spol, ime = unosIme.Text, prezime = unosPrezime.Text, vrsta_dokumenta = dokument, broj_dokumenta = unosBrojDoc.Text, drzava1 = drzavaRod, drzava = drzavaStan, datum_rodenja = DateTime.Parse(unosDatumRodenja.Text) }; kontekst.gosts.Add(krairajGosta); kontekst.SaveChanges(); return(krairajGosta); }