Exemplo n.º 1
0
        public ActionResult Edit(int?id)
        {
            /// Hier wird die aufrufende Seite ermittelt und abgespeichert
            var url = Convert.ToString(Request.UrlReferrer);

            TempData["AusgangsURL"] = url;

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            /// Besser wäre es das eigene Modell zu verwenden anstelle der tblBuchung
            /// allerdings hat unser eigenes modell nicht alle Felder aus tblbuchung
            tblBuchung tblBuchung = db.tblBuchung.Find(id);

            if (tblBuchung == null)
            {
                return(HttpNotFound());
            }

            BuchungEditModel BEM = new BuchungEditModel();

            BEM.BuchungAm     = tblBuchung.BuchungAm;
            BEM.BuchungVon    = tblBuchung.BuchungVon;
            BEM.BuchungBis    = tblBuchung.BuchungBis;
            BEM.BuchungStatus = tblBuchung.BuchungStatus;
            BEM.FKAuto        = tblBuchung.FKAuto;
            BEM.FKKunde       = tblBuchung.FKKunde;
            BEM.IDBuchung     = tblBuchung.IDBuchung;
            BEM.Versicherung  = tblBuchung.Versicherung;
            BEM.Tage          = tblBuchung.Tage;
            BEM.MietPreis     = tblBuchung.tblAuto.MietPreis;
            BEM.Vorname       = tblBuchung.tblKunde.Vorname;
            BEM.Nachname      = tblBuchung.tblKunde.Nachname;
            BEM.Gesamtpreis   = BEM.MietPreis * (int)BEM.Tage;
            BEM.BMarke        = tblBuchung.tblAuto.tblTyp.tblMarke.Marke;
            BEM.BTyp          = tblBuchung.tblAuto.tblTyp.Typ;
            BEM.BKategorie    = tblBuchung.tblAuto.tblKategorie.Kategorie;
            BEM.BAutoBild     = tblBuchung.tblAuto.AutoBild;
            BEM.BIDAuto       = tblBuchung.tblAuto.IDAuto;
            return(View(BEM));
        }
Exemplo n.º 2
0
        public ActionResult Edit(BuchungEditModel BEM)
        {
            if (ModelState.IsValid)
            {
                /// Alte Variante
                //var Buchung = (from b in db.tblBuchung where b.IDBuchung == BEM.IDBuchung select b).FirstOrDefault<tblBuchung>();

                /// Wenn im Edit-View das Feld BuchungBis kleiner als BuchungVon ist wird ein TempData erzeugt
                /// das im Edit View eine Fehlermeldung einblendet und den User darauf hinweist
                /// dass das BuchungBis Feld nur Werte annimmt die größer sind als der Wert im BuchungVon Feld.
                if (BEM.BuchungBis < BEM.BuchungVon)
                {
                    TempData["fail"] = "DatumBis muss > sein als DatumVon!";
                    return(RedirectToAction("Edit", BEM.IDBuchung));
                }
                /// bool Wert der ermittelt wird um den BuchungStatus auf 'abgeholt' zu setzen
                if (BEM.abgeholt)
                {
                    BEM.BuchungStatus = "abgeholt";

                    HttpCookie authCookie            = Request.Cookies[FormsAuthentication.FormsCookieName];
                    FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(authCookie.Value);

                    string email = ticket.Name;

                    db.ptblHistorieInsert(BEM.IDBuchung, email);
                }
                /// bool Wert der ermittelt wird um den BuchungStatus auf 'zurueck' zu setzen
                if (BEM.zurueck)
                {
                    BEM.BuchungStatus = "zurueck";

                    HttpCookie authCookie            = Request.Cookies[FormsAuthentication.FormsCookieName];
                    FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(authCookie.Value);

                    string email = ticket.Name;

                    db.ptblHistorieInsert(BEM.IDBuchung, email);
                }
                /// Abklären was passiert wenn storniert wurde.
                /// Eintrag in tblHistorie machen oder nicht?
                /// Wenn ja proc dafür machen?
                /// Wenn nein was dann?
                if (BEM.Storno)
                {
                    BEM.BuchungStatus = "zurueck";
                }

                if (!BEM.Storno && !BEM.zurueck && !BEM.abgeholt)
                {
                    BEM.BuchungStatus = db.tblBuchung.Find(BEM.IDBuchung).BuchungStatus;
                }

                /// Hol dir die IDBuchung aus BuchungEditModel und suchen den gleichen
                /// Datensatz mit der selben ID aus der Datenbank von der tblBuchung
                /// und update die bearbeiteten Felder.
                db.BuchungUpdate(BEM.IDBuchung, BEM.BuchungVon, BEM.BuchungBis, BEM.BuchungStatus, BEM.Storno, BEM.Versicherung);

                /// Alte Variante
                //Buchung.BuchungVon = BEM.BuchungVon;
                //Buchung.BuchungBis = BEM.BuchungBis;
                //Buchung.BuchungStatus = BEM.BuchungStatus;
                //Buchung.Versicherung = BEM.Versicherung;
                //Buchung.Storno = BEM.Storno;
                //db.SaveChanges();

                /// Nach dem Speichern wird man zum Aufrufpunkt der Edit Seite redirected
                var urlStr = (string)TempData["AusgangsURL"];
                return(Redirect(urlStr));
            }
            return(View(BEM));
        }