Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 3
0
        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;
            }
        }
Ejemplo n.º 7
0
        /// <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();
        }
Ejemplo n.º 8
0
        /// <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);
            }
        }
Ejemplo n.º 11
0
        /// <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();
            }
        }
Ejemplo n.º 13
0
 public FinalPage(Ulaznica ulaznica, string brojKartice, DateTime datumIsteka, string cvv)
 {
     InitializeComponent();
 }