public ActionResult Booking(Booking bookingDataForm) { if (bookingDataForm == null) { return(RedirectToAction("Booking")); } try { bookingRepository = new BookingRepositoryDB(); bookingRepository.Open(); List <decimal> prices = bookingRepository.GetPrices(); bookingDataForm.PriceOneBed = prices[0]; bookingDataForm.PriceTwoBeds = prices[1]; bookingDataForm.PriceThreeBeds = prices[2]; } catch (Exception) { return(View("Message", new Message("Buchung", "Bei der Verarbeitung ihrer Daten ist ein Fehler aufgetreten"))); } ValidateData(bookingDataForm); if (ModelState.IsValid) { try { bookingRepository = new BookingRepositoryDB(); bookingRepository.Open(); int roomNr = bookingRepository.CheckAvailability(bookingDataForm.StartDate, bookingDataForm.EndDate, Convert.ToInt32(bookingDataForm.Beds)); Session["roomNr"] = roomNr; if (roomNr > 0) { Session["booking"] = bookingDataForm; return(RedirectToAction("BookingConfirmation")); } else { string s = "Zu diesem Zeitpunk ist leider kein " + bookingDataForm.Beds + "-Bett Zimmer frei"; if (bookingDataForm.Beds == Beds.eins) { s = "Zu diesem Zeitpunk ist leider kein ein-Bett Zimmer frei"; } ModelState.AddModelError("StartDate", s); Session["roomNr"] = null; return(View(bookingDataForm)); } } catch (Exception) { return(View("Message", new Message("Verfügbarkeit prüfen", "Bei der Verarbeitung ihrer Daten ist ein Fehler aufgetreten", "Versuchen Sie es später nochmal"))); } finally { bookingRepository.Close(); } } else { return(View(bookingDataForm)); } }