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