コード例 #1
0
        public HomeModule()
        {
            Get["/"] = _ => View["index.cshtml"];

////BANDS////
            Get["/bands"] = _ => {
                List <Band> allBands = Band.GetAll();
                return(View["all_bands.cshtml", allBands]);
            };

            Get["/bands/new"] = _ => View["new_band_form.cshtml"];

            Post["/bands/new"] = _ => {
                string newBandName    = Request.Form["band-name"];
                int    newBandMembers = int.Parse(Request.Form["number-members"]);
                Band   newBand        = new Band(newBandName, newBandMembers);
                newBand.Save();
                return(View["band.cshtml", newBand]);
            };

            Get["/bands/{id}"] = parameters => {
                Band foundBand = Band.Find(parameters.id);
                return(View["band.cshtml", foundBand]);
            };

            Get["/bands/{id}/update"] = parameters => {
                Band foundBand = Band.Find(parameters.id);
                return(View["band_update.cshtml", foundBand]);
            };

            Patch["/bands/update"] = parameters => {
                string newBandName    = Request.Form["band-name"];
                int    newBandMembers = int.Parse(Request.Form["number-members"]);
                int    targetId       = int.Parse(Request.Form["target-id"]);
                Band.Update(targetId, newBandName, newBandMembers);
                Band foundBand = Band.Find(targetId);
                return(View["band.cshtml", foundBand]);
            };

            Delete["/bands/delete"] = _ => {
                int targetId = int.Parse(Request.Form["target-id"]);
                Band.Delete(targetId);
                List <Band> allBands = Band.GetAll();
                return(View["all_bands.cshtml", allBands]);
            };

            Delete["/bands/delete_all"] = _ => {
                Band.DeleteAll();
                List <Band> allBands = Band.GetAll();
                return(View["all_bands.cshtml", allBands]);
            };


////VENUES////
            Get["/venues"] = _ => {
                List <Venue> allVenues = Venue.GetAll();
                return(View["all_venues.cshtml", allVenues]);
            };

            Get["/venues/new"] = _ => View["new_venue_form.cshtml"];

            Post["/venues/new"] = _ => {
                string newVenueName     = Request.Form["venue-name"];
                string newVenueSize     = Request.Form["venue-size"];
                int    newVenueCapacity = int.Parse(Request.Form["venue-capacity"]);
                Venue  newVenue         = new Venue(newVenueName, newVenueSize, newVenueCapacity);
                newVenue.Save();
                return(View["venue.cshtml", newVenue]);
            };

            Get["/venues/{id}"] = parameters => {
                Venue foundVenue = Venue.Find(parameters.id);
                return(View["venue.cshtml", foundVenue]);
            };

            Get["/venues/{id}/update"] = parameters => {
                Venue foundVenue = Venue.Find(parameters.id);
                return(View["venue_update.cshtml", foundVenue]);
            };

            Patch["/venues/update"] = parameters => {
                string newVenueName     = Request.Form["venue-name"];
                string newVenueSize     = Request.Form["venue-size"];
                int    newVenueCapacity = int.Parse(Request.Form["venue-capacity"]);
                int    targetId         = int.Parse(Request.Form["target-id"]);
                Venue.Update(targetId, newVenueName, newVenueSize, newVenueCapacity);
                Venue foundVenue = Venue.Find(targetId);
                return(View["venue_update.cshtml", foundVenue]);
            };

            Delete["/venues/delete"] = _ => {
                int targetId = int.Parse(Request.Form["target-id"]);
                Venue.Delete(targetId);
                List <Venue> allVenues = Venue.GetAll();
                return(View["all_venues.cshtml", allVenues]);
            };

            Delete["/venues/delete_all"] = _ => {
                Venue.DeleteAll();
                List <Venue> allVenues = Venue.GetAll();
                return(View["all_venues.cshtml", allVenues]);
            };

////GENRES////
            Get["/genres"] = _ => {
                List <Genre> allGenres = Genre.GetAll();
                return(View["all_genres.cshtml", allGenres]);
            };

            Get["/genres/new"] = _ => View["new_genre_form.cshtml"];

            Post["/genres/new"] = _ => {
                string newGenreName = Request.Form["genre-name"];
                Genre  newGenre     = new Genre(newGenreName);
                newGenre.Save();
                return(View["genre.cshtml", newGenre]);
            };

            Get["/genres/{id}"] = parameters => {
                Genre foundGenre = Genre.Find(parameters.id);
                return(View["genre.cshtml", foundGenre]);
            };

            Delete["/genres/delete"] = _ => {
                int targetId = int.Parse(Request.Form["target-id"]);
                Genre.Delete(targetId);
                List <Genre> allGenres = Genre.GetAll();
                return(View["all_genres.cshtml", allGenres]);
            };

            Delete["/genres/delete_all"] = _ => {
                Genre.DeleteAll();
                List <Genre> allGenres = Genre.GetAll();
                return(View["all_genres.cshtml", allGenres]);
            };

            Get["/genres/{id}/update"] = parameters => {
                Genre foundGenre = Genre.Find(parameters.id);
                return(View["genre_update.cshtml", foundGenre]);
            };

            Patch["/genres/update"] = parameters => {
                string newGenreName = Request.Form["genre-name"];
                int    targetId     = int.Parse(Request.Form["target-id"]);
                Genre.Update(targetId, newGenreName);
                Genre foundGenre = Genre.Find(targetId);
                return(View["genre_update.cshtml", foundGenre]);
            };

            Get["/venue-genre"] = _ => {
                List <Venue> allVenues = Venue.GetAll();
                List <Genre> allGenres = Genre.GetAll();

                Dictionary <string, object> returnModel = new Dictionary <string, object>()
                {
                    { "venues", allVenues },
                    { "genres", allGenres }
                };

                return(View["venue_genre.cshtml", returnModel]);
            };

            Post["/venue-genre"] = _ => {
                int venueId = int.Parse(Request.Form["venue"]);
                int genreId = int.Parse(Request.Form["genre"]);

                Venue foundVenue = Venue.Find(venueId);
                foundVenue.AddGenre(genreId);
                return(View["venue.cshtml", foundVenue]);
            };

            Get["/band-genre"] = _ => {
                List <Band>  allBands  = Band.GetAll();
                List <Genre> allGenres = Genre.GetAll();

                Dictionary <string, object> returnModel = new Dictionary <string, object>()
                {
                    { "bands", allBands },
                    { "genres", allGenres }
                };

                return(View["band_genre.cshtml", returnModel]);
            };

            Post["/band-genre"] = _ => {
                int bandId  = int.Parse(Request.Form["band"]);
                int genreId = int.Parse(Request.Form["genre"]);

                Band foundBand = Band.Find(bandId);
                foundBand.AddGenre(genreId);
                return(View["band.cshtml", foundBand]);
            };

// Performances
            Get["/performance"] = _ => {
                List <Band>  allBands  = Band.GetAll();
                List <Venue> allVenues = Venue.GetAll();

                Dictionary <string, object> returnModel = new Dictionary <string, object>()
                {
                    { "bands", allBands },
                    { "venues", allVenues }
                };
                return(View["performance.cshtml", returnModel]);
            };

            Post["/performance"] = _ => {
                int  venueId   = int.Parse(Request.Form["venue"]);
                int  bandId    = int.Parse(Request.Form["band"]);
                Band foundBand = Band.Find(bandId);
                foundBand.AddPerformance(venueId);
                return(View["band.cshtml", foundBand]);
            };
        }