Exemplo n.º 1
0
        public async Task <IActionResult> GetProjekcijeByProjekcijaId(int id)
        {
            var projekcija = new ProjekcijeViewModel(await _projekcijeService.GetById <Model.Projekcije>(id));
            var sjedista   = new SjedistaViewModel(await _sjedistaService.GetById <Model.Sjedista>(projekcija.SalaID));
            SjedistaSearchRequest search = new SjedistaSearchRequest();

            search.SalaID = projekcija.SalaID;
            var listaSjedista = (await _sjedistaService.Get <List <Model.Sjedista> >(search)).Select(x => new SjedistaViewModel(x)).ToList();
            ProjekcijeSjedistaViewModel model   = new ProjekcijeSjedistaViewModel();
            UlazniceSearchRequest       search2 = new UlazniceSearchRequest();

            search2.ProjekcijaID = projekcija.ProjekcijaID;
            var ulaznice = (await _ulazniceService.Get <List <Model.Ulaznice> >(search2)).Select(x => new UlazniceViewModel(x)).ToList();

            foreach (var ulaznica in ulaznice)
            {
                var odabranoSjediste = listaSjedista.FirstOrDefault(x => x.SjedisteID == ulaznica.SjedisteID);
                if (odabranoSjediste != null)
                {
                    odabranoSjediste.Zauzeto = true;
                }
            }
            model.brojRedova = Convert.ToInt32(listaSjedista.Max(x => x.OznakaReda));
            model.brojKolona = Convert.ToInt32(listaSjedista.Max(x => x.OznakaReda));
            model.projekcija = projekcija;
            model.sjedista   = listaSjedista;

            return(PartialView("_sjedistaGrid", model));
        }
        private async Task LoadSjedista(int id)
        {
            var search = new SjedistaSearchRequest()
            {
                SalaID = id
            };
            var list = await _apiService.Get <List <Model.Sjedista> >(search);

            dgvSjedista.AutoGenerateColumns = false;
            dgvSjedista.DataSource          = list;
        }
Exemplo n.º 3
0
        public async Task Init()
        {
            IsBusy = true;
            var          username   = APIService.Username;
            List <Kupci> listKupaca = await _apiServiceKupci.Get <List <Kupci> >(null);

            Kupac = listKupaca.FirstOrDefault(x => x.KorisnickoIme == username);

            SjedistaSearchRequest search = new SjedistaSearchRequest();

            search.SalaID = Projekcija.SalaID;
            var listaSjedista = await _apiServiceSjedista.Get <List <Sjedista> >(search);

            UlazniceSearchRequest search2 = new UlazniceSearchRequest();

            search2.ProjekcijaID = Projekcija.ProjekcijaID;
            var ulaznice = await _apiServiceUlaznice.Get <List <Model.Ulaznice> >(search2);

            var brojRedova = listaSjedista.Max(x => x.OznakaReda);
            var brojKolona = listaSjedista.Max(x => x.OznakaKolone);

            if (int.TryParse(brojRedova, out int brojReda))
            {
                BrojRedova = brojReda;
            }
            if (int.TryParse(brojKolona, out int brojKolon))
            {
                BrojKolona = brojKolon;
            }
            foreach (var ulaznica in ulaznice)
            {
                var odabranoSjediste = listaSjedista.FirstOrDefault(x => x.SjedisteID == ulaznica.SjedisteID);
                if (odabranoSjediste != null)
                {
                    odabranoSjediste.Zauzeto = true;
                }
            }
            Ulaznica = new Ulaznice()
            {
                Datum            = DateTime.Now,
                KupacID          = Kupac.KupacID,
                Popust           = 0,
                ProjekcijaID     = Projekcija.ProjekcijaID,
                CijenaSaPopustom = Projekcija.Cijena
            };
            SjedistaList.Clear();
            foreach (var sjediste in listaSjedista)
            {
                SjedistaList.Add(sjediste);
            }
        }
Exemplo n.º 4
0
        public async Task Init()
        {
            IsBusy = true;
            var             username = APIService.Username;
            List <Gledaoci> gledaoci = await _gledaoci.Get <List <Gledaoci> >(null);

            foreach (var item in gledaoci)
            {
                if (item.KorisnickoIme == username)
                {
                    Gledalac = item;
                    break;
                }
            }
            var projekcija = await _projekcije.GetById <Model.Projekcije>(rezervacija.ProjekcijaId);

            SjedistaSearchRequest request = new SjedistaSearchRequest()
            {
                SalaId = projekcija.SalaId
            };
            var list = await _sjedista.Get <List <Sjedista> >(request);

            BrojSjedista = 0;
            SjedistaList.Clear();
            foreach (var sjedalo in list)
            {
                SjedistaList.Add(sjedalo);
                BrojSjedista++;
            }
            if (BrojSjedista > 6)
            {
                BrojRedova = BrojSjedista / 6;
            }
            else
            {
                BrojRedova = 1;
            }

            UlazniceList = await _ulaznice.Get <List <Ulaznice> >(null);

            IsBusy = false;
        }
Exemplo n.º 5
0
 public List <Model.Sjedista> Get([FromQuery] SjedistaSearchRequest request)
 {
     return(_service.Get(request));
 }
        private async void cmbProjekcije_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cmbProjekcije.SelectedIndex > 0)
            {
                var projekcija = await _projekcije.GetById <Model.Projekcije>(cmbProjekcije.SelectedValue);

                MemoryStream stream = new MemoryStream(projekcija.Sala.Slika);
                pictureBox.Image = Image.FromStream(stream);

                SjedistaSearchRequest request = new SjedistaSearchRequest()
                {
                    SalaId = projekcija.SalaId
                };
                var sjedista = await _sjedista.Get <List <Model.Sjedista> >(request);

                UlazniceSearchRequest search = new UlazniceSearchRequest()
                {
                    ProjekcijaId  = int.Parse(cmbProjekcije.SelectedValue.ToString()),
                    RezervacijaId = Id
                };
                var sveUlaznice = await _ulaznice.Get <List <Model.Ulaznice> >(null);

                var novaSjedista = new List <Model.Sjedista>();
                var mojaSjedista = new List <Model.Sjedista>();

                foreach (var item in sjedista)
                {
                    bool ima = true;
                    foreach (var item2 in sveUlaznice)
                    {
                        if (item.SjedisteId == item2.SjedisteId && item2.Status == true && item2.RezervacijaId == Id)
                        {
                            mojaSjedista.Add(item);
                        }
                        if (item.SjedisteId == item2.SjedisteId && item2.Status && item2.RezervacijaId != Id)
                        {
                            ima = false;
                        }
                    }
                    if (ima)
                    {
                        novaSjedista.Add(item);
                    }
                }

                clbSjedista.DataSource    = novaSjedista;
                clbSjedista.DisplayMember = "Ispis";
                clbSjedista.ValueMember   = "SjedisteId";

                for (int i = 0; i < clbSjedista.Items.Count; i++)
                {
                    foreach (var item2 in mojaSjedista)
                    {
                        var s = (Model.Sjedista)clbSjedista.Items[i];
                        if (s.SjedisteId == item2.SjedisteId)
                        {
                            clbSjedista.SetItemCheckState(i, CheckState.Checked);
                        }
                    }
                }
            }
        }
Exemplo n.º 7
0
        public async void NapraviRezervaciju(string redKolona, int projekcijaId)
        {
            var projekcija = await _projekcije.GetById <Model.Projekcije>(projekcijaId);

            SjedistaSearchRequest search = new SjedistaSearchRequest
            {
                SalaId = projekcija.SalaId
            };
            var sjedista = await _sjedista.Get <List <Model.Sjedista> >(search);

            int sjedisteId = 0;

            foreach (var item in sjedista)
            {
                if (item.Red + item.Kolona == redKolona)
                {
                    sjedisteId = item.SjedisteId;
                    break;
                }
            }


            //provjera da li je sjedište zauzeto
            var ulaznice = await _ulaznice.Get <List <Model.Ulaznice> >(null);

            bool zauzeto = false;

            foreach (var item in ulaznice)
            {
                if (item.ProjekcijaId == projekcija.ProjekcijaId && item.SjedisteId == sjedisteId && item.Status)
                {
                    zauzeto = true;
                    break;
                }
            }
            if (zauzeto)
            {
                await Application.Current.MainPage.DisplayAlert("Rezervacija", "Sjedište je zauzeto. Molimo pokušajte ponovo.", "OK");
            }
            else
            {
                GledaociSearchRequest request = new GledaociSearchRequest()
                {
                    Username = APIService.Username
                };
                var listaGledaoci = await _gledaoci.Get <List <Model.Gledaoci> >(request);

                var gledalac = listaGledaoci[0].GledalacId;



                //provjera da li je gledalac već rezervsao, ako jeste samo će se uvećati broj karata i dodati nova ulaznica
                var rezervacije = await _rezervacije.Get <List <Model.Rezervacije> >(null);

                bool rezervisao           = false;
                int  rezervacijaPostojeca = 0;
                int  brojKarataPostojeca  = 0;
                foreach (var item in rezervacije)
                {
                    if (item.GledalacId == gledalac && item.ProjekcijaId == projekcija.ProjekcijaId && item.Status == true)
                    {
                        rezervisao           = true;
                        rezervacijaPostojeca = item.RezervacijaId;
                        brojKarataPostojeca  = item.BrojKarata;
                    }
                }
                /////////////////////////////////////////////////////////////////////////////////////



                if (!rezervisao)
                {
                    RezervacijeUpsertRequest request2 = new RezervacijeUpsertRequest()
                    {
                        BrojKarata       = 1,
                        Cijena           = projekcija.Cijena,
                        DatumRezervacije = DateTime.Now,
                        GledalacId       = gledalac,
                        ProjekcijaId     = projekcija.ProjekcijaId,
                        Status           = true,
                        mobilna          = true
                    };

                    var r = await _rezervacije.Insert <Model.Rezervacije>(request2);

                    UlazniceUpsertRequest request3 = new UlazniceUpsertRequest()
                    {
                        GledalacId    = gledalac,
                        Cijena        = projekcija.Cijena,
                        ProjekcijaId  = projekcija.ProjekcijaId,
                        RezervacijaId = r.RezervacijaId,
                        Status        = true,
                        SjedisteId    = sjedisteId,
                        QRtekst       =
                            $"{listaGledaoci[0].Ime + " " + listaGledaoci[0].Prezime + "\n" + "Film: " + projekcija.Film.Naziv + "\n" + "Sala: " + projekcija.Sala.Naziv + "\n" + "Vrijeme prikazivanja projekcije: " + projekcija.DatumVrijemeOdrzavanja}"
                    };
                    await _ulaznice.Insert <Model.Ulaznice>(request3);

                    await Application.Current.MainPage.DisplayAlert("Rezervacija", "Uspješno ste rezervisali ulaznicu. Ulaznicu/e možete pogledati u sekciji 'Ulaznice'", "OK");
                }
                else
                {
                    RezervacijeUpsertRequest requestUrediRezervaciju = new RezervacijeUpsertRequest()
                    {
                        Cijena           = projekcija.Cijena * (brojKarataPostojeca + 1),
                        DatumRezervacije = DateTime.Now,
                        GledalacId       = gledalac,
                        ProjekcijaId     = projekcija.ProjekcijaId,
                        Status           = true,
                        BrojKarata       = brojKarataPostojeca + 1,
                        mobilna          = true
                    };
                    var r = await _rezervacije.Update <Model.Rezervacije>(rezervacijaPostojeca, requestUrediRezervaciju);

                    UlazniceUpsertRequest request3 = new UlazniceUpsertRequest()
                    {
                        GledalacId    = gledalac,
                        Cijena        = projekcija.Cijena,
                        ProjekcijaId  = projekcija.ProjekcijaId,
                        RezervacijaId = r.RezervacijaId,
                        Status        = true,
                        SjedisteId    = sjedisteId,
                        QRtekst       = $"{listaGledaoci[0].Ime + " " + listaGledaoci[0].Prezime + "\n" + "Film: " + projekcija.Film.Naziv + "\n" + "Sala: " + projekcija.Sala.Naziv + "\n" + "Vrijeme prikazivanja projekcije: " + projekcija.DatumVrijemeOdrzavanja}"
                    };
                    await _ulaznice.Insert <Model.Ulaznice>(request3);

                    await Application.Current.MainPage.DisplayAlert("Rezervacija", "Uspješno ste rezervisali ulaznicu. Ulaznicu/e možete pogledati u sekciji 'Ulaznice'", "OK");
                }
            }
        }