Exemple #1
0
        public void Should_return_all_genres_translated_to_a_genres_response(
            IWebApiMovieRestContext context,
            GetGenresRequestHandler getGenresRequestHandler,
            GetGenresRequest getGenreRequest,
            GenresResponse genresResponse
            )
        {
            "Given a WebApiMovieRestContext"
            .Given(() => context = new WebApiMovieRestContext().AutoRollback());

            "And a GetGenresRequestHandler constructed with the context"
            .And(() => getGenresRequestHandler = new GetGenresRequestHandler(context));

            "And a GetGenresRequest".
            And(() => getGenreRequest = new GetGenresRequest());

            "After handling the GetGenresRequest"
            .When(() => genresResponse = getGenresRequestHandler.Handle(getGenreRequest));

            "The GenresResponse should be all existing Genres in the database translated".Then(() =>
            {
                var existingGenresTranslated = new WebApiMovieRestInitializer()
                                               .SeedMovies()
                                               .SelectMany(movie => movie.Genres)
                                               .Distinct()
                                               .ToResponse();

                genresResponse.ShouldBeEquivalentTo(
                    existingGenresTranslated,
                    // do not compare ids
                    o => o.Excluding(x => x.PropertyInfo.Name == "Id")
                    );
            });
        }
        public async Task <IActionResult> GetGenres(GetGenresRequest getGenresRequest)
        {
            var genreViewModel = _mapper.Map <GenreViewModel>(getGenresRequest);

            var genres = await _settingsService.GetGenresAsync(genreViewModel);

            return(Ok(genres));
        }
Exemple #3
0
        public async Task <GetMultipleResponse <Genre> > GetGenres(GetGenresRequest request)
        {
            return(await ExecuteAsync <GetMultipleResponse <Genre> >(request, async response =>
            {
                var getResponse = await _httpClient.GetAsync($"{_baseAddress}/genre/{request.mediaType}/list?api_key={_v3Key}&language={request.language}");

                if (getResponse.IsSuccessStatusCode)
                {
                    response.Results = JsonConvert.DeserializeObject <List <Genre> >(await getResponse.Content.ReadAsStringAsync());
                }
                else
                {
                    throw new ApiException(await getResponse.Content.ReadAsStringAsync(), statusCode: (int)getResponse.StatusCode);
                }
            }));
        }
Exemple #4
0
        public GetGenresResponse GetGenres(GetGenresRequest request)
        {
            var response = new GetGenresResponse()
            {
                Request       = request,
                ResponseToken = Guid.NewGuid()
            };

            try
            {
                response.Genres  = _repository.FindAll().MapToViews();
                response.Success = true;
            }
            catch (Exception ex)
            {
                response.Message = ex.Message;
                response.Success = false;
            }

            return(response);
        }
        public IHttpActionResult Get()
        {
            var loggedUserId = HttpContext.Current.GetOwinContext().GetUserId();

            var request = new GetGenresRequest()
            {
                RequestToken = Guid.NewGuid(),
                UserId       = loggedUserId
            };

            var genresResponse = _genreService.GetGenres(request);

            if (!genresResponse.Success)
            {
                return(BadRequest(genresResponse.Message));
            }

            return(Ok(
                       new
            {
                genres = genresResponse.Genres.MapToViewModels()
            }
                       ));
        }
Exemple #6
0
        public async Task <IActionResult> GetAllAsync([FromQuery] GetGenresRequest request)
        {
            var result = await _mediator.Send(request);

            return(Ok(result));
        }
Exemple #7
0
 /// <summary>
 /// Returns list of genres.
 /// </summary>
 /// <param name="request">Container for the necessary parameters to execute the <see cref="GetGenresAsync(GetGenresRequest)"/> method.</param>
 /// <returns>The response from the Genres API.</returns>
 public async Task <List <GetGenreResponse> > GetGenresAsync(GetGenresRequest request)
 {
     return(await this.ApiRequestAsync <List <GetGenreResponse> >(request));
 }
Exemple #8
0
        /*
         * public string GetCinemas()
         * {
         *  // https://apis.justwatch.com/content/cinemas/en_US?latitude=33.9772015&longitude=-118.1963514&radius=20000
         *  throw new NotImplementedException();
         * }
         */

        /// <summary>
        /// Returns list of genres.
        /// </summary>
        /// <param name="request">Container for the necessary parameters to execute the <see cref="GetGenres(GetGenresRequest)"/> method.</param>
        /// <returns>The response from the Genres API.</returns>
        public List <GetGenreResponse> GetGenres(GetGenresRequest request)
        {
            return(this.ApiRequest <List <GetGenreResponse> >(request));
        }
Exemple #9
0
 public HttpResponseMessage Process([FromUri] GetGenresRequest request)
 {
     return(Request.CreateResponse(HttpStatusCode.OK, _handler.Handle(request)));
 }
Exemple #10
0
 protected override async Task <AbstractAnswer <IEnumerable <Genre> > > HandleAsync(GetGenresRequest request, CancellationToken cancellationToken)
 {
     return(CreateSuccessAnswer(await _genreGetter.InvokeAsync()));
 }