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