コード例 #1
0
        public override Model.Ulaznica Insert(UlaznicaUpsertRequest request)
        {
            Database.Kupac     k      = _context.Kupac.FirstOrDefault(l => l.KupacId == request.KupacId);
            Model.Kupac        kupac  = _mapper.Map <Model.Kupac>(k);
            Model.Prikazivanje p      = _mapper.Map <Model.Prikazivanje>(_context.Prikazivanje.FirstOrDefault(s => s.PrikazivanjeId == request.PrikazivanjeId));
            Model.Sjediste     sj     = _mapper.Map <Model.Sjediste>(_context.Sjediste.FirstOrDefault(s => s.SjedisteId == request.SjedisteId));
            Model.Rezervacija  r      = _mapper.Map <Model.Rezervacija>(_context.Rezervacije.FirstOrDefault(s => s.RezervacijaId == request.RezervacijaId));
            string             number = "Ime i prezime: " + kupac.KupacPodaci + "---Prikazivanje: " + p.DatumPrikazivanja + "----Sjediste: " + sj.SjedistePodaci /*+ "$" + GetVoucherNumber(8)*/;

            QRCodeGenerator qr   = new QRCodeGenerator();
            QRCodeData      data = qr.CreateQrCode(number, QRCodeGenerator.ECCLevel.Q);
            QRCode          code = new QRCode(data);

            Bitmap qrCodeImage = code.GetGraphic(10);
            var    bitmapBytes = BitmapToBytes(qrCodeImage);

            request.Qrkod = bitmapBytes;

            return(base.Insert(request));
        }
コード例 #2
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);
        }
コード例 #3
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 }));
        }