public async Task <IActionResult> Otkazi(int id)
        {
            var resReze = await _rezervacijeService.GetById(id);

            if (resReze.IsSuccessStatusCode)
            {
                var rezervacija = JsonConvert.DeserializeObject <Model.Rezervacija>(resReze.Content.ReadAsStringAsync().Result);

                if (rezervacija != null)
                {
                    var update = new RezervacijaUpsertRequest()
                    {
                        DatumIsteka    = rezervacija.DatumIsteka,
                        DatumKreiranja = rezervacija.DatumKreiranja,
                        KartaId        = rezervacija.KartaId,
                        Otkazana       = true,
                        PutnikId       = rezervacija.PutnikId,
                        Qrcode         = rezervacija.Qrcode
                    };

                    await _rezervacijeService.Update(rezervacija.Id, update);

                    ViewData["poruka"] = "Uspješno ste otkazali rezervaciju";

                    return(RedirectToAction("Prikaz"));
                }
            }
            ViewData["error"] = "Greška na serveru";

            return(RedirectToAction("Prikaz"));
        }
Пример #2
0
        public async Task DodajPregled()
        {
            IsBusy = true;
            await _pregled.Insert <Pregled>(new PregledUpsertRequest()
            {
                Naziv              = _naziv,
                Opis               = _opis,
                DatumVrijeme       = _datumVrijeme,
                KorisnikId         = _korisnikId,
                DijagnozaId        = _dijagnozaId,
                LijekId            = _lijekId,
                MedicinskiKartonId = _medicinskiKartonId,
                RezervacijaId      = _rezervacijaId
            });

            RezervacijaUpsertRequest rezervacijaRequest = new RezervacijaUpsertRequest();
            var listaRezervacija = await _rezervacija.Get <List <Model.Rezervacija> >(null);

            foreach (var item in listaRezervacija)
            {
                if (item.RezervacijaId == _rezervacijaId)
                {
                    rezervacijaRequest.DatumVrijeme = item.DatumVrijeme;
                    rezervacijaRequest.PacijentId   = item.PacijentId;
                    rezervacijaRequest.UslugaId     = item.UslugaId;
                    rezervacijaRequest.Razlog       = item.Razlog;
                    rezervacijaRequest.Aktivna      = false;
                    await _rezervacija.Update <Model.Rezervacija>(_rezervacijaId, rezervacijaRequest);
                }
            }
            await Application.Current.MainPage.DisplayAlert(" ", "Uspješno sačuvani podaci", "OK");
        }
        public Model.Rezervacija Insert(RezervacijaUpsertRequest request)
        {
            var entity = _mapper.Map <Database.Rezervacije>(request);

            _context.Rezervacije.Add(entity);
            _context.SaveChanges();
            return(_mapper.Map <Model.Rezervacija>(entity));
        }
        public Model.Rezervacija Update(int id, RezervacijaUpsertRequest request)
        {
            var entity = _context.Rezervacije.Find(id);

            _context.Rezervacije.Attach(entity);
            _context.Rezervacije.Update(entity);
            _mapper.Map(request, entity);
            _context.SaveChanges();
            return(_mapper.Map <Model.Rezervacija>(entity));
        }
        public async Task MainReservation()
        {
            try
            {
                RezervacijaUpsertRequest request = new RezervacijaUpsertRequest
                {
                    VoznjaID = voznjaID
                };
                var x = await _rezervacija.Insert <Rezervacija>(request);

                if (x != null)
                {
                    await Application.Current.MainPage.Navigation.PushModalAsync(new PaymentPage(voznjaID));
                }
            }
            catch (Exception)
            {
            }
        }
Пример #6
0
        public async Task KupiKartu(Sjediste s, DateTime datum, TimeSpan vrijemePolaska)
        {
            var reze = new RezervacijaUpsertRequest();

            var searchP = new PutnikSearchRequest()
            {
                KorisnickoIme = APIService.KorisnickoIme
            };
            var listaPutnika = await __putniciService.Get <List <Putnik> >(searchP);

            Putnik putnik = null;

            foreach (var item in listaPutnika)
            {
                if (item.KorisnickoIme == APIService.KorisnickoIme)
                {
                    putnik = item;
                    break;
                }
            }

            var searchKa = new KartaSearchRequest()
            {
                PoAngzuje      = false,
                PoVozilu       = true,
                Red            = s.Red,
                Kolona         = s.Kolona,
                PoDatumu       = true,
                DatumIzdavanja = datum,
                IzSjedista     = false,
                PoVremenu      = true,
                VrijemePolaska = vrijemePolaska
            };

            var listaKarata = await __karteService.Get <List <Karta> >(searchKa);

            Karta karta = null;

            foreach (var item in listaKarata)
            {
                if (item.Sjediste.VoziloId == _voziloid && item.AngazujeId == Angazman)
                {
                    karta = item;
                    break;
                }
            }

            if (karta == null)
            {
                await Application.Current.MainPage.DisplayAlert(" ", "Trenutno karta nije kreirana", "OK");
            }
            else if (karta.DatumIzdavanja.Date < DateTime.Now.Date)
            {
                await Application.Current.MainPage.DisplayAlert(" ", "Niste u mogučnosti rezervisati", "OK");
            }
            else if (karta.DatumIzdavanja.Date == DateTime.Now.Date && karta.VrijemePolaska < DateTime.Now.TimeOfDay)
            {
                await Application.Current.MainPage.DisplayAlert(" ", "Vrijeme koje ste izabrali je isteklo", "OK");
            }
            else
            {
                var cijena = await _cijenaService.Get <List <Cijena> >(new CijenaSearchRequest()
                {
                    KompanijaID = s.Vozilo.KompanijaId,
                    LinijaID    = karta.Angazuje.LinijaId
                });

                reze.KartaId        = karta.Id;
                reze.PutnikId       = putnik.Id;
                reze.DatumKreiranja = DateTime.Now;
                reze.DatumIsteka    = karta.DatumIzdavanja.AddDays(1);
                reze.Otkazana       = false;


                if (DateTime.Now.Date.Year - putnik.DatumRodjenja.Value.Date.Year > 50 || DateTime.Now.Date.Year - putnik.DatumRodjenja.Value.Date.Year < 18)
                {
                    reze.CijenaSaPopustom = cijena[0].Popust == 0 ? cijena[0].Iznos :cijena[0].Iznos - (cijena[0].Iznos * decimal.Parse(cijena[0].Popust.Value.ToString()));
                }
                else
                {
                    reze.CijenaSaPopustom = cijena[0].Iznos;
                }



                await __rezervacijaService.Insert <Rezervacija>(reze);

                await Application.Current.MainPage.DisplayAlert(" ", "Uspješno ste kreirali rezervaciju", "OK");
            }
        }
 public Model.Rezervacija Update(int id, [FromBody] RezervacijaUpsertRequest request)
 {
     return(_service.Update(id, request));
 }
 public Model.Rezervacija Insert(RezervacijaUpsertRequest request)
 {
     return(_service.Insert(request));
 }
Пример #9
0
        private async void btnSnimi_Click(object sender, EventArgs e)
        {
            if (this.ValidateChildren() && ValidateCmb())
            {
                var idObj = cmbLjekar.SelectedValue;
                if (int.TryParse(idObj.ToString(), out int ljekarId))
                {
                    request.KorisnikId = ljekarId;
                }

                var idObj2 = cmbRezervacija.SelectedValue;
                if (int.TryParse(idObj2.ToString(), out int rezervacijaId))
                {
                    request.RezervacijaId = rezervacijaId;

                    RezervacijaUpsertRequest rezervacijaRequest = new RezervacijaUpsertRequest();
                    var listaRezervacija = await _rezervacije.Get <List <Model.Rezervacija> >(null);

                    foreach (var item in listaRezervacija)
                    {
                        if (item.RezervacijaId == rezervacijaId)
                        {
                            rezervacijaRequest.DatumVrijeme = item.DatumVrijeme;
                            rezervacijaRequest.PacijentId   = item.PacijentId;
                            rezervacijaRequest.UslugaId     = item.UslugaId;
                            rezervacijaRequest.Razlog       = item.Razlog;
                            // kada se pregled upise u bazu znaci da je pregled obavljen, samim tim rezervacija vise nije aktivna
                            rezervacijaRequest.Aktivna = false;
                            await _rezervacije.Update <Model.Rezervacija>(rezervacijaId, rezervacijaRequest);
                        }
                    }

                    var listaPregleda = await _pregledi.Get <List <Model.Pregled> >(null);

                    foreach (var item in listaPregleda)
                    {
                        if (item.RezervacijaId == rezervacijaId)
                        {
                            MessageBox.Show("Pregled za ovu rezervaciju je vec obavljen!");
                            return;
                        }
                    }
                }

                var idObj3 = cmbDijagnoza.SelectedValue;
                if (int.TryParse(idObj3.ToString(), out int dijagnozaId))
                {
                    request.DijagnozaId = dijagnozaId;
                }

                var idObj4 = cmbLijek.SelectedValue;
                if (int.TryParse(idObj4.ToString(), out int lijekId))
                {
                    request.LijekId = lijekId;
                }

                var idObj5 = cmbMedicinskiKarton.SelectedValue;
                if (int.TryParse(idObj5.ToString(), out int medicinskiKartonId))
                {
                    request.MedicinskiKartonId = medicinskiKartonId;
                }

                request.DatumVrijeme = dateTimePregled.Value = Convert.ToDateTime(System.DateTime.Today.ToShortDateString() + " 10:00 PM");
                request.Naziv        = txtNaziv.Text;
                request.Opis         = txtOpis.Text;

                if (!_Id.HasValue)
                {
                    await _pregledi.Insert <Model.Pregled>(request);
                }
                else
                {
                    await _pregledi.Update <Model.Pregled>(_Id, request);
                }
                MessageBox.Show("Operacija uspješna!");
                this.Close();
            }
            else
            {
                MessageBox.Show("Operacija nije uspjela!");
                this.Close();
            }
        }
Пример #10
0
        public async Task <bool> NovaKartaIRezervacija(Model.Karta karta1, Model.Sjediste s)
        {
            var reze     = new RezervacijaUpsertRequest();
            var kartaRes = await _kartaService.GetById(karta1.Id);

            if (kartaRes.IsSuccessStatusCode)
            {
                var karta     = JsonConvert.DeserializeObject <Model.Karta>(kartaRes.Content.ReadAsStringAsync().Result);
                var cijenaRes = await _cijenaService.Get(new CijenaSearchRequest()
                {
                    KompanijaID = s.Vozilo.KompanijaId,
                    LinijaID    = karta.Angazuje.LinijaId
                });

                if (cijenaRes.IsSuccessStatusCode)
                {
                    var resultC = cijenaRes.Content.ReadAsStringAsync().Result;
                    var cijena  = JsonConvert.DeserializeObject <List <Model.Cijena> >(resultC);

                    if (karta != null)
                    {
                        reze.KartaId     = karta.Id;
                        reze.DatumIsteka = karta.DatumIzdavanja.AddDays(1);
                    }
                    else
                    {
                        return(false);
                    }



                    reze.DatumKreiranja = DateTime.Now;

                    reze.Otkazana = false;


                    var resPutnik = await _putnikService.Get(new PutnikSearchRequest()
                    {
                        KorisnickoIme = APIService.Username
                    });

                    if (resPutnik.IsSuccessStatusCode)
                    {
                        var putnik = JsonConvert.DeserializeObject <List <Model.Putnik> >(resPutnik.Content.ReadAsStringAsync().Result);

                        reze.PutnikId = putnik[0].Id;

                        if (DateTime.Now.Date.Year - putnik[0].DatumRodjenja.Value.Date.Year > 50 || DateTime.Now.Date.Year - putnik[0].DatumRodjenja.Value.Date.Year < 18)
                        {
                            reze.CijenaSaPopustom = cijena[0].Popust == 0 ? cijena[0].Iznos : cijena[0].Iznos - (cijena[0].Iznos * decimal.Parse(cijena[0].Popust.Value.ToString()));
                        }
                        else
                        {
                            reze.CijenaSaPopustom = cijena[0].Iznos;
                        }
                    }
                    else
                    {
                        return(false);
                    }



                    TempData["poruka"] = "Uspješno ste rezervisali";

                    await _rezervacijeService.Insert(reze);

                    return(true);
                }
                return(false);
            }
            return(false);
        }
Пример #11
0
        public async Task <IActionResult> Rezervisi(int sjedisteId, DateTime datum, TimeSpan vrijeme)
        {
            Model.Karta    karta = null;
            Model.Sjediste s     = null;

            Model.Karta kreiranaNovaKarta = null;
            var         resSjediste       = await _sjedistaService.GetById(sjedisteId);

            if (resSjediste.IsSuccessStatusCode)
            {
                var resultS = resSjediste.Content.ReadAsStringAsync().Result;
                s = JsonConvert.DeserializeObject <Model.Sjediste>(resultS);

                var searchKarta = new KartaSearchRequest()
                {
                    PoAngzuje      = false,
                    PoVozilu       = true,
                    Red            = s.Red,
                    Kolona         = s.Kolona,
                    PoDatumu       = true,
                    DatumIzdavanja = datum,
                    IzSjedista     = true,
                    PoVremenu      = true,
                    VrijemePolaska = vrijeme
                };

                var resKarta = await _kartaService.Get(searchKarta);

                if (resKarta.IsSuccessStatusCode)
                {
                    var resultK = resKarta.Content.ReadAsStringAsync().Result;
                    var karte   = JsonConvert.DeserializeObject <List <Model.Karta> >(resultK);


                    if (karte.Count > 0)
                    {
                        karta = karte[0];
                    }

                    var reze = new RezervacijaUpsertRequest();



                    if (karta == null)
                    {
                        /* OVO SAM ZADNJE DODAO -----------------------------------------*/
                        var searchKarta2 = new KartaSearchRequest()
                        {
                            PoAngzuje      = false,
                            PoVozilu       = false,
                            DatumIzdavanja = datum,
                            VrijemePolaska = vrijeme
                        };

                        var karteRes = await _kartaService.Get(searchKarta2);

                        if (karteRes.IsSuccessStatusCode)
                        {
                            var lista = JsonConvert.DeserializeObject <List <Model.Karta> >(karteRes.Content.ReadAsStringAsync().Result);

                            if (lista.Count > 0)
                            {
                                if (datum.Date > DateTime.Now.Date)
                                {
                                    var upsert = new KartaUpsertRequest()
                                    {
                                        AngazujeId     = lista[0].AngazujeId,
                                        DatumIzdavanja = datum,
                                        VrijemePolaska = vrijeme,
                                        VrijemeDolaska = lista[0].VrijemeDolaska,
                                        BrojKarte      = GenerisiBrojKarte(9, true),
                                        SjedisteId     = sjedisteId
                                    };

                                    var nova = await _kartaService.Insert(upsert);



                                    if (nova.IsSuccessStatusCode)
                                    {
                                        kreiranaNovaKarta = JsonConvert.DeserializeObject <Model.Karta>(nova.Content.ReadAsStringAsync().Result);

                                        if (await NovaKartaIRezervacija(kreiranaNovaKarta, s))
                                        {
                                            TempData["poruka"] = "Uspješno ste rezervisali sjedište";
                                            return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme }));
                                        }
                                    }
                                    else
                                    {
                                        TempData["poruka"] = "Trenutno karta nije kreirana";
                                        return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme }));
                                    }
                                }
                                else
                                {
                                    TempData["poruka"] = "Niste u mogućnosti da rezervišete";
                                    return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme }));
                                }
                            }
                            else
                            {
                                TempData["poruka"] = "Trenutno karta nije kreirana";
                                return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme }));
                            }
                        }
                        else
                        {
                            TempData["poruka"] = "Trenutno karta nije kreirana";
                            return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme }));
                        }

                        /*-----------------------------------------------------------------------*/
                    }
                    else if (karta.DatumIzdavanja.Date < DateTime.Now.Date)
                    {
                        TempData["poruka"] = "Niste u mogučnosti rezervisati";


                        return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme }));
                    }
                    else if (karta.DatumIzdavanja.Date == DateTime.Now.Date && karta.VrijemePolaska < DateTime.Now.TimeOfDay)
                    {
                        TempData["poruka"] = "Vrijeme koje ste izabrali je isteklo";

                        return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme }));
                    }
                    else
                    {
                        if (await NovaKartaIRezervacija(karta, s))
                        {
                            TempData["poruka"] = "Uspješno ste rezervisali sjedište!";


                            return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme }));
                        }
                        else
                        {
                            TempData["poruka"] = "Niste u mogučnosti rezervisati";


                            return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme }));
                        }
                    }
                }
            }



            return(RedirectToAction("PrikaziSjedista", new { id = s.VoziloId, datum = datum, vrijeme = vrijeme }));
        }