public MovieModule(OrmLiteConnectionFactory db) : base("/movies") { Get["/"] = _ => { var movies = new MovieController(db); return(movies.ListAll()); }; Get["/{movie}"] = req => { var movies = new MovieController(db); var movie = movies.Lookup(req.movie); if (movie == null) { return(404); } return(View["MovieDetail", movie]); }; Get["/create"] = _ => { return(View["NewMovie"]); }; Post["/create"] = _ => { var movie = this.Bind <Movie>(); // Binds the POST result to movie variable (as a movie object) var movieController = new MovieController(db); movieController.Add(movie); return(Response.AsRedirect(ModulePath + "/" + movie.GetPrettyTitleLink())); }; Post["/update/{id}"] = _ => { return(500); }; }
public ShowingsModule(OrmLiteConnectionFactory db) : base("/showings") { Get["/"] = _ => { var showings = new ShowingsController(db); return View["ShowingList", showings.ListAll()]; }; Get["/{showing}"] = req => { var showings = new ShowingsController(db); var showing = showings.Get(req.showing); if (showing == null) return 404; return View["ShowingDetail", showing]; }; Get["/create"] = _ => { var movieController = new MovieController(db); var movies = movieController.ListAll().Movies; var selectlist = movies.Select(movie => new SelectListItem(movie.Title, movie.MovieId.ToString(), false)).ToList(); return View["NewShowing", selectlist]; }; Post["/create"] = _ => { var showing = this.Bind<Showing>(); LogTo.Debug("Adding showing: {0}", showing); var showingsController = new ShowingsController(db); var showingId = showingsController.Add(showing); return Response.AsRedirect(ModulePath + "/" + showingId); }; Post["/update/{id}"] = _ => { return 500; }; }
public ShowingModule(OrmLiteConnectionFactory db) : base("/showings") { Get["/"] = _ => { var showings = new ShowingsController(db); return(View["ShowingList", showings.ListAll()]); }; Get["/{showing}"] = req => { var showings = new ShowingsController(db); var showing = showings.Get(req.showing); if (showing == null) { return(404); } return(View["ShowingDetail", showing]); }; Get["/create"] = _ => { var movieController = new MovieController(db); ViewBag["Movies"] = movieController.ListAll().GetSelectList(); return(View["NewShowing", new Showing()]); }; Post["/create"] = _ => { var showing = this.Bind <Showing>(); LogTo.Debug("Adding showing: {0}", showing); var showingsController = new ShowingsController(db); var showingId = showingsController.Add(showing); return(Response.AsRedirect(ModulePath + "/" + showingId)); }; Get["{showing}/edit"] = req => { // Look up the showing with given ID var showings = new ShowingsController(db); var showing = showings.Get(req.showing); if (showing == null) { return(404); } // Tell the view where to POST to ViewBag["action"] = ModulePath + $"/{req.showing}/edit"; // Do usual showing view stuff (see the create view) - it would be great if we could consolodate the the two into one function var movieController = new MovieController(db); ViewBag["Movies"] = movieController.ListAll().GetSelectList(); return(View["NewShowing", showing]); }; Post["{showing}/edit"] = req => { int showingID; if (!int.TryParse(req.showing, out showingID)) { return(404); // User tried to edit a showing with an invalid (non-numeric) ID } var editedShowing = this.Bind <Showing>(); var showings = new ShowingsController(db); var oldshowing = showings.Get(showingID); if (oldshowing == null) { return(404); // User tried to edit a nonexistent showing } var filledSeats = oldshowing.TotalSeats - oldshowing.AvailableSeats; editedShowing.AvailableSeats = editedShowing.TotalSeats - filledSeats; //if(editedShowing.AvailableSeats < 0) // return "Error: negative seats available"; // is this really an error condition? Maybe they're okay with making an overbooked show.. editedShowing.ShowingId = showingID; showings.Update(editedShowing); return(Response.AsRedirect(ModulePath + "/" + showingID)); }; Post["{showing}/delete"] = req => { // Again, this code duplication is pretty nasty int showingID; if (!int.TryParse(req.showing, out showingID)) { return(500); // User tried to edit a showing with an invalid (non-numeric) ID } var showings = new ShowingsController(db); if (showings.Get(showingID) == null) { return(404); // User tried to edit a nonexistent showing } showings.Delete(showingID); return(Response.AsRedirect(ModulePath + "/")); }; }