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