public ActionResult Apartament(int Id, string dataOd, string dataDo) { var ap = db.Apartamenty.Include("Wizyty").Include("UdogodnieniaApartamenty.Udogodnienie").First(x => x.IdApartamentu == Id); var model = new ApartamentyReservationViewModel(ap) { DataOd = this.StringToDateTime(dataOd), DataDo = this.StringToDateTime(dataDo), }; return(View(model)); }
public ActionResult Apartament(ApartamentyReservationViewModel model) { var userId = User.Identity.GetUserId(); if (userId == null) { return(RedirectToAction("Login", "Account", new { returnUrl = Request.Url.AbsolutePath + "?dataOd=" + this.DateTimeToString(model.DataOd) + "&dataDo=" + this.DateTimeToString(model.DataDo) })); } var ap = db.Apartamenty.Include("UdogodnieniaApartamenty.Udogodnienie").First(x => x.IdApartamentu == model.IdApartamentu); if (model.DataOd > model.DataDo) { ViewData["errorInfo"] = "Nie można zarezerwować apartamentu. Data od jest większa niż data do."; model = new ApartamentyReservationViewModel(ap) { DataOd = model.DataOd, DataDo = model.DataDo }; return(View(model)); } if (db.Wizyty == null || !db.Wizyty.Any(w => w.IdApartamentu == model.IdApartamentu && !(w.DataOd > model.DataDo || w.DataDo < model.DataOd))) { if (ap.Wizyty == null) { ap.Wizyty = new List <Wizyty>(); } db.Wizyty.Add(new Wizyty() { IdApartamentu = model.IdApartamentu, DataOd = model.DataOd, DataDo = model.DataDo, DataRezerwacji = DateTime.Today, IdKlient = userId }); db.SaveChanges(); return(RedirectToAction("MojeWizyty")); } else { ViewData["errorInfo"] = "Nie można zarezerwować apartamentu. W dniach " + DateTimeToString(model.DataOd) + " - " + DateTimeToString(model.DataDo) + " jest on niedostępny."; model = new ApartamentyReservationViewModel(ap) { DataOd = model.DataOd, DataDo = model.DataDo }; return(View(model)); } }