private OrderOrError GetOrderOrError(int?buchungId, int?schwimmbahnId)
        {
            if (buchungId == null)
            {
                return(new OrderOrError(HttpStatusCode.BadRequest));
            }
            if (schwimmbahnId == null)
            {
                return(new OrderOrError(HttpStatusCode.BadRequest));
            }

            Schwimmbahn schwimmbahn = db.SchwimmbahnSet.Find(schwimmbahnId);

            if (schwimmbahn == null)
            {
                return(new OrderOrError(HttpStatusCode.BadRequest));
            }
            Buchung buchung = db.BuchungSet.Find(buchungId);

            if (buchung == null)
            {
                return(new OrderOrError(HttpStatusCode.BadRequest));
            }
            return(new OrderOrError(new Order()
            {
                Buchung = buchung, Schwimmbahn = schwimmbahn
            }));
        }
 private void SetBuchungItem(Buchung dbitem, Buchung buchung)
 {
     dbitem.Email         = buchung.Email;
     dbitem.Name          = buchung.Name;
     dbitem.PlatzNr       = buchung.PlatzNr;
     dbitem.VorfuehrungID = buchung.VorfuehrungID;
 }
 public BuchungDetail()
 {
     InitializeComponent();
     binder = new DataBinding.Binder();
     b = new Buchung();
     created = true;
 }
 public BuchungDetail(Buchung b)
 {
     InitializeComponent();
     this.b = b;
     binder = new DataBinding.Binder();
     created = false;
 }
        public ActionResult DeleteVereinConfirmed(int id)
        {
            Buchung buchung = db.BuchungSet.Find(id);

            db.BuchungSet.Remove(buchung);
            db.SaveChanges();
            return(RedirectToAction("IndexVerein"));
        }
 public ActionResult EditVerein([Bind(Include = "Id,Wochentag,Beginn,Ende,Starttermin,Endtermin,GastId,Schwimmbahnanzahl")] Buchung buchung)
 {
     if (ModelState.IsValid)
     {
         db.Entry(buchung).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("IndexVerein"));
     }
     ViewBag.GastId = new SelectList(db.GastSet, "Id", "Name", buchung.GastId);
     return(View(buchung));
 }
Exemple #7
0
        static void Main(string[] args)
        {
            Buchung buu = new Buchung();

            Console.WriteLine(buu);

            Hotel ho = new Hotel();

            Console.WriteLine(ho.ausgebenAlle());
            Console.WriteLine(ho.ausgebenNamen("fr") + "\t" + ho.ausgebenZimmer().ToString() + "\t" + ho.ausgebenZimmerBuchung(1));
            Console.WriteLine(buu);
        }
        public ActionResult CreateVerein([Bind(Include = "Id,Wochentag,Beginn,Ende,Starttermin,Endtermin,GastId,Schwimmbahnanzahl")] Buchung buchung)
        {
            if (ModelState.IsValid)
            {
                db.BuchungSet.Add(buchung);
                db.SaveChanges();
                return(RedirectToAction("Verein", "Home"));
            }

            ViewBag.GastId = new SelectList(db.GastSet, "Id", "Name", buchung.GastId);
            return(View(buchung));
        }
       public static String SaveMethod(Buchung postBuchung)
       {
           var postObjects = "";

           if(postBuchung.Kunde.emailKunde != ""){

               //email pflicht
               var customer = ("{\"lname\": \"" + postBuchung.Kunde.nachnameKunde +
                                                "\",\"email\": \"" + postBuchung.Kunde.emailKunde +
                                                "\",\"fname\": \"" + postBuchung.Kunde.vornameKunde +
                                                "\",\"city\": \"" + postBuchung.Kunde.Ort +
                                                "\",\"street\": \"" + postBuchung.Kunde.adresseKunde +
                                                "\",\"country\": \"" + postBuchung.Kunde.Land +
                                                "\",\"phone\": \"" + postBuchung.Kunde.telefonKunde +
                                                "\",\"PLZ\": \"" + postBuchung.Kunde.PLZ +
                                                "\",\"arrival_hour\": \"14:00\"" +
                                                ",\"notes\": \"some notes!!!\"}");

              //room_quantity = 1 // wie viele zimmer gebraucht werden -  specifies the number of rooms booked
                var rooms = ("{\"" + postBuchung.idZimmerTyp + "\": [\"1\",\"" + postBuchung.board + "\"]}");
               // optional, werden nicht benötigt
                var ancillary_data = ("{}");
                var ccard = ("{}");

                postObjects = ( "{\"dfrom\": \"" + String.Format("{0:dd\\/MM\\/yyyy}", postBuchung.vonBuchung) +
                                "\",\"dto\": \"" + String.Format("{0:dd\\/MM\\/yyyy}", postBuchung.bisBuchung) +
                                "\",\"rooms\": " + rooms +
                                ",\"customer\":" + customer +
                                ",\"ancillary_data\": " + ancillary_data +
                                ",\"origin\": " +"\"Landgasthof Schiefer" +
                                "\",\"ccard\": " + ccard +
                                ",\"alien_code\": \"" + Program.alien_code +
                                "\",\"lcode\": " + Program.lcode +
                                ",\"amount\": \"" + postBuchung.preisBuchung.ToString().Replace(',', '.') + "\"}");
           }
           else
           {
               return "email fehlt";
           }

             //postObjects = postObjects.Replace(@"\", "");

            //Request    
            HttpResponseMessage msg = client.PostAsync("?data=" + postObjects, null).Result;
            //Response
            var response = msg.Content.ReadAsStringAsync();
            setReservationCode(postBuchung, response.Result);
          
            return response.ToString();
       }
        // GET: Buchungs/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Buchung buchung = db.BuchungSet.Find(id);

            if (buchung == null)
            {
                return(HttpNotFound());
            }
            return(View(buchung));
        }
Exemple #11
0
        public static List<Bericht> ImportBuchungen(string FilePath,Tuple<string,string>Verfasser,string unternehmen,string beruf,int berichtnr)
        {
            List<Bericht> Berichte = new List<Bericht>();
            List<Tag> AlleTage = new List<Tag>(); 

            StreamReader reader = new StreamReader(File.OpenRead(FilePath));
            string headerLine = reader.ReadLine();
            while (!reader.EndOfStream)
            {
                string line = reader.ReadLine();
                if (!String.IsNullOrWhiteSpace(line))
                {
                    string[] values = line.Split(';');
                    Tag tag_ = new Tag();
                    for (int i = 0; i < values.Length; i++)
                    {
                        if(i == 0)
                        {
                            tag_ = new Tag(Convert.ToDateTime(values[i]));
                        }
                        else if(!string.IsNullOrEmpty(values[i]))
                        {
                            string buchungString = values[i];
                            Tuple<string, double> buchung = SplitBuchung(buchungString); 
                            Buchung buchung_ = new Buchung(buchung.Item1, buchung.Item2);
                            tag_.Buchungen.Add(buchung_);
                        }
                    }
                    AlleTage.Add(tag_);
                }
            }
            int count = berichtnr;
            for(int i = 0; i <= AlleTage.Count - 5; i = i + 5)
            {
                List<Tag> tageTemp = new List<Tag>();
                tageTemp.Add(AlleTage[i]);
                tageTemp.Add(AlleTage[i + 1]);
                tageTemp.Add(AlleTage[i + 2]);
                tageTemp.Add(AlleTage[i + 3]);
                tageTemp.Add(AlleTage[i + 4]);
                Bericht berichtTemp = new Bericht(Verfasser, beruf, unternehmen, count, tageTemp);
                Berichte.Add(berichtTemp);
                count++;
            }



            return Berichte;
        }
        // GET: Buchungs/Edit/5
        public ActionResult EditVerein(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Buchung buchung = db.BuchungSet.Find(id);

            if (buchung == null)
            {
                return(HttpNotFound());
            }
            ViewBag.GastId = new SelectList(db.GastSet, "Id", "Name", buchung.GastId);
            return(View(buchung));
        }
       public static String DeleteMethod(Buchung delteBuchung)
       {
            var dataDeletion = ("{\"reservation_id\": " + delteBuchung.reservationCode +
                                ",\"alien_code\": \"" + Program.alien_code +
                                "\",\"lcode\": " + Program.lcode +
                                ",\"origin\": " + "\"Landgasthof Schiefer\"" +
                                ",\"reason\": " + "\"unknown" + "\"}");

            //Request    
            HttpResponseMessage msg = client.PostAsync("?data=" + dataDeletion, null).Result;
            //Response
            var response = msg.Content.ReadAsStringAsync();

            return response.ToString();
       }
 private void BuchungCollection_ItemPropertyChanged(object sender, Tortuga.Anchor.Eventing.RelayedEventArgs <System.ComponentModel.PropertyChangedEventArgs> e)
 {
     ModelChanged?.Invoke(this, new EventArgs());
     if (e.EventArgs.PropertyName == "VorfuehrungID")
     {
         Buchung buchung = e.OriginalSender as Buchung;
         if (buchung.Vorfuehrung == null)
         {
             buchung.Vorfuehrung = this.VorfuehrungCollection.Where(o => o.ID == buchung.VorfuehrungID).FirstOrDefault <Vorfuehrung>();
         }
         if (buchung.Vorfuehrung.Buchung.Contains(buchung))
         {
             buchung.Vorfuehrung.Buchung.Remove(buchung);
         }
         buchung.Vorfuehrung = this.VorfuehrungCollection.Where(o => o.ID == buchung.VorfuehrungID).FirstOrDefault <Vorfuehrung>();
         buchung.Vorfuehrung.Buchung.Add(buchung);
     }
 }
        public BookDialog(DateTime dVon, Zimmer z, Buchung buchung1)
        {


            //Wird bei einem Reservierten zimmer benötigt;
            buchung1.Zimmer = z;

            buchung = buchung1;

            zimmer = z;
            sper = hm.repSperrung.Get().Where(a => a.bisSperrung > DateTime.Now).ToList();

            InitializeComponent();
            this.cbZimmer.Text = "--Bitte zuerst Daten angeben--";

            this.cbZimmer.ItemsSource = hm.repZimmer.Get();
            this.cbZimmer.SelectedValue = z.idZimmer;
            dpVon.Text = dVon.ToString();
            ExbestKunde.IsExpanded = true;

        }
        public ActionResult Stornieren(int Id)
        {
            Benutzer aktBenutzer = BenutzerAdministrator.GetUser(User.Identity.Name);

            Buchung aktBuchung = BuchungsVerwaltung.HoleBuchung(Id);
            List <Buchungsdetails> BuchungsDetailsZuBuchung = BuchungsVerwaltung.BuchungsDetailsVonBuchung(aktBuchung.Id);

            BuchungsDetailsZuBuchung = BuchungsDetailsZuBuchung.OrderBy(x => x.Datum).ToList();
            foreach (var item in BuchungsDetailsZuBuchung)
            {
                if (item.Datum < DateTime.Now.AddDays(1))
                {
                    KreditkartenModel StornoModel = new KreditkartenModel();
                    StornoModel.KreditkartenBezeichnung = new List <KreditkartenArtModel>();
                    List <Kreditkarte> alleKreditkarten = RechnungsVerwaltung.AlleKreditKarten();
                    foreach (var kreditkarte in alleKreditkarten)
                    {
                        KreditkartenArtModel model = new KreditkartenArtModel()
                        {
                            bezeichnung = kreditkarte.bezeichnung,
                            id          = kreditkarte.id
                        };
                        StornoModel.Buchung_id = Id;
                        StornoModel.KreditkartenBezeichnung.Add(model);
                        StornoModel.Rechnungsbetrag = BuchungsDetailsZuBuchung.Sum(x => x.Preis) / 2;
                    }
                    BuchungsVerwaltung.SperreVonUser(aktBenutzer.Id);
                    return(View(StornoModel));
                }
            }


            log.Info("BuchungController - Stornieren -Get");
            if (Id > 0)
            {
                bool storniert = BuchungsVerwaltung.Stornieren(Id);
            }
            return(RedirectToAction("Dashboard", "Benutzer"));
        }
Exemple #17
0
        /// <summary>
        /// Zeigt den Jewaligen Dialog an
        /// </summary>
        /// <param name="mode"></param>
        private void ShowDialog(Mode mode)
        {
            // Testet die Verbundung zur Datenbank
            if (Database.ConnectionAvailable())
            {
                if (type == Type.Busflotte)
                {
                    Bus         bus = new Bus();
                    DataRowView dr  = (DataRowView)tblBusBS.Current;
                    if (dr != null)
                    {
                        bus.BusID          = (int)dr.Row.ItemArray[0];
                        bus.AusstattungsID = (int)dr.Row.ItemArray[1];
                        bus.SitzplanID     = (int)dr.Row.ItemArray[2];
                        bus.HasWlan        = (bool)dr.Row.ItemArray[3];
                        bus.HasToilet      = (bool)dr.Row.ItemArray[4];
                        bus.HasDrinks      = (bool)dr.Row.ItemArray[5];
                        bus.CountSeats     = (int)dr.Row.ItemArray[6];
                        bus.CountReclining = (int)dr.Row.ItemArray[7];
                        bus.CountSleeping  = (int)dr.Row.ItemArray[8];
                    }
                    BusDialog busDialog = new BusDialog(bus, (BusDialog.Mode)mode);
                    busDialog.ShowDialog();
                }
                else if (type == Type.Buchungen)
                {
                    Buchung     buchung = new Buchung();
                    DataRowView dr      = (DataRowView)tblBuchungBS.Current;
                    if (dr != null)
                    {
                        buchung.BuchungsID      = (int)dr.Row.ItemArray[0];
                        buchung.BenutzerdatenID = (int)dr.Row.ItemArray[1];
                        buchung.LinienID        = (int)dr.Row.ItemArray[2];
                        buchung.Nachname        = (string)dr.Row.ItemArray[3].ToString();
                        buchung.Vorname         = (string)dr.Row.ItemArray[4].ToString();
                        buchung.Sitzplaetze     = (int)dr.Row.ItemArray[5];
                        buchung.Liegesitze      = (int)dr.Row.ItemArray[6];
                        buchung.Schlafsitze     = (int)dr.Row.ItemArray[7];
                        if (dr.Row.ItemArray[8].ToString() != "")
                        {
                            buchung.Starthaltestelle = (string)dr.Row.ItemArray[8];
                        }
                        if (dr.Row.ItemArray[9].ToString() != "")
                        {
                            buchung.Endhaltestelle = (string)dr.Row.ItemArray[9];
                        }
                    }
                    BuchungDialog buchungDialog = new BuchungDialog(buchung, (BuchungDialog.Mode)mode);
                    buchungDialog.ShowDialog();
                }
                else if (type == Type.Buslinie)
                {
                    Buslinie    buslinie = new Buslinie();
                    DataRowView dr       = (DataRowView)tblBuslinieBS.Current;
                    if (dr != null)
                    {
                        buslinie.LinienID   = (int)dr.Row.ItemArray[0];
                        buslinie.FahrplanID = (int)dr.Row.ItemArray[1];
                        buslinie.BusID      = (int)dr.Row.ItemArray[2];
                        buslinie.Start      = (string)dr.Row.ItemArray[3];
                        buslinie.Ende       = (string)dr.Row.ItemArray[4];
                    }
                    BuslinieDialog buslinieDialog = new BuslinieDialog(buslinie, (BuslinieDialog.Mode)mode);
                    buslinieDialog.ShowDialog();
                }
                else if (type == Type.Fahrplan)
                {
                    Fahrplan    fahrplan = new Fahrplan();
                    DataRowView dr       = (DataRowView)tblFahrplanBS.Current;
                    if (dr != null)
                    {
                        fahrplan.FahrplanID   = (int)dr.Row.ItemArray[0];
                        fahrplan.AbfahrtsZeit = (string)dr.Row.ItemArray[1].ToString();
                        fahrplan.Abfahrtdatum = (DateTime)dr.Row.ItemArray[2];
                        fahrplan.Fahrtdauer   = (string)dr.Row.ItemArray[3].ToString();
                        fahrplan.Fahrpreis    = (double)dr.Row.ItemArray[4];
                    }
                    FahrplanDialog fahrplanDialog = new FahrplanDialog(fahrplan, (FahrplanDialog.Mode)mode);
                    fahrplanDialog.ShowDialog();
                }

                ResetView();
            }
            else
            {
                MessageBox.Show("Es konnte keine Verbindung zur Datenbank hergestellt werden.");
            }
        }
       public static void setReservationCode(Buchung buchung, String msg)
       {
            JavaScriptSerializer js = new JavaScriptSerializer();

            // string … variablenname, object … value
            Dictionary<string, object> dict3 = ( Dictionary<string, object>)js.DeserializeObject(msg);
            object obj = dict3["rcode"];

            buchung.reservationCode = Convert.ToInt32(obj);
            DataHrm.Manager.repBuchung.Update(buchung);
       }
 public Task <int> SaveBuchungAsync(Buchung b)
 {
     return(db.InsertAsync(b));
 }
 void EditBuchung(Buchung b)
 {
     Dialogs.BuchungDetail tmp = new Dialogs.BuchungDetail(b);
     tmp.ShowDialog();
     BindTo();
 }
        private void dpBis_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
        {
            //dpVon.BlackoutDates.Clear();
            //dpVon.BlackoutDates.Add(new CalendarDateRange(Convert.ToDateTime(dpBis.SelectedDate),
            //                          Convert.ToDateTime(dpBis.SelectedDate).AddYears(5)));
            try
            {
                dpVon.DisplayDateEnd = Convert.ToDateTime(dpBis.SelectedDate).AddDays(-1);
            }
            catch (ArgumentOutOfRangeException ex)
            {
                System.Windows.Forms.MessageBox.Show("Achtung Sperrung zwischen\ngewählten Zeitraum!");
            }

            Buchung b = new Buchung();
            if (dpBis != null && zimmer != null)
            {
                try
                {

                    b = hm.repBuchung.Get(z => z.idZimmer == zimmer.idZimmer).OrderByDescending(c => c.bisBuchung).Where(a => a.bisBuchung < dpVon.SelectedDate).First();
                    dpVon.BlackoutDates.Add(new CalendarDateRange(Convert.ToDateTime(b.vonBuchung.AddDays(-1)),
                                      Convert.ToDateTime(b.bisBuchung).AddDays(1)));
                }
                catch (Exception)
                {

                }
            }
            if (dpVon.SelectedDate != null)
            {
                List<Buchung> bookings = hm.repBuchung.Get(includes: "Kunde, Zimmer").Where(c => c.vonBuchung < dpBis.SelectedDate).Where(d => d.bisBuchung > dpVon.SelectedDate).ToList();
                List<Zimmer> rooms = hm.repZimmer.Get().ToList();

                foreach (var buch in bookings)
                {
                    try
                    {
                        var itemToRemove = rooms.Single(r => r.idZimmer == buch.idZimmer);
                        if (buchung.idZimmer != buch.idZimmer)
                            rooms.Remove(itemToRemove);
                    }
                    catch (Exception ex) { }
                }
                if(hm.repSperrung.Get().OrderBy(c => c.bisSperrung).Where(a => a.bisSperrung > dpVon.SelectedDate).Where(i => i.bisSperrung < dpBis.SelectedDate).Count() >= 1){
                    dpVon.SelectedDate = null;
                }

                this.cbZimmer.ItemsSource = rooms;
                this.cbZimmer.Text = "--Bitte Zimmer wählen--";

            }

            this.cbZimmer.SelectedValue = zimmer.idZimmer;
        }
 void DeleteBuchung(Buchung b)
 {
     BL.deleteBuchung(b);
     BindTo();
 }
        private void ButtonRes_Click(object sender, RoutedEventArgs e)
        {
            Buchung buchung = new Buchung();
            Zimmer zimmer = new Zimmer();
            List<Buchung> bookings = null;
            ZimmerTyp zimmerT;

            if (dpVon.Text != "" && dpBis.Text != "")
            {
                buchung.vonBuchung = Convert.ToDateTime(dpVon.Text);
                buchung.bisBuchung = Convert.ToDateTime(dpBis.Text);
                bookings = hm.repBuchung.Get(includes: "Kunde, Zimmer").Where(c => c.vonBuchung < dpBis.SelectedDate).Where(d => d.bisBuchung > dpVon.SelectedDate).ToList();

            }

            //Kunde muss ausgewählt werden
            if ((tbvorn.Text != "" || tbVorNameNew.Text != "") && dpVon.Text != "" && dpBis.Text != "" && tbErw.Text != "")
            {
                errLabel.Content = "";
                int idzimmer = (int)cbZimmer.SelectedValue;

                ////testbuchungen   //prüfen ob zimmer schon reserviert wurde
                //List<Buchung> tbuchungen = hm.repBuchung.Get(includes: "Zimmer,Kunde").Where(b => b.idZimmer == idzimmer)
                //                                                                         .Where(b => b.vonBuchung.CompareTo(buchung.vonBuchung) <= 0 && b.bisBuchung.CompareTo(buchung.vonBuchung) >= 0 || // vonbuchung is früher als value // bisbuchung ist später als value ODER
                //                                                                         b.vonBuchung.CompareTo(buchung.bisBuchung) <= 0 && b.bisBuchung.CompareTo(buchung.bisBuchung) >= 0) // vonbuchung is früher als value  // bisbuchung is später als value
                //                                                                         .ToList();
                if (tbKind.Text == "")
                    tbKind.Text = "0";

                zimmerT = hm.repZimmerTyp.Get().Where(a => a.anzahlBetten == (Convert.ToInt16(tbErw.Text) + Convert.ToInt16(tbKind.Text))).FirstOrDefault();


                //if (tbuchungen.Count <= 0)
                //{
                if (zimmerT != null) { 
                    if (bookings.Where(a => a.idZimmerTyp == zimmerT.idZimmerTyp).Count() < zimmerT.bettenVorhanden) { 
                        //Buchung
                        if (ExbestKunde.IsExpanded)
                            newKunde = (Kunde)tbvorn.DataContext;
                        if (ExkundeNeu.IsExpanded)
                        {
                            newKunde.vornameKunde = tbVorNameNew.Text;
                            newKunde.nachnameKunde = tbNachnNew.Text;
                            newKunde.adresseKunde = tbAdresseNew.Text;
                            newKunde.PLZ = tbPLZNew.Text;
                            newKunde.Ort = tbOrtNew.Text;
                            newKunde.emailKunde = tbEMailNew.Text;
                            newKunde.telefonKunde = tbTelefonNew.Text;

                            hm.repKunde.Create(newKunde);


                        }
                        buchung.idKunde = newKunde.idKunde;
                        buchung.infoBuchung = tbInfo.Text;
                        buchung.erwachseneBuchung = Convert.ToInt32(tbErw.Text);
                        buchung.kinderBuchung = (tbKind.Text != "") ? Convert.ToInt32(tbKind.Text) : 0;
                        buchung.idZimmer = idzimmer;
                        buchung.eingegangenBuchung = DateTime.Now;


                        //Verpflegung
                        int verpflegung = cbVerpf.SelectedIndex;
                        string stringVerpf = "";

                        switch (verpflegung)
                        {
                            case 0:
                                stringVerpf = "bb";
                                break;
                            case 1:
                                stringVerpf = "hb";
                                break;
                            case 2:
                                stringVerpf = "fb";
                                break;
                            case 3:
                                stringVerpf = "nb";
                                break;

                        }
                        buchung.board = stringVerpf;


                        //zurück zu MainWindow mit zurückbutton
                        hm.repBuchung.Create(buchung);
                        //Seite wechseln
                        NavigationService ns = NavigationService.GetNavigationService(this);
                        ns.Navigate(new Uri("StartPage.xaml", UriKind.Relative));
                    }


                    else
                    {
                        errLabel.Content = "Verfügbarkeit des Zimmertyp " + zimmerT.typBezeichnung + " ist 0 für diesen Zeitraum";
                        tbKind.Background = Brushes.Red;
                        tbErw.Background = Brushes.Red;
                    }
                }
                else
                {
                   
                    tbKind.Background = Brushes.Red;
                    tbErw.Background = Brushes.Red;
                    errLabel.Content = "Kein ZimmerTyp für diese Eingabe bekannt";
                    
                }



            }
           
            else
            {
                errLabel.Content = "Name, Von-Bis, Anzahl Erwachsene muss ausgefüllt sein!";
               // MessageBoxResult result = MessageBox.Show("Bitte alle Felder ausfüllen!");
            }
        }
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            dpBis.BlackoutDates.Add(new CalendarDateRange(new DateTime(1990, 1, 1),
                         Convert.ToDateTime(dpVon.SelectedDate)));
            //Wenn Zimmer ungebucht noch kein Bis Datum
            try
            {
                dpVon.BlackoutDates.Add(new CalendarDateRange(Convert.ToDateTime(dpBis.SelectedDate),
                                        Convert.ToDateTime(dpBis.SelectedDate).AddYears(5)));
            }
            catch (Exception ex)
            {
                Console.WriteLine("Noch kein Bis Datum vorhanden. Error:" + ex);
            }

            if (buchung.idBuchung != 0)
            {
                kunde = this.hm.repKunde.GetById(buchung.idKunde);

                tbvorn.DataContext = kunde;
                tbNachn.Text = kunde.nachnameKunde;
                tbAdresse.Text = kunde.adresseKunde;
                tbOrt.Text = kunde.Ort;
                if (buchung.idBuchung == 35)
                {

                }
                dpVon.SelectedDate = buchung.vonBuchung;
                dpBis.SelectedDate = buchung.bisBuchung;

                tbInfo.Text = buchung.infoBuchung;
                tbErw.Text = buchung.erwachseneBuchung.ToString();
                tbKind.Text = buchung.kinderBuchung.ToString();
                alreadyBooked = true;
                alreadyBookedid = buchung.idBuchung;
                this.ButtonRes.Content = "Ändern";
                buchungSelected = buchung;

                //Verpflegung
             
                string stringVerpf = buchung.board;

                switch (stringVerpf)
                {                    
                    case "bb":
                        cbVerpf.SelectedIndex = 0;
                        break;
                    case "hb":
                        cbVerpf.SelectedIndex = 1;
                        break;
                    case "fb":
                        cbVerpf.SelectedIndex = 2;
                        break;
                    case "nb":
                        cbVerpf.SelectedIndex = 3;
                        break;

                }
                buchung.board = stringVerpf;


                ButtonDel.IsEnabled = true;
                cbZimmer.IsEnabled = true;
                this.cbZimmer.SelectedValue = buchung.idZimmer;

            }
            else
            {
                cbVerpf.SelectedIndex = 0;
                ButtonDel.IsEnabled = false;
                cbZimmer.IsEnabled = false;
            }
            isLoadedR = true;
            

            //Sperren der Datepicker 
            foreach (var s in sper)
            {
                try
                {
                    dpVon.BlackoutDates.Add(new CalendarDateRange(s.vonSperrung,
                                      s.bisSperrung));
                    dpBis.BlackoutDates.Add(new CalendarDateRange(s.vonSperrung,
                                      s.bisSperrung));
                }
                catch (ArgumentOutOfRangeException ex)
                {
                    this.Close();
                    System.Windows.Forms.MessageBox.Show("Zimmer sind gesperrt!");
                    
                }
            }
        }
        void r1_MouseDown(object sender, MouseButtonEventArgs e)
        {
            //LoginDialog ld = new LoginDialog();
            //ld.Show();

            System.Diagnostics.Debug.WriteLine("heee " + sender.GetType());
            String nameRect = "";
            String[] splits;
            int buchungIdTag = 0;
            int dateIndex;
            int zimmerIndex = 0;
            DateTime dVon = new DateTime();
            Buchung buchung = new Buchung();
            Object o = new Object();

            if (sender.GetType() == typeof(Rectangle))
            {
                Rectangle rect = (Rectangle)sender;
                nameRect = rect.Name;
                splits = nameRect.Split('_');
                dateIndex = int.Parse(splits[2]);
                zimmerIndex = int.Parse(splits[1]);
                Zimmer z = rooms.ElementAt(zimmerIndex);
                dVon = dateList.ElementAt(dateIndex);
                o = rect.Tag;
                try
                {
                    splits = rect.Tag.ToString().Split(';');
                    buchungIdTag = int.Parse(splits[1]);
                    if (rect.Tag.ToString().Contains("booked"))
                    {
                        buchung = this.hm.repBuchung.GetById(buchungIdTag);
                    }
                }
                catch (NullReferenceException nex)
                {

                }
                BookDialog bl = new BookDialog(dVon, z, buchung);
                rect.Fill = new SolidColorBrush(Colors.LightYellow);

                bl.ShowDialog();
                if (rect.Tag == null)
                {
                    rect.Fill = new SolidColorBrush(Colors.LightGreen);
                }
                else
                {
                    rect.Fill = new SolidColorBrush(Colors.Pink);
                }
                //Nach schließen des Dialogs wird seite aktualisiert
                refreshPage();
            }
        }
        public void Save()
        {
            ValidateBuchung(true);
            // Overwrite Modified Items (Buchung)
            foreach (Buchung buchung in BuchungCollection)
            {
                Buchung dbitem = mDao.mKino.Buchung.Where(o => o.ID == buchung.ID).FirstOrDefault <Buchung>();
                if (dbitem.Email != buchung.Email || dbitem.Name != buchung.Name || dbitem.PlatzNr != buchung.PlatzNr || dbitem.VorfuehrungID != buchung.VorfuehrungID)
                {
                    SetBuchungItem(dbitem, buchung);
                }
            }
            // Added items
            foreach (Buchung buchung in BuchungCollection)
            {
                Buchung dbitem = mDao.mKino.Buchung.Where(o => o.ID == buchung.ID).FirstOrDefault <Buchung>();
                if (dbitem == null)
                {
                    mDao.mKino.Buchung.Add(buchung);
                }
            }
            // Removed items
            List <Buchung> delItemsB = new List <Buchung>();

            foreach (Buchung dbitem in mDao.mKino.Buchung)
            {
                Buchung buchung = BuchungCollection.Where(o => o.ID == dbitem.ID).FirstOrDefault <Buchung>();
                if (buchung == null)
                {
                    delItemsB.Add(dbitem);
                }
            }
            foreach (Buchung delItem in delItemsB)
            {
                mDao.mKino.Buchung.Remove(delItem);
            }

            // Overwrite Modified Items (Vorfuehrung)
            foreach (Vorfuehrung vorfuehrung in VorfuehrungCollection)
            {
                Vorfuehrung dbitem = mDao.mKino.Vorfuehrung.Where(o => o.ID == vorfuehrung.ID).FirstOrDefault <Vorfuehrung>();
                if (dbitem.Bezeichnung != vorfuehrung.Bezeichnung || dbitem.Datum != vorfuehrung.Datum || dbitem.FilmID != vorfuehrung.FilmID || dbitem.SaalID != vorfuehrung.SaalID)
                {
                    SetVorfuehrungItem(dbitem, vorfuehrung);
                }
            }
            // Added items
            foreach (Vorfuehrung vorfuehrung in VorfuehrungCollection)
            {
                Vorfuehrung dbitem = mDao.mKino.Vorfuehrung.Where(o => o.ID == vorfuehrung.ID).FirstOrDefault <Vorfuehrung>();
                if (dbitem == null)
                {
                    mDao.mKino.Vorfuehrung.Add(vorfuehrung);
                }
            }
            // Removed items
            List <Vorfuehrung> delItemsV = new List <Vorfuehrung>();

            foreach (Vorfuehrung dbitem in mDao.mKino.Vorfuehrung)
            {
                Vorfuehrung vorfuehrung = VorfuehrungCollection.Where(o => o.ID == dbitem.ID).FirstOrDefault <Vorfuehrung>();
                if (vorfuehrung == null)
                {
                    delItemsV.Add(dbitem);
                }
            }
            foreach (Vorfuehrung delItem in delItemsV)
            {
                mDao.mKino.Vorfuehrung.Remove(delItem);
            }

            // Overwrite Modified Items
            foreach (Saal saal in SaalCollection)
            {
                Saal dbitem = mDao.mKino.Saal.Where(o => o.ID == saal.ID).FirstOrDefault <Saal>();
                if ((dbitem.AnzahlPlaetze != saal.AnzahlPlaetze) || dbitem.Bezeichnung != saal.Bezeichnung || dbitem.Dreidimensional != saal.Dreidimensional)
                {
                    SetSaalItem(dbitem, saal);
                }
            }
            // Added items
            foreach (Saal saal in SaalCollection)
            {
                Saal dbitem = mDao.mKino.Saal.Where(o => o.ID == saal.ID).FirstOrDefault <Saal>();
                if (dbitem == null)
                {
                    mDao.mKino.Saal.Add(saal);
                }
            }
            // Removed items
            List <Saal> delItemsS = new List <Saal>();

            foreach (Saal dbitem in mDao.mKino.Saal)
            {
                Saal saal = SaalCollection.Where(o => o.ID == dbitem.ID).FirstOrDefault <Saal>();
                if (saal == null)
                {
                    delItemsS.Add(dbitem);
                }
            }
            foreach (Saal delItem in delItemsS)
            {
                mDao.mKino.Saal.Remove(delItem);
            }

            // Overwrite Modified Items (Film)
            foreach (Film film in FilmCollection)
            {
                Film dbitem = mDao.mKino.Film.Where(o => o.ID == film.ID).FirstOrDefault <Film>();
                if (dbitem.Bezeichnung != film.Bezeichnung || dbitem.Dauer != film.Dauer || dbitem.FSK18 != film.FSK18 || dbitem.Preis != film.Preis)
                {
                    SetFilmItem(dbitem, film);
                }
            }
            // Added items
            foreach (Film film in FilmCollection)
            {
                Film dbitem = mDao.mKino.Film.Where(o => o.ID == film.ID).FirstOrDefault <Film>();
                if (dbitem == null)
                {
                    mDao.mKino.Film.Add(film);
                }
            }
            // Removed items
            List <Film> delItemsF = new List <Film>();

            foreach (Film dbitem in mDao.mKino.Film)
            {
                Film film = FilmCollection.Where(o => o.ID == dbitem.ID).FirstOrDefault <Film>();
                if (film == null)
                {
                    delItemsF.Add(dbitem);
                }
            }
            foreach (Film delItem in delItemsF)
            {
                mDao.mKino.Film.Remove(delItem);
            }
            mDao.Save();
        }