public IActionResult SnimiUlaznicu(UlaznicaDodajVM model) { KorisnickiNalog kupac = HttpContext.GetLogiraniKorisnik(); MyContext db = new MyContext(); Kupac k = db.Kupac.Where(x => x.KorisnickiNalogID == kupac.KorisnickiNalogID).FirstOrDefault(); Rezervacija r = db.Rezervacija.Where(x => x.RezervacijaID == model.Ulaznica.RezervacijaID).FirstOrDefault(); Prikazivanje p = db.Prikazivanje.Where(x => x.PrikazivanjeID == r.PrikazivanjeID).FirstOrDefault(); Ulaznica u = model.Ulaznica; u.KupacID = kupac.KorisnickiNalogID; u.Kupac = db.Kupac.Where(x => x.KorisnickiNalogID == kupac.KorisnickiNalogID).FirstOrDefault(); u.RezervacijaID = model.Ulaznica.RezervacijaID; u.PrikazivanjeID = p.PrikazivanjeID; db.Ulaznica.Add(u); int cijena = Convert.ToInt32(p.Cijena); if (k.BrojTokena > cijena) { k.BrojTokena -= cijena; db.Kupac.Update(k); db.SaveChanges(); db.Dispose(); return(RedirectToAction("MojeUlaznice")); } else { TempData["error_poruka"] = "Nemate dovoljan broj tokena da platite ulaznicu!"; return(RedirectToAction("MojeUlaznice")); } }
public static void DodavanjeUlaznica() { Console.WriteLine("Unesite cenu ulaznice: "); double cena = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Unesite tip ulaznice: O ili V"); string unosTipa = Console.ReadLine(); TipUlaznice tip; if (unosTipa == "V") { tip = TipUlaznice.VIP; } else { tip = TipUlaznice.OBICNA; } Console.WriteLine("Unesite id dogadjaja: "); string idDogadjajaString = Console.ReadLine(); int idDogadjaja = int.Parse(idDogadjajaString); Dogadjaj noviDogadjaj = PronadjiDogadjajPoId(idDogadjaja); Console.WriteLine("Unesite jmbg osobe: "); string jmbgString = Console.ReadLine(); Osoba novaOsoba = PronadjiOsobuPoJmbg(jmbgString); int id = GenerisiNoviIdUlaznice(); Ulaznica novaUlaznica = new Ulaznica(id, cena, tip, noviDogadjaj, novaOsoba); Podaci.listaUlaznica.Add(novaUlaznica); }
public IActionResult KupiUlaznicu(int id) { KorisnickiNalog korisnik = HttpContext.GetLogiraniKorisnik(); MyContext db = new MyContext(); Rezervacija r = db.Rezervacija.Where(x => x.RezervacijaID == id).FirstOrDefault(); Prikazivanje p = db.Prikazivanje.Where(x => x.PrikazivanjeID == r.PrikazivanjeID).FirstOrDefault(); List <Ulaznica> ul = db.Ulaznica.Where(x => x.PrikazivanjeID == p.PrikazivanjeID).Include(x => x.Sjediste).Include(x => x.Prikazivanje).ThenInclude(x => x.Sala) /*.Select(x=>x.SjedisteID)*/.ToList(); Ulaznica u = db.Ulaznica.Where(x => x.PrikazivanjeID == p.PrikazivanjeID).FirstOrDefault(); List <Sjediste> sjed = db.Sjediste.ToList(); List <Sjediste> sjed2 = ul.Select(x => x.Sjediste).ToList(); var lista = sjed.Except(sjed2); UlaznicaDodajVM model = new UlaznicaDodajVM() { Ulaznica = new Ulaznica() { RezervacijaID = id }, KupacId = korisnik.KorisnickiNalogID, Kupac = db.Kupac.Where(x => x.KorisnickiNalogID == korisnik.KorisnickiNalogID).Select(x => x.Ime + " " + x.Prezime).FirstOrDefault(), Prikazivanje = db.Rezervacija.Where(y => y.RezervacijaID == id).Include(y => y.Prikazivanje).ThenInclude(y => y.Predstava).Select(y => y.Prikazivanje.Predstava.Naziv + " / " + y.Prikazivanje.DatumPrikazivanja).FirstOrDefault(), Cijena = db.Rezervacija.Where(y => y.RezervacijaID == id).Include(y => y.Prikazivanje).Select(y => y.Prikazivanje.Cijena).FirstOrDefault(), Sjedista = lista.Select(m => new SelectListItem() { Value = m.SjedisteID.ToString(), Text = /*m.Sala.Naziv + ";*/ "Red: " + m.Red + " ; Kolona: " + m.Kolona }).ToList(), }; return(View(model)); }
public UlazniceInfoPage2(Ulaznica ulaznica) { InitializeComponent(); BindingContext = UlaznicaSimpleDetailVM = new UlaznicaSimpleDetailVM() { ulaznica = ulaznica }; }
public static void BrisanjeUlaznica() { Console.WriteLine("Unesite id ulaznice koju cete obrisati: "); string idString = Console.ReadLine(); int id = int.Parse(idString); Ulaznica u = PronadjiUlaznicuPoId(id); Podaci.listaUlaznica.Remove(u); }
private async void FrmUlazniceDetalji_Load(object sender, EventArgs e) { await LoadUtakmica(); await LoadKorisnici(); if (_id.HasValue) { Ulaznica a = await _apiService.GetById <Ulaznica>(_id); Sjedalo sjedalo = await _apiServiceSjedala.GetById <Sjedalo>(a.SjedaloID); cbUtakmica.SelectedValue = int.Parse(a.UtakmicaID.ToString()); cbSektor.SelectedValue = int.Parse(sjedalo.SektorID.ToString()); cbKorisnik.SelectedValue = int.Parse(a.KorisnikID.ToString()); cbSjedala.SelectedValue = int.Parse(a.SjedaloID.ToString()); dtpDatum.Value = a.DatumKupnje; dtpVrijeme.Value = a.VrijemeKupnje; } }
/// <summary> /// Representing method for Load data /// </summary> public static void LoadData() { StreamReader personReader = new StreamReader(lokacije + "\\data\\" + "osobe.csv"); StreamReader ticketReader = new StreamReader(lokacije + "\\data\\" + "ulaznice.csv"); StreamReader dogadjajReader = new StreamReader(lokacije + "\\data\\" + "dogadjaji.csv"); string personLine; string ticketLine; string dogadjajLine; while ((personLine = personReader.ReadLine()) != null) { if (!string.IsNullOrEmpty(personLine)) { Osoba osobaLoad = new Osoba(personLine); listaOsoba.Add(osobaLoad); } } while ((dogadjajLine = dogadjajReader.ReadLine()) != null) { if (!string.IsNullOrEmpty(dogadjajLine)) { Dogadjaj dogadjajLoad = new Dogadjaj(dogadjajLine, listaDogadjaja); listaDogadjaja.Add(dogadjajLoad); } } while ((ticketLine = ticketReader.ReadLine()) != null) { if (!string.IsNullOrEmpty(ticketLine)) { Ulaznica ulaznicaLoad = new Ulaznica(ticketLine, listaDogadjaja, listaOsoba); listaUlaznica.Add(ulaznicaLoad); } } personReader.Close(); ticketReader.Close(); dogadjajReader.Close(); }
/// <summary> /// Representing method for deleting ticket /// </summary> public void DeleteTicket() { WriteTickets(); Console.Write("Enter a ID:"); int idDelete = Helper.CheckInt(); Console.Clear(); Ulaznica ulaznicaDelete = listaUlaznica.Where(x => x.ID == idDelete).FirstOrDefault(); if (ulaznicaDelete != null) { listaUlaznica.Remove(ulaznicaDelete); Console.Clear(); SaveTickets(); Console.WriteLine("Ulaznice ja uspesno obrisana!"); } else { Console.Clear(); Console.WriteLine("That ticket does not exits!"); } }
public async Task Init() { IsBusy = true; UlaznicaUpsertRequest req = new UlaznicaUpsertRequest(); req.KupacId = rezervacija.KupacId; req.PrikazivanjeId = rezervacija.PrikazivanjeId; req.SjedisteId = odabranoSjedalo.SjedisteId; req.RezervacijaId = rezervacija.RezervacijaId; Kupac x = await _kupac.GetById <Kupac>(req.KupacId); Prikazivanje y = await _prikazivanje.GetById <Prikazivanje>(req.PrikazivanjeId); int z = Convert.ToInt32(y.Cijena); if (x.BrojTokena < z) { await Application.Current.MainPage.DisplayAlert("Greška", "Nedovoljan broj tokena", "OK"); return; } Ulaznica ulaznica = await _ulaznica.Insert <Ulaznica>(req); qrCode = ulaznica.Qrkod; await Application.Current.MainPage.DisplayAlert(" ", "Izvršeno", "OK"); x.BrojTokena -= z; await _kupac.Update <Kupac>(req.KupacId, x); }
private static void UcitajUlaznice(string imeFajla) { /* Otvaramo datoteku */ System.IO.StreamReader file = new System.IO.StreamReader(imeFajla); string linija; while (true) { /* Pokusavamo da ocitamo sledecu liniju teksta iz datoteke */ linija = file.ReadLine(); /* Ako smo dosli do kraja datoteke, zaustavljamo petlju */ if (linija == null) { break; } /* Razdvajamo ocitanu liniju na delove */ string[] deloviLinije = linija.Split(','); /* Interpretiramo delove linije kao podatke o sportskom dogadjaju */ /* ID nam je celobrojni tip. Moramo prvo proveriti da li je moguca konverzija iz tekstualnog u celobrojni. */ int id; /* Ukoliko konverzija nije uspela, preskocicemo ovaj red u datoteci - prelazimo na sledeci */ if (!int.TryParse(deloviLinije[0], out id)) { continue; } /* Ukoliko je konverzija uspela, nastavljamo dalje */ /* Cena nam je realni broj. Moramo prvo proveriti da li je moguca konverzija iz teksta u realni broj */ double cena; if (!double.TryParse(deloviLinije[1], out cena)) { continue; } /* Tip ulaznice je u programu enumeracija, a u datoteci jedan karakter koji bi trebalo da bude ili "O" ili "V". Moramo sada proveriti koji se karakter nalazi u datoteci, i napraviti odgovarajucu instancu enumeracije. */ string tipUlazniceString = deloviLinije[2]; TipUlaznice tip; if (tipUlazniceString == "O") { tip = TipUlaznice.OBICNA; } else if (tipUlazniceString == "V") { tip = TipUlaznice.VIP; } else { continue; } /* Ulaznica i dogadjaj su vezani jednosmernom asocijacijom - Svaka ulaznica bi trebalo da zna za dogadjaj za koji je namenjena. U C# kodu smo to realizovali ubacivanjem reference na dogadjaj u klasu Ulaznica. U datoteci je veza realizovana tako sto svaka ulaznica u sebi ima zapisan id dogadjaja za koji je namenjena. * * Nama nije cilj da u objektu ulaznice stoji "int id" dogadjaja, vec referenca na postojeci objekat odgovarajuceg dogadjaja. * * Zbog toga nam je zadatak da ocitamo id dogadjaja iz datoteke, potom pronadjemo odgovarajuci dogadjaj iz staticke liste u kojoj cuvamo sve dogadjaje, i njegovu referencu smestimo u novi objekat ulaznice koji pravimo na kraju ove metode */ int idDogadjaja; if (!int.TryParse(deloviLinije[3], out idDogadjaja)) { continue; } Dogadjaj dogadjaj = RukovanjeEntitetima.PronadjiDogadjajPoId(idDogadjaja); /* Slicno radimo i za osobe - od procitanog JMBG-a moramo da pronadjemo referencu na odgovarajuci objekat osobe u statickoj listi svih osoba */ string jmbgOsobe = deloviLinije[4]; Osoba osoba = RukovanjeEntitetima.PronadjiOsobuPoJMBG(jmbgOsobe); /* Koristeci ocitane podatke i pronadjene reference, pravimo novu ulaznicu */ Ulaznica novaUlaznica = new Ulaznica(id, cena, tip, dogadjaj, osoba); /* Ubacujemo novu ulaznicu u staticku listu svih ulaznica */ Podaci.listaUlaznica.Add(novaUlaznica); } }
/// <summary> /// Representing method for add tickets /// </summary> public void AddTicket() { Console.Write("Unesite mesto:"); string mestoAdd = Helper.CheckString(); Console.Clear(); Console.Write("Unesite vreme:"); DateTime vremeAdd = Helper.CheckDateTime(); Console.Clear(); Console.Write("Unesite cenu ulaznice:"); double cenaAdd = Helper.CheckDouble(); Console.Clear(); TicketType ticketType; do { Console.Clear(); Console.WriteLine("1.VIP"); Console.WriteLine("2.Obicna"); Console.Write("Unesite tip ulaznice(VIP ili Obicna):"); Enum.TryParse(Console.ReadLine(), out ticketType); } while (Enum.IsDefined(typeof(TicketType), ticketType) == false); Console.Clear(); WriteMuzickeDogadjaje(); WriteSportskeDogadjaje(); Console.Write("Unesite ID dogadjaja ili unesite 0 za kreiranje novog:"); int dogadjajID = Helper.CheckInt(); Dogadjaj dogadjaj = null; if (dogadjajID == 0) { int id = AddDogadjaj(); dogadjaj = listaDogadjaja.Where(x => x.ID == id).FirstOrDefault(); } else { dogadjaj = listaDogadjaja.Where(x => x.ID == dogadjajID).FirstOrDefault(); } Console.Clear(); WriteAllPersons(); Console.Write("Unesite ID osobe ili unesite 0 da kreirate novu:"); int personID = Helper.CheckInt(); Osoba osoba = null; if (personID == 0) { int id = AddPerson(); osoba = listaOsoba.Where(x => x.ID == id).FirstOrDefault(); } else { osoba = listaOsoba.Where(x => x.ID == personID).FirstOrDefault(); } if (dogadjaj.BrojUlaznica != 0) { dogadjaj.BrojUlaznica -= 1; if (listaUlaznica.Count == 0) { Ulaznica ulaznicaAdd = new Ulaznica { ID = 1, Mesto = mestoAdd, Vreme = vremeAdd, Cena = cenaAdd, VrstaUlaznice = ticketType, Dogadjaj = dogadjaj, Osoba = osoba }; listaUlaznica.Add(ulaznicaAdd); } else { Ulaznica ulaznicaAdd = new Ulaznica { ID = listaUlaznica.Max(x => x.ID) + 1, Mesto = mestoAdd, Vreme = vremeAdd, Cena = cenaAdd, VrstaUlaznice = ticketType, Dogadjaj = dogadjaj, Osoba = osoba }; listaUlaznica.Add(ulaznicaAdd); } SaveTickets(); SaveDogadjaje(); Console.Clear(); Console.WriteLine("Ulaznica je uspesno dodata!"); } else { Console.WriteLine("Dostigli ste maksimum pravljenja ulaznica!"); } }
private async void BtnSacuvaj_Click(object sender, EventArgs e) { if (this.ValidateChildren()) { int prosloSjedalo = -1; int proslaUtakmica = -1; int prosliKorisnik = -1; if (_id.HasValue) { Ulaznica u = await _apiService.GetById <Ulaznica>(_id); prosloSjedalo = u.SjedaloID; proslaUtakmica = u.UtakmicaID; prosliKorisnik = u.KorisnikID; } Korisnik k = await _apiServiceKorisnici.GetById <Korisnik>(int.Parse(cbKorisnik.SelectedValue.ToString())); var req = new UlazniceInsertRequest() { DatumKupnje = dtpDatum.Value.Date + dtpVrijeme.Value.TimeOfDay, VrijemeKupnje = dtpDatum.Value.Date + dtpVrijeme.Value.TimeOfDay, KorisnikID = int.Parse(cbKorisnik.SelectedValue.ToString()), SjedaloID = int.Parse(cbSjedala.SelectedValue.ToString()), UtakmicaID = int.Parse(cbUtakmica.SelectedValue.ToString()) }; Sjedalo s1 = await _apiServiceSjedala.GetById <Sjedalo>(req.SjedaloID); s1.Status = true; SjedalaInsertRequest r1 = new SjedalaInsertRequest() { Oznaka = s1.Oznaka, SektorID = s1.SektorID, Status = s1.Status }; Sjedalo s2 = null; SjedalaInsertRequest r2 = null; if (prosloSjedalo != -1) { s2 = await _apiServiceSjedala.GetById <Sjedalo>(prosloSjedalo); s2.Status = false; r2 = new SjedalaInsertRequest(); r2.Oznaka = s2.Oznaka; r2.SektorID = s2.SektorID; r2.Status = s2.Status; } if (_id.HasValue) { int i = (int)_id; await _apiService.Update <dynamic>(i, req); await _apiServiceSjedala.Update <dynamic>(s1.SjedaloID, r1); if (prosloSjedalo != -1) { await _apiServiceSjedala.Update <dynamic>(s2.SjedaloID, r2); } } else { await _apiService.Insert <dynamic>(req); await _apiServiceSjedala.Update <dynamic>(s1.SjedaloID, r1); } //spremanje u preporuke //update if (proslaUtakmica != -1 || prosliKorisnik != -1) { Utakmica proslaU = await _apiServiceUtakmica.GetById <Utakmica>(proslaUtakmica); List <Preporuka> preporuke = await _apiServicePreporuke.Get <List <Preporuka> >(new PreporukaSearchRequest() { KorisnikID = prosliKorisnik, PrviTimID = proslaU.DomaciTimID, DrugiTimID = proslaU.GostujuciTimID }); foreach (var p in preporuke) { p.BrojKupljenihUlaznica--; await _apiServicePreporuke.Update <Preporuka>(p.PreporukaID, new PreporukaInsertRequest() { BrojKupljenihUlaznica = p.BrojKupljenihUlaznica, KorisnikID = p.KorisnikID, TimID = p.TimID }); } } //insert Utakmica utakmica = await _apiServiceUtakmica.GetById <Utakmica>(req.UtakmicaID); var prviTim = utakmica.DomaciTimID; var drugiTim = utakmica.GostujuciTimID; List <Preporuka> rezultat = await _apiServicePreporuke.Get <List <Preporuka> >(new PreporukaSearchRequest() { KorisnikID = k.KorisnikID, PrviTimID = prviTim, DrugiTimID = drugiTim }); if (rezultat.Count == 1) { rezultat[0].BrojKupljenihUlaznica++; PreporukaInsertRequest reqP = null; if (rezultat[0].TimID == prviTim) { reqP = new PreporukaInsertRequest { TimID = drugiTim, BrojKupljenihUlaznica = 1, KorisnikID = k.KorisnikID }; } else { reqP = new PreporukaInsertRequest { TimID = prviTim, BrojKupljenihUlaznica = 1, KorisnikID = k.KorisnikID }; } PreporukaInsertRequest reqPU = new PreporukaInsertRequest { TimID = rezultat[0].TimID, KorisnikID = rezultat[0].KorisnikID, BrojKupljenihUlaznica = rezultat[0].BrojKupljenihUlaznica }; await _apiServicePreporuke.Insert <Preporuka>(reqP); await _apiServicePreporuke.Update <Preporuka>(rezultat[0].PreporukaID, reqPU); } else if (rezultat.Count == 2) { PreporukaInsertRequest req1 = new PreporukaInsertRequest { TimID = rezultat[0].TimID, BrojKupljenihUlaznica = ++rezultat[0].BrojKupljenihUlaznica, KorisnikID = rezultat[0].KorisnikID }; PreporukaInsertRequest req2 = new PreporukaInsertRequest { TimID = rezultat[1].TimID, BrojKupljenihUlaznica = ++rezultat[1].BrojKupljenihUlaznica, KorisnikID = rezultat[1].KorisnikID }; await _apiServicePreporuke.Update <Preporuka>(rezultat[0].PreporukaID, req1); await _apiServicePreporuke.Update <Preporuka>(rezultat[1].PreporukaID, req2); } else//ako je 0 { PreporukaInsertRequest req1 = new PreporukaInsertRequest { TimID = prviTim, BrojKupljenihUlaznica = 1, KorisnikID = k.KorisnikID }; PreporukaInsertRequest req2 = new PreporukaInsertRequest { TimID = drugiTim, BrojKupljenihUlaznica = 1, KorisnikID = k.KorisnikID }; await _apiServicePreporuke.Insert <Preporuka>(req1); await _apiServicePreporuke.Insert <Preporuka>(req2); } MessageBox.Show("Operacija uspjela"); this.Close(); } else { MessageBox.Show("Operacija nije uspjela!"); this.Close(); } }
public FinalPage(Ulaznica ulaznica, string brojKartice, DateTime datumIsteka, string cvv) { InitializeComponent(); }