Exemple #1
0
        public async Task <Movie> GetMovieAsync(BaseMovieViewModel movieViewModel)
        {
            var storageMovie = await _movieMemoryStorage.Get(movieViewModel.Id.ToString());

            if (storageMovie != null)
            {
                return(storageMovie);
            }

            var completeUrl = _movieSettings.BaseUrl + GetMovieUrl;
            var getMovieUri = new UrlBuilder(string.Format(completeUrl, movieViewModel.Id))
                              .SetApiKey(_movieSettings.ApiKey)
                              .SetLanguage(movieViewModel.Language)
                              .Build();

            var responseMessage = await _httpClient.GetAsync(getMovieUri);

            if (!responseMessage.IsSuccessStatusCode)
            {
                throw new MovieClientException();
            }

            var response = await responseMessage.Content.ReadAsStringAsync();

            var movie = JsonConvert.DeserializeObject <Movie>(response);

            await _movieMemoryStorage.Set(movie.Id.ToString(), movie);

            return(movie);
        }
Exemple #2
0
        public async Task <IEnumerable <Video> > GetMovieVideosAsync(BaseMovieViewModel movieViewModel)
        {
            var completeUrl       = _movieSettings.BaseUrl + GetMovieVideosUrl;
            var getMovieVideosUri = new UrlBuilder(string.Format(completeUrl, movieViewModel.Id))
                                    .SetApiKey(_movieSettings.ApiKey)
                                    .SetLanguage(movieViewModel.Language)
                                    .Build();

            return(await ExecuteRequest <IEnumerable <Video> >(getMovieVideosUri, ParsedResultsArrayName).ConfigureAwait(false));
        }