//Get all transactions-reservations
        public IActionResult VratiRezervacijeTrenutnogKorisnika()
        {
            List <RezervacijeVratiRezervacijeKorisnikaVM> viewmodel = new List <RezervacijeVratiRezervacijeKorisnikaVM>();
            Korisnik k = HttpContext.GetLogiraniKorisnik();

            List <Transakcija> transakcije = _db.Transakcije.Where(x => x.KlijentiId == k.Id).ToList();

            foreach (var item in transakcije)
            {
                RezervacijeVratiRezervacijeKorisnikaVM model = new RezervacijeVratiRezervacijeKorisnikaVM();
                TransakcijaStavke stavke = _db.TransakcijaStavke.FirstOrDefault(x => x.TransakcijaId == item.Id);

                if (stavke != null)
                {
                    Karta kartaKupljena = _db.Karte.Include(x => x.PosjecujeLokacije.Linije.Polazak).Include(x => x.PosjecujeLokacije.Grad).FirstOrDefault(x => x.Id == stavke.KartaId);
                    model.DatumPutovanja = kartaKupljena.datumPutovanja.ToShortDateString();
                    model.PonudaKupljena = kartaKupljena.PosjecujeLokacije.Linije.Polazak.Naziv + "-" + kartaKupljena.PosjecujeLokacije.Grad.Naziv;
                    model.Potroseno      = stavke.UkupnaCijena.ToString();
                    model.Kolicina       = stavke.Kolicina;
                    model.Aktivna        = item.otkazano;
                    model.TransakcijaId  = item.Id;
                    model.Polazak        = kartaKupljena.PosjecujeLokacije.Linije.vrijemePolaska;
                    viewmodel.Add(model);
                }
            }
            return(View(viewmodel));
        }
예제 #2
0
        //View for all users reservation to make recension
        public IActionResult Ocijeni()
        {
            List <RezervacijeVratiRezervacijeKorisnikaVM> viewmodel = new List <RezervacijeVratiRezervacijeKorisnikaVM>();
            Korisnik k = HttpContext.GetLogiraniKorisnik();

            List <Transakcija> transakcije = _db.Transakcije.Where(x => x.KlijentiId == k.Id).ToList();

            foreach (var item in transakcije)
            {
                RezervacijeVratiRezervacijeKorisnikaVM model = new RezervacijeVratiRezervacijeKorisnikaVM();
                TransakcijaStavke stavke = _db.TransakcijaStavke.FirstOrDefault(x => x.TransakcijaId == item.Id);

                if (stavke != null)
                {
                    Karta kartaKupljena = _db.Karte.Include(x => x.PosjecujeLokacije.Linije.Polazak).Include(x => x.PosjecujeLokacije.Grad).FirstOrDefault(x => x.Id == stavke.KartaId);
                    model.DatumPutovanja = kartaKupljena.datumPutovanja.ToShortDateString();
                    model.PonudaKupljena = kartaKupljena.PosjecujeLokacije.Linije.Polazak.Naziv + "-" + kartaKupljena.PosjecujeLokacije.Grad.Naziv;
                    model.Potroseno      = stavke.UkupnaCijena.ToString();
                    model.Kolicina       = stavke.Kolicina;
                    model.Aktivna        = item.otkazano;
                    model.TransakcijaId  = item.Id;
                    model.Polazak        = kartaKupljena.PosjecujeLokacije.Linije.vrijemePolaska;

                    //Check if user has already made recension
                    if (_db.Recenzije.LastOrDefault(x => x.KartaId == kartaKupljena.Id && x.KlijentiId == k.Id) != null)
                    {
                        model.PostojiVecRecenzija = true;
                        model.RecenzijaId         = _db.Recenzije.LastOrDefault(x => x.KartaId == kartaKupljena.Id && x.KlijentiId == k.Id).Id;
                    }
                    //Get date of traveleing for recenstion
                    model.DatumKupovine = kartaKupljena.datumPutovanja;
                    viewmodel.Add(model);
                }
            }

            return(View("VratiRezervacijeTrenutnogKorisnika2", viewmodel));
        }
        public IActionResult DodajRezervaciju(RezervacijePrikazFormePlacanjeVM model)
        {
            Korisnik logirani = HttpContext.GetLogiraniKorisnik();

            if (string.IsNullOrEmpty(model.BrojKreditneKartice))
            {
                return(Content("niste unijeli kreditnu karticu"));
            }

            //Add new credit card
            Kartica novaKartica = new Kartica
            {
                BrojKartice        = model.BrojKreditneKartice,
                Klijenti           = (Klijenti)logirani,
                SredstvoPlacanjaId = 1,
                Banka = Banke.VratiBanke().Find(x => x.Value == model.OdabranaBankaId.ToString()).Text,
            };

            _db.Kartice.Add(novaKartica);

            //Picked reservation travels
            var ponudaRezervacije = _db.PosjecujeLokacije.Include(x => x.Linije)
                                    .FirstOrDefault(x => x.Id == Convert.ToInt32(HttpContext.Session.GetString("PonudaId")));

            //Crete new transaction of cards
            var transakcijaNova = new Transakcija();

            transakcijaNova.brojTransakcije = "1";
            transakcijaNova.datumKupovine   = DateTime.Now;
            transakcijaNova.otkazano        = false;
            transakcijaNova.Status          = "zaprimljena";
            transakcijaNova.Klijenti        = (Klijenti)logirani;
            transakcijaNova.Kartica         = novaKartica;

            TransakcijaStavke stavkeTransakcije = new TransakcijaStavke();

            //Add new transaction of cards in database
            foreach (var item in model.ProsliModel.Mjesta)
            {
                Karta karta = new Karta();

                stavkeTransakcije.Karta       = karta;
                stavkeTransakcije.Kolicina    = model.ProsliModel.Mjesta.Count;
                stavkeTransakcije.Transakcija = transakcijaNova;

                if (model.UkupnaCijenaPopust == 0)
                {
                    stavkeTransakcije.UkupnaCijena = model.UkupnaCijena;
                }
                else
                {
                    stavkeTransakcije.UkupnaCijena = model.UkupnaCijenaPopust;
                }

                karta.PosjecujeLokacije = ponudaRezervacije;
                karta.Aktivna           = true;
                karta.brojSjedista      = item.ToString();
                karta.BrojKarte         = "XXX-123";
                karta.datumPutovanja    = MySessionExtensions.Get <DateTime>(HttpContext.Session, "DatumRezervacije");

                //karta.datumPutovanja = new DateTime(Convert.ToInt32(godina[0]), Convert.ToInt32(razdvojeniDatum[1]), Convert.ToInt32(razdvojeniDatum[0]));
                karta.TipKarte = _db.TipoviKarte.FirstOrDefault(x => x.Tip == HttpContext.Session.GetString("TipKarte"));

                _db.Karte.Add(karta);
            }
            _db.TransakcijaStavke.Add(stavkeTransakcije);
            _db.SaveChanges();

            //Send user a email
            string bodyText = "Poštovani Uspješno ste platili rezervaciju za ponudu " + ponudaRezervacije.Linije.Naziv + " u iznosu od " + stavkeTransakcije.UkupnaCijena + "na dan " + transakcijaNova.datumKupovine.ToShortDateString() + " Pozdrav Vaša autobuska stanica";

            _emailService.BuildEmailTemplate("Potvrda  o uspješnosti rezervacije", bodyText, logirani.Email);

            return(Content("Rezervacija uspjesno provedena"));
        }