/// <summary>
		/// PUT /movies
		/// </summary>
		public object Put(Movie movie)
		{
			DbFactory.Run(db => db.Save(movie));
			return new MovieResponse();
		}
		/// <summary>
		/// DELETE /movies/{Id}
		/// </summary>
		public object Delete(Movie request)
		{
			DbFactory.Run(db => db.DeleteById<Movie>(request.Id));
			return new MovieResponse();
		}
		/// <summary>
		/// POST /movies
		/// </summary>
		public object Post(Movie movie)
		{
			var newMovieId = DbFactory.Run(db => {
				db.Insert(movie);
				return db.GetLastInsertId();
			});

			var newMovie = new MovieResponse {
				Movie = DbFactory.Run(db => db.GetById<Movie>(newMovieId))
			};
			return new HttpResult(newMovie) {
				StatusCode = HttpStatusCode.Created,
				Headers = {
					{ HttpHeaders.Location, this.RequestContext.AbsoluteUri.WithTrailingSlash() + newMovieId }
				}
			};
		}
		/// <summary>
		/// GET /movies/{Id} 
		/// </summary>
		public object Get(Movie movie)
		{
			return new MovieResponse {
				Movie = DbFactory.Run(db => db.GetById<Movie>(movie.Id))
			};
		}
        /// <summary>Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" />.</summary>
        ///
        /// <param name="other">The movie to compare to this object.</param>
        ///
        /// <returns>true if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" />; otherwise, false.</returns>
		public bool Equals(Movie other)
		{
			if (ReferenceEquals(null, other)) return false;
			if (ReferenceEquals(this, other)) return true;
			return Equals(other.ImdbId, ImdbId)
				&& Equals(other.Title, Title)
				&& other.Rating == Rating
				&& Equals(other.Director, Director)
				&& other.ReleaseDate.Equals(ReleaseDate)
				&& Equals(other.TagLine, TagLine)
				&& Genres.EquivalentTo(other.Genres);
		}
示例#6
0
        public void Can_DELETE_Movie_using_RestClient(string postPath, string deletePath)
        {
            var restClient = CreateRestClient();

            var newMovie = new Movie {
                ImdbId = "tt0450259",
                Title = "Blood Diamond",
                Rating = 8.0m,
                Director = "Edward Zwick",
                ReleaseDate = new DateTime(2007, 1, 26),
                TagLine = "A fisherman, a smuggler, and a syndicate of businessmen match wits over the possession of a priceless diamond.",
                Genres = new List<string> { "Adventure", "Drama", "Thriller" },
            };

            var response = restClient.Post<MovieResponse>(postPath, newMovie);
            var createdMovie = response.Movie;
            response = restClient.Delete<MovieResponse>(deletePath + createdMovie.Id);

            Assert.That(createdMovie, Is.Not.Null);
            Assert.That(response.Movie, Is.Null);
        }
示例#7
0
        public void Can_POST_to_add_new_Movie_using_RestClient(string path)
        {
            var restClient = CreateRestClient();

            var newMovie = new Movie {
                ImdbId = "tt0450259",
                Title = "Blood Diamond",
                Rating = 8.0m,
                Director = "Edward Zwick",
                ReleaseDate = new DateTime(2007, 1, 26),
                TagLine = "A fisherman, a smuggler, and a syndicate of businessmen match wits over the possession of a priceless diamond.",
                Genres = new List<string> { "Adventure", "Drama", "Thriller" },
            };

            var response = restClient.Post<MovieResponse>(path, newMovie);

            Assert.That(response, Is.Not.Null, "No response received");

            var createdMovie = response.Movie;
            Assert.That(createdMovie.Id, Is.GreaterThan(0));
            Assert.That(createdMovie.ImdbId, Is.EqualTo(newMovie.ImdbId));
        }