コード例 #1
0
ファイル: MovieService.cs プロジェクト: GDBSD/ServiceStack
 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);
 }
コード例 #2
0
		public void Can_PATCH_Movie_from_dto()
		{
			ExecutePath(HttpMethods.Post, "/movies", null, null, NewMovie);

			var lastInsertId = (int)this.DbFactory.Run(db => db.GetLastInsertId());

			var patchMovie = new Movie { Id = lastInsertId, Title = "PATCHED " + NewMovie.Title };
			ExecutePath(HttpMethods.Patch, "/movies", null, null, patchMovie);

			this.DbFactory.Run(db => {
				var movie = db.GetById<Movie>(lastInsertId);
				Assert.That(movie, Is.Not.Null);
				Assert.That(movie.Title, Is.EqualTo(patchMovie.Title));
			});
		}
コード例 #3
0
        public void Can_PATCH_Movie_from_dto()
        {
            ExecutePath(HttpMethods.Post, "/movies", null, null, NewMovie);

            using (var db = DbFactory.Open())
            {
                var lastInsertId = (int)db.LastInsertId();

                var patchMovie = new Movie { Id = lastInsertId, Title = "PATCHED " + NewMovie.Title };
                ExecutePath(HttpMethods.Patch, "/movies", null, null, patchMovie);

                var movie = db.SingleById<Movie>(lastInsertId);
                Assert.That(movie, Is.Not.Null);
                Assert.That(movie.Title, Is.EqualTo(patchMovie.Title));
            }
        }
コード例 #4
0
        public async Task Can_call_PostAsync_to_add_new_Movie_using_RestClientAsync()
        {
            var asyncClient = CreateServiceClient();
            await asyncClient.PostAsync(new ResetMovies());

            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 = await asyncClient.PostAsync<MovieResponse>("movies", 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));
        }
コード例 #5
0
ファイル: MovieService.cs プロジェクト: GDBSD/ServiceStack
 /// <summary>
 /// PUT /movies
 /// </summary>
 public object Put(Movie movie)
 {
     Db.Update(movie);
     return new MovieResponse();
 }
コード例 #6
0
ファイル: MovieService.cs プロジェクト: GDBSD/ServiceStack
        /// <summary>
        /// POST /movies
        /// </summary>
        public object Post(Movie movie)
        {
            Db.Save(movie);

            var newMovie = new MovieResponse {
                Movie = Db.SingleById<Movie>(movie.Id)
            };
            return new HttpResult(newMovie) {
                StatusCode = HttpStatusCode.Created,
                Headers = {
                    { HttpHeaders.Location, this.Request.AbsoluteUri.WithTrailingSlash() + movie.Id }
                }
            };
        }
コード例 #7
0
ファイル: MovieService.cs プロジェクト: GDBSD/ServiceStack
        /// <summary>
        /// PATCH /movies
        /// </summary>
        public object Patch(Movie movie)
        {
            var existingMovie = Db.SingleById<Movie>(movie.Id);
            if (movie.Title != null)
                existingMovie.Title = movie.Title;
            Db.Save(existingMovie);

            return new MovieResponse();
        }
コード例 #8
0
ファイル: MovieService.cs プロジェクト: GDBSD/ServiceStack
 /// <summary>
 /// GET /movies/{Id} 
 /// </summary>
 public object Get(Movie movie)
 {
     return new MovieResponse {
         Movie = Db.SingleById<Movie>(movie.Id)
     };
 }
コード例 #9
0
ファイル: MovieService.cs プロジェクト: GDBSD/ServiceStack
 /// <summary>
 /// DELETE /movies/{Id}
 /// </summary>
 public object Delete(Movie request)
 {
     Db.DeleteById<Movie>(request.Id);
     return new MovieResponse();
 }
コード例 #10
0
ファイル: MovieService.cs プロジェクト: yeurch/ServiceStack
		/// <summary>
		/// POST /movies
		/// </summary>
		public object Post(Movie movie)
		{
            Db.Insert(movie);
			var newMovieId = Db.GetLastInsertId();

			var newMovie = new MovieResponse {
				Movie = Db.GetById<Movie>(newMovieId)
			};
			return new HttpResult(newMovie) {
				StatusCode = HttpStatusCode.Created,
				Headers = {
					{ HttpHeaders.Location, this.RequestContext.AbsoluteUri.WithTrailingSlash() + newMovieId }
				}
			};
		}