public IActionResult VozilaPartialView(string grad, int?poslovnicaId) { List <TrenutnaPoslovnica> temp = null; VozilaVM vozila = new VozilaVM(); vozila.rows = new List <VozilaVM.Row>(); if (grad == null && poslovnicaId == null) { temp = _context.TrenutnaPoslovnica.Where(x => x.VoziloRezervisano == false).ToList(); } if (grad != null) { temp = _context.TrenutnaPoslovnica.Where(x => x.VoziloRezervisano == false && (x.Poslovnica.Grad.Naziv.Contains(grad))).ToList(); vozila.GradSearch = grad; } if (poslovnicaId != null) { temp = _context.TrenutnaPoslovnica.Where(x => x.VoziloRezervisano == false && (x.PoslovnicaID == poslovnicaId)).ToList(); } for (int i = 0; i < temp.Count; i++) { VozilaVM.Row item = _context.Vozilo.Where(v => v.VoziloID == temp[i].VoziloID).Select(y => new VozilaVM.Row { Naziv = y.Naziv, VoziloID = y.VoziloID, Gorivo = y.Gorivo, Brend = y.Brend.Naziv, PoslovnicaID = temp[i].PoslovnicaID, PoslovnicaLokacija = _context.Poslovnica.FirstOrDefault(p => p.PoslovnicaID == temp[i].PoslovnicaID).Grad.Naziv, PoslovnicaNaziv = _context.Poslovnica.FirstOrDefault(p => p.PoslovnicaID == temp[i].PoslovnicaID).Naziv, Slika = _context.Slika.Where(sl => sl.VoziloID == y.VoziloID && sl.Pozicija == 1).Select(c => new Slika { Name = c.Name, SlikaID = c.SlikaID, URL = c.URL, Pozicija = c.Pozicija }).FirstOrDefault(), TipVozila = y.TipVozila, Transmisija = y.Transmisija }).FirstOrDefault(); vozila.rows.Add(item); } return(PartialView("_partialViewVozila", vozila)); }
public IActionResult Rezervacija(string vozilo) { RezervacijaDodajVM model = new RezervacijaDodajVM(); string[] StringVozilo = new string[2]; try { StringVozilo = vozilo.Split('-'); model.Vozilo = vozilo; } catch (Exception) { } string SifraRezervacije = null; try { SifraRezervacije = Request.Cookies["Sesion"]; } catch (Exception) { throw; } if (SifraRezervacije == null) { //redirect na pocetnu str ili ispisati nesto } //Preuzeti vozilo iz rezervacije Vozilo _Vozilo = null; if (SifraRezervacije != null) { Rezervacija r = db.Rezervacija.Where(x => x.SifraRezervacije == SifraRezervacije).FirstOrDefault(); int idV = r.VoziloID; _Vozilo = db.Vozilo.Where(x => x.VoziloID == idV).FirstOrDefault(); StringVozilo[0] = db.Vozilo.Where(x => x.VoziloID == idV).Select(y => y.Brend.Naziv).FirstOrDefault(); StringVozilo[1] = _Vozilo.Naziv; model.Vozilo = StringVozilo[0] + "-" + StringVozilo[1]; VozilaVM.Row VR = new VozilaVM.Row { Brend = db.Brend.FirstOrDefault(z => z.BrendID == _Vozilo.BrendID).Naziv, Naziv = _Vozilo.Naziv, Cijena = _Vozilo.Cijena, PoslovnicaNaziv = db.Poslovnica.FirstOrDefault(x => x.PoslovnicaID == r.PoslovnicaID).Naziv, PoslovnicaLokacija = db.Poslovnica.Where(x => x.PoslovnicaID == r.PoslovnicaID).Select(y => y.Grad.Naziv).FirstOrDefault(), Slika = db.Slika.FirstOrDefault(y => y.VoziloID == _Vozilo.VoziloID && y.Pozicija == 1) }; model.VoziloVM = VR; model.DatumPreuzimanja = r.DatumPreuzimanja; model.DatumPovrata = r.DatumPovrata; return(View(nameof(Rezervacija), model)); } else { _Vozilo = db.Vozilo.Where(x => x.Naziv == StringVozilo[1] && x.Brend.Naziv == StringVozilo[0]).FirstOrDefault(); } //0-Brend 1-VoziloNaziv //Provjeriti jel vozilo rezervisano //RijesitiException var idP = db.TrenutnaPoslovnica.FirstOrDefault(t => t.VoziloID == _Vozilo.VoziloID).PoslovnicaID; VozilaVM.Row vr = new VozilaVM.Row { Brend = db.Brend.FirstOrDefault(z => z.BrendID == _Vozilo.BrendID).Naziv, Naziv = _Vozilo.Naziv, Cijena = _Vozilo.Cijena, PoslovnicaNaziv = db.Poslovnica.FirstOrDefault(x => x.PoslovnicaID == idP).Naziv, PoslovnicaLokacija = db.Poslovnica.Where(x => x.PoslovnicaID == idP).Select(y => y.Grad.Naziv).FirstOrDefault(), Slika = db.Slika.FirstOrDefault(y => y.VoziloID == _Vozilo.VoziloID && y.Pozicija == 1) }; model.VoziloVM = vr; model.DatumPreuzimanja = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day); model.DatumPovrata = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day + 1); return(View(nameof(Rezervacija), model)); }
public IActionResult NapraviRezervaciju(RezervacijaDodajVM model) { string SifraRezervacije = null; try { SifraRezervacije = Request.Cookies["Sesion"]; } catch (Exception) { throw; } if (!ModelState.IsValid) { Vozilo _Vozilo = null; if (SifraRezervacije != null) { string[] stringVozilo = new string[2]; Rezervacija r = db.Rezervacija.Where(x => x.SifraRezervacije == SifraRezervacije).FirstOrDefault(); int idV = r.VoziloID; _Vozilo = db.Vozilo.Where(x => x.VoziloID == idV).FirstOrDefault(); stringVozilo[0] = db.Vozilo.Where(x => x.VoziloID == idV).Select(y => y.Brend.Naziv).FirstOrDefault(); stringVozilo[1] = _Vozilo.Naziv; model.Vozilo = stringVozilo[0] + "-" + stringVozilo[1]; VozilaVM.Row VR = new VozilaVM.Row { Brend = db.Brend.FirstOrDefault(z => z.BrendID == _Vozilo.BrendID).Naziv, Naziv = _Vozilo.Naziv, Cijena = _Vozilo.Cijena, PoslovnicaNaziv = db.Poslovnica.FirstOrDefault(x => x.PoslovnicaID == r.PoslovnicaID).Naziv, PoslovnicaLokacija = db.Poslovnica.Where(x => x.PoslovnicaID == r.PoslovnicaID).Select(y => y.Grad.Naziv).FirstOrDefault(), Slika = db.Slika.FirstOrDefault(y => y.VoziloID == _Vozilo.VoziloID && y.Pozicija == 1) }; model.VoziloVM = VR; model.DatumPreuzimanja = r.DatumPreuzimanja; model.DatumPovrata = r.DatumPovrata; return(View(nameof(Rezervacija), model)); } if (model.Vozilo == null || model.Vozilo == "") { return(Redirect("~/Vozilo")); } string[] StringVozilo = model.Vozilo.Split('-'); _Vozilo = db.Vozilo.Where(x => x.Naziv == StringVozilo[1] && x.Brend.Naziv == StringVozilo[0]).FirstOrDefault(); var idP = db.TrenutnaPoslovnica.FirstOrDefault(t => t.VoziloID == _Vozilo.VoziloID).PoslovnicaID; VozilaVM.Row vr = new VozilaVM.Row { Brend = db.Brend.FirstOrDefault(z => z.BrendID == _Vozilo.BrendID).Naziv, Naziv = _Vozilo.Naziv, Cijena = _Vozilo.Cijena, PoslovnicaNaziv = db.Poslovnica.FirstOrDefault(x => x.PoslovnicaID == idP).Naziv, PoslovnicaLokacija = db.Poslovnica.Where(x => x.PoslovnicaID == idP).Select(y => y.Grad.Naziv).FirstOrDefault(), Slika = db.Slika.FirstOrDefault(y => y.VoziloID == _Vozilo.VoziloID && y.Pozicija == 1) }; model.VoziloVM = vr; return(View(nameof(Rezervacija), model)); } if (SifraRezervacije == null) { string[] StringVozilo = model.Vozilo.Split('-'); int voziloID = db.Vozilo.Where(x => x.Naziv == StringVozilo[1] && x.Brend.Naziv == StringVozilo[0]).Select(y => y.VoziloID).FirstOrDefault(); int god = DateTime.Now.Year; int KlijentID = int.Parse(_signInManager.GetUserId(User)); int pID = db.TrenutnaPoslovnica.Where(x => x.VoziloID == voziloID).FirstOrDefault().PoslovnicaID; double c = db.Vozilo.Where(vo => vo.VoziloID == voziloID).FirstOrDefault().Cijena; int brDanaIznajmljivanja = dateDiff(model.DatumPreuzimanja, model.DatumPovrata); Rezervacija r = new Rezervacija { VoziloID = voziloID, PoslovnicaID = pID, DatumRezervacije = DateTime.Now, DatumPovrata = model.DatumPovrata, DatumPreuzimanja = model.DatumPreuzimanja, Zakljucen = (int)InfoRezervacija.U_Obradi, Cijena = c * brDanaIznajmljivanja, KlijentID = KlijentID, BrojDanaIznajmljivanja = brDanaIznajmljivanja, NacinPlacanja = (int)NacinPlacanja.NijeDefinisano, UspjesnoSpremljena = false }; //kreiranje kukija za rezervaciju CookieOptions option = new CookieOptions(); var ticks = DateTime.Now.Ticks; var guid = Guid.NewGuid().ToString(); var uniqueSessionId = ticks.ToString() + '-' + guid; option.Expires = DateTime.Now.AddHours(24); Response.Cookies.Append("Sesion", uniqueSessionId, option); r.SifraRezervacije = uniqueSessionId; db.Add(r); db.SaveChanges(); return(Redirect(nameof(DodatneUsluge))); } Rezervacija rez = db.Rezervacija.Where(x => x.SifraRezervacije == SifraRezervacije).FirstOrDefault(); double cijenVozilaPoDanu = db.Vozilo.Where(vo => vo.VoziloID == rez.VoziloID).FirstOrDefault().Cijena; rez.DatumPreuzimanja = model.DatumPreuzimanja; rez.DatumPovrata = model.DatumPovrata; int brDana = (model.DatumPovrata - model.DatumPreuzimanja).Days == 0 ? 1 : (model.DatumPovrata - model.DatumPreuzimanja).Days; rez.BrojDanaIznajmljivanja = brDana; rez.Cijena = cijenVozilaPoDanu * brDana; db.SaveChanges(); return(Redirect(nameof(DodatneUsluge))); //return View(nameof(DodatneUslugePV)); }