// GET: User/Delete/5 public ActionResult Delete(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Reservation reservation = db.Reservations.Find(id); if (reservation == null) { return HttpNotFound(); } if (reservation.UserID != User.Identity.GetUserId()) //rezervace neni nase { return RedirectToAction("Index"); } else { ReservationContent firstHour = reservation.ReservationContents.OrderBy(i => i.ReservationHour).First(); DateTime firstHourTime = DateTime.MinValue; if (firstHour.ReservationHour < 3) //9 - 12 firstHourTime = new DateTime(reservation.ReservationDay.Year, reservation.ReservationDay.Month, reservation.ReservationDay.Day, firstHour.ReservationHour + 9, 0, 0); else if (firstHour.ReservationHour >= 3 && firstHour.ReservationHour <= 7) firstHourTime = new DateTime(reservation.ReservationDay.Year, reservation.ReservationDay.Month, reservation.ReservationDay.Day, firstHour.ReservationHour + 10, 0, 0); else firstHourTime = new DateTime(reservation.ReservationDay.Year, reservation.ReservationDay.Month, reservation.ReservationDay.Day, 21, 0, 0); if (DateTime.Now.AddHours(2) < firstHourTime) //pokud odted za 2 hodiny bude jeste drive nez zacina prvni rezervace (tedy pokud je jeste vic jak 2 hodiny do zacatku prvni rezervace) { UserReservationDetail model = new UserReservationDetail(); model.ReservationDate = reservation.ReservationDay; var result = reservation.ReservationContents .Select(x => new { DeviceID = x.Device.DeviceID, Hour = x.ReservationHour }) .AsEnumerable() .Select(x => new KeyValuePair<int, int>(x.DeviceID, x.Hour)) .ToList(); model.Reservations = new HashSet<KeyValuePair<int, int>>(result); model.Price = reservation.Price; model.ReservationCreateDate = reservation.ReservationCreateDate; model.Devices = db.Devices.OrderBy(x => x.Type).ThenBy(x => x.DeviceID).ToArray(); return View(model); } else //uz je po limitu, bylo by vhodne zobrazit nejakou chybovou hlasku { TempData["Success"] = false; TempData["Message"] = "Smazání už není dostupné"; return RedirectToAction("Index"); } } }
// GET: User/Detail/5 public ActionResult Detail(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Reservation reservation = db.Reservations.Find(id); if (reservation == null) { return HttpNotFound(); } if(reservation.UserID != User.Identity.GetUserId()) //rezervace neni nase { return RedirectToAction("Index"); } else { UserReservationDetail model = new UserReservationDetail(); model.ReservationDate = reservation.ReservationDay; var result = reservation.ReservationContents .Select(x => new { DeviceID = x.Device.DeviceID, Hour = x.ReservationHour }) .AsEnumerable() .Select(x => new KeyValuePair<int, int>(x.DeviceID, x.Hour)) .ToList(); model.Reservations = new HashSet<KeyValuePair<int, int>>(result); model.Price = reservation.Price; model.ReservationCreateDate = reservation.ReservationCreateDate; model.Devices = db.Devices.OrderBy(x => x.Type).ThenBy(x => x.DeviceID).ToArray(); return View(model); } }