コード例 #1
0
        public IHttpActionResult Post([FromBody] Models.Movie movie)
        {
            try
            {
                if (movie == null)
                {
                    return(BadRequest("Movie cannot be null"));
                }

                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                var movieRepository = new Models.MovieRepository();
                var newMovie        = movieRepository.Save(movie);
                if (newMovie == null)
                {
                    return(Conflict());
                }
                return(Created <Movie>(Request.RequestUri + newMovie.MovieId.ToString(),
                                       newMovie));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
コード例 #2
0
        public IHttpActionResult Get(int id)
        {
            try
            {
                Movie movie;
                var   moviesRepository = new Models.MovieRepository();

                if (id > 0)
                {
                    var movies = moviesRepository.Retrieve();
                    movie = movies.FirstOrDefault(t => t.MovieId == id);
                    if (movie == null)
                    {
                        return(NotFound());
                    }
                }
                else
                {
                    movie = moviesRepository.Create();
                }
                return(Ok(movie));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
コード例 #3
0
        public MoviesModule()
            : base("/api")
        {
            // GET api/movies
            Get["/movies"] = _ =>
            {
                var movies = new Models.MovieRepository();
                return JsonConvert.SerializeObject(movies.Retrieve());
            };

            // GET api/movies/title
            Get["/movies/{title:alpha}"] = parameters =>
            {
                var movies = new Models.MovieRepository();
                var movieList = movies.Retrieve();
                var filteredList = movieList.Where(t => t.title.Contains(parameters.title));
                return JsonConvert.SerializeObject(filteredList);
            };

            // GET api/movies/5
            Get["/movies/{id:int}"] = parameters =>
            {
                var movies = new Models.MovieRepository();
                var movieList = movies.Retrieve();
                var movie = movieList.FirstOrDefault(t => t.movieId == parameters.id);

                var actors = new Models.ActorRepository();
                var actorList = actors.Retrieve();

                var populatedActorList = new List<Models.Actor>();
                foreach (var item in movie.keyActors)
                {
                    var actor = actorList.FirstOrDefault(a => a.actorId == item.actorId);
                    populatedActorList.Add(actor);
                }
                movie.keyActors = populatedActorList;

                return JsonConvert.SerializeObject(movie);
            };

            // POST api/movies
            Post["/movies"] = _ =>
            {
                Movie movie = this.Bind<Movie>(); //Bind is an extension method defined in Nancy.ModelBinding
                return "Post movie form: " + movie.title;
            };

            // PUT api/movies/5
            Put["/movies/{id}"] = parameters =>
            {
                Movie movie = this.Bind<Movie>();
                return "Put param: " + parameters.id + ", actor form: " + movie.title;
            };

            // DELETE api/movies/5
            Delete["/movies/{id}"] = parameters =>
            {
                return "Delete param: " + parameters.id;
            };
        }
コード例 #4
0
 // GET api/movies/title
 public IEnumerable<Models.Movie> Get(string title)
 {
     var movies = new Models.MovieRepository();
     var movieList = movies.Retrieve();
     var filteredList = movieList.Where(t => t.title.Contains(title));
     return filteredList;
 }
コード例 #5
0
        public IHttpActionResult Get(int id)
        {
            try
            {
                Movie movie;
                var moviesRepository = new Models.MovieRepository();

                if (id > 0)
                {
                    var movies = moviesRepository.Retrieve();
                    movie = movies.FirstOrDefault(t => t.MovieId == id);
                    if (movie == null)
                    {
                        return NotFound();
                    }
                }
                else
                {
                    movie = moviesRepository.Create();
                }
                return Ok(movie);
            }
            catch (Exception ex)
            {
                return InternalServerError(ex);
            }
        }
コード例 #6
0
        // GET api/movies/title
        public IEnumerable <Models.Movie> Get(string title)
        {
            var movies       = new Models.MovieRepository();
            var movieList    = movies.Retrieve();
            var filteredList = movieList.Where(t => t.title.Contains(title));

            return(filteredList);
        }
コード例 #7
0
        public ActorsModule()
            : base("/api")
        {
            // GET api/actors
            Get["/actors"] = _ =>
            {
                var actors = new Models.ActorRepository();
                return JsonConvert.SerializeObject(actors.Retrieve());
            };

            // GET api/actors/name
            Get["/actors/{name:alpha}"] = parameters =>
            {
                var actors = new Models.ActorRepository();
                var actorList = actors.Retrieve();
                var filteredList = actorList.Where(t => t.name.Contains(parameters.name));
                return JsonConvert.SerializeObject(filteredList);
            };

            // GET api/actors/5
            Get["/actors/{id:int}"] = parameters =>
            {
                var actors = new Models.ActorRepository();
                var actorList = actors.Retrieve();
                var actor = actorList.FirstOrDefault(t => t.actorId == parameters.id);

                var movies = new Models.MovieRepository();
                var movieList = movies.Retrieve();

                var keyMovies = movieList.SelectMany(m => m.keyActors.Where(a => a.actorId == actor.actorId),
                    (m, a) => m);
                actor.keyMovies = keyMovies.ToList();

                return JsonConvert.SerializeObject(actor);
            };

            // POST api/actors
            Post["/actors"] = _ =>
            {
                Actor actor = this.Bind<Actor>(); //Bind is an extension method defined in Nancy.ModelBinding
                return "Post actor form: " + actor.name;
            };

            // PUT api/actors/5
            Put["/actors/{id}"] = parameters =>
            {
                Actor actor = this.Bind<Actor>();
                return "Put param: " + parameters.id + ", actor form: " + actor.name;
            };

            // DELETE api/actors/5
            Delete["/actors/{id}"] = parameters =>
            {
                return "Delete param: " + parameters.id;
            };
        }
コード例 #8
0
        // GET api/actors/5
        public Models.Actor Get(int id)
        {
            var actors = new Models.ActorRepository();
            var actorList = actors.Retrieve();
            var actor = actorList.FirstOrDefault(t => t.actorId == id);

            var movies = new Models.MovieRepository();
            var movieList = movies.Retrieve();

            var keyMovies = movieList.SelectMany(m => m.keyActors.Where(a => a.actorId == actor.actorId),
                                (m,a)=>m);
            actor.keyMovies = keyMovies.ToList();

            return actor;
        }
コード例 #9
0
        // GET api/actors/5
        public Models.Actor Get(int id)
        {
            var actors    = new Models.ActorRepository();
            var actorList = actors.Retrieve();
            var actor     = actorList.FirstOrDefault(t => t.actorId == id);

            var movies    = new Models.MovieRepository();
            var movieList = movies.Retrieve();

            var keyMovies = movieList.SelectMany(m => m.keyActors.Where(a => a.actorId == actor.actorId),
                                                 (m, a) => m);

            actor.keyMovies = keyMovies.ToList();

            return(actor);
        }
コード例 #10
0
        // GET api/movies/5
        public Models.Movie Get(int id)
        {
            var movies = new Models.MovieRepository();
            var movieList = movies.Retrieve();
            var movie = movieList.FirstOrDefault(t => t.movieId==id);

            var actors = new Models.ActorRepository();
            var actorList = actors.Retrieve();

            var populatedActorList = new List<Models.Actor>();
            foreach (var item in movie.keyActors)
            {
                var actor = actorList.FirstOrDefault(a => a.actorId == item.actorId);
                populatedActorList.Add(actor);
            }
            movie.keyActors = populatedActorList;

            return movie;
        }
コード例 #11
0
        public IHttpActionResult Get(string title)
        {
            try
            {
                Movie movie;
                var   moviesRepository = new Models.MovieRepository();

                var movies = moviesRepository.Retrieve();
                movie = movies.FirstOrDefault(t => t.Title == title);
                if (movie == null)
                {
                    return(NotFound());
                }
                return(Ok(movie));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
コード例 #12
0
        // GET api/movies/5
        public Models.Movie Get(int id)
        {
            var movies    = new Models.MovieRepository();
            var movieList = movies.Retrieve();
            var movie     = movieList.FirstOrDefault(t => t.movieId == id);

            var actors    = new Models.ActorRepository();
            var actorList = actors.Retrieve();

            var populatedActorList = new List <Models.Actor>();

            foreach (var item in movie.keyActors)
            {
                var actor = actorList.FirstOrDefault(a => a.actorId == item.actorId);
                populatedActorList.Add(actor);
            }
            movie.keyActors = populatedActorList;

            return(movie);
        }
コード例 #13
0
 public MovieController()
 {
     movieRepository = new Models.MovieRepository();
 }
コード例 #14
0
        // GET api/movies
        public IEnumerable <Models.Movie> Get()
        {
            var movies = new Models.MovieRepository();

            return(movies.Retrieve());
        }
コード例 #15
0
        public IHttpActionResult Get(string title)
        {
            try
            {
                Movie movie;
                var moviesRepository = new Models.MovieRepository();

                var movies = moviesRepository.Retrieve();
                movie = movies.FirstOrDefault(t => t.Title == title);
                if (movie == null)
                {
                    return NotFound();
                }
                return Ok(movie);
            }
            catch (Exception ex)
            {
                return InternalServerError(ex);
            }
        }
コード例 #16
0
 // GET api/movies
 public IEnumerable<Models.Movie> Get()
 {
     var movies = new Models.MovieRepository();
     return movies.Retrieve();
 }
コード例 #17
0
        public IHttpActionResult Post([FromBody]Models.Movie movie)
        {
            try
            {
                if (movie == null)
                {
                    return BadRequest("Movie cannot be null");
                }

                if (!ModelState.IsValid)
                {
                    return BadRequest(ModelState);
                }

                var movieRepository = new Models.MovieRepository();
                var newMovie = movieRepository.Save(movie);
                if (newMovie == null)
                {
                    return Conflict();
                }
                return Created<Movie>(Request.RequestUri + newMovie.MovieId.ToString(),
                        newMovie);
            }
            catch (Exception ex)
            {
                return InternalServerError(ex);
            }
        }