コード例 #1
0
        public async Task <LinkedList <ReturnMovie> > GetMovies(List <string> titles)
        {
            //LinkedList<JObject> backendResponses = new LinkedList<JObject>();
            LinkedList <ReturnMovie> movieList = new LinkedList <ReturnMovie>();

            //todo: make this fancy async
            foreach (var movie in titles)
            {
                try
                {
                    JObject singleResponse = await _OMDBConnector.GetMovie(movie);

                    if (singleResponse != null)
                    {
                        OMDBMovie   mappedMovie = _movieMapper.JsonToMovie(singleResponse);
                        ReturnMovie returnMovie = _movieConverter.OMDBToReturnMovie(mappedMovie);
                        movieList.AddLast(returnMovie);
                    }
                    else
                    {
                        Console.WriteLine($"Error when trying to retrieve {movie}, skipping adding it to the list");
                    }
                }
                catch (System.Exception e)
                {
                    Console.WriteLine(e);
                }
            }
            //foreach (JObject jobject in backendResponses)
            //{
            //    movieList.AddLast(_movieMapper.JsonToMovie(jobject));
            //}

            return(movieList);
        }
コード例 #2
0
 public ReturnMovie OMDBToReturnMovie(OMDBMovie omdb)
 {
     return(new ReturnMovie()
     {
         Title = omdb.Title,
         ReleaseDate = omdb.Released,
         IMDBRating = ToDecimal(omdb.Ratings.Where(x => x.Source == "Internet Movie Database")?.LastOrDefault()?.Value?.TrimNumFromEnd(3)),
         RTRating = ToInt(omdb.Ratings.Where(x => x.Source == "Rotten Tomatoes")?.LastOrDefault()?.Value?.TrimEnd('%')),
         MetacriticRating = ToInt(omdb.Ratings.Where(x => x.Source == "Metacritic")?.LastOrDefault()?.Value?.TrimNumFromEnd(4)),
         PosterImage = omdb.Poster
     });
 }
コード例 #3
0
        public async Task <ReturnMovie> GetMovie(string title)
        {
            //Get movie from OMDB
            JObject backendResponse = await _OMDBConnector.GetMovie(title);

            //Do some verification (TODO)
            //Map the JSON to a Movie object
            if (backendResponse != null)
            {
                OMDBMovie   mappedMovie = _movieMapper.JsonToMovie(backendResponse);
                ReturnMovie returnMovie = _movieConverter.OMDBToReturnMovie(mappedMovie);
                return(returnMovie);
            }
            else
            {
                //todo make exceptions return proper json errors
                return(null);
                //throw new Exception($"Could not retrieve movie {title}");
            }
        }
コード例 #4
0
        public static OMDBMovie OMDBResponse(string movieName, string year)
        {
            movieName = movieName.Replace(' ', '+');
            string         url     = "http://www.omdbapi.com/?t=" + movieName + "&y=" + year + "&plot=full&r=json";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

            try
            {
                WebResponse response = request.GetResponse();
                using (Stream responseStream = response.GetResponseStream())
                {
                    StreamReader reader    = new StreamReader(responseStream, Encoding.UTF8);
                    OMDBMovie    movieInfo = new OMDBMovie();
                    JsonConvert.PopulateObject(reader.ReadToEnd(), movieInfo);
                    return(movieInfo);
                }
            }
            catch (WebException ex)
            {
                return(null);
            }
        }