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