//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)); }
//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")); }