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