/// <summary>
        /// The GetMovies
        /// </summary>
        /// <param name="cancellationToken">The cancellationToken<see cref="CancellationToken"/></param>
        /// <returns>The <see cref="Task{IEnumerable{Movie}}"/></returns>
        public async Task <IEnumerable <Movie> > GetMovies(CancellationToken cancellationToken)
        {
            HttpRequestMessage request = new HttpRequestMessage(
                HttpMethod.Get,
                "api/movies");

            request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            request.Headers.AcceptEncoding.Add(new StringWithQualityHeaderValue("gzip"));

            using (HttpResponseMessage response = await this._client.SendAsync(request,
                                                                               HttpCompletionOption.ResponseHeadersRead,
                                                                               cancellationToken))
            {
                System.IO.Stream stream = await response.Content.ReadAsStreamAsync();

                response.EnsureSuccessStatusCode();

                return(stream.ReadAndDeserializeFromJson <List <Movie> >());
            }
        }