예제 #1
0
        /// <summary>
        /// Converts HTTP get result node into movie.
        /// </summary>
        /// <param name="baseMovie">Movie instance to start with (to keep path/org info from)</param>
        /// <param name="resultNode">Result node from get request containing movie info</param>
        /// <returns>Movie with properties from results node</returns>
        private void ParseMovieResult(Movie baseMovie, JsonNode resultNode)
        {
            baseMovie.DatabaseSelection = (int)MovieDatabaseSelection.TheMovieDb;

            // Go through result child nodes and get properties for movie
            foreach (JsonNode resultPropNode in resultNode.ChildNodes)
                switch (resultPropNode.Name)
                {
                    case "id":
                        int id2;
                        int.TryParse(resultPropNode.Value, out id2);
                        baseMovie.Id = id2;
                        break;
                    case "title":
                        baseMovie.DatabaseName = resultPropNode.Value;
                        break;
                    case "original_title":
                        if (string.IsNullOrEmpty(baseMovie.DatabaseName))
                            baseMovie.DatabaseName = resultPropNode.Value;
                        break;
                    case "release_date":
                        DateTime date;
                        DateTime.TryParse(resultPropNode.Value, out date);
                        baseMovie.DatabaseYear = date.Year;
                        break;
                    case "genres":
                        baseMovie.DatabaseGenres = new GenreCollection(GenreCollection.CollectionType.Movie);
                        foreach (JsonNode genreNode in resultPropNode.ChildNodes)
                        {
                            foreach (JsonNode genrePropNode in genreNode.ChildNodes)
                                if (genrePropNode.Name == "name")
                                    baseMovie.DatabaseGenres.Add(genrePropNode.Value);
                        }
                        break;
                    case "overview":
                        baseMovie.Overview = resultPropNode.Value;
                        break;
                }
        }
예제 #2
0
        /// <summary>
        /// Converts HTTP get result node into movie.
        /// </summary>
        /// <param name="baseMovie">Movie instance to start with (to keep path/org info from)</param>
        /// <param name="resultNode">Result node from get request containing movie info</param>
        /// <returns>Movie with properties from results node</returns>
        private void ParseMovieResult(Movie baseMovie, JsonNode resultNode)
        {
            baseMovie.DatabaseSelection = (int)MovieDatabaseSelection.RottenTomotoes;

            // Go through result child nodes and get properties for movie
            foreach (JsonNode resultPropNode in resultNode.ChildNodes)
                switch (resultPropNode.Name)
                {
                    case "id":
                        int id2;
                        int.TryParse(resultPropNode.Value, out id2);
                        baseMovie.Id = id2;
                        break;
                    case "title":
                        baseMovie.DatabaseName = resultPropNode.Value;
                        break;
                    case "original_title":
                        if (string.IsNullOrEmpty(baseMovie.DatabaseName))
                            baseMovie.DatabaseName = resultPropNode.Value;
                        break;
                    case "year":
                        if (baseMovie.DatabaseYear < 1900)
                        {
                            int year;
                            if (int.TryParse(resultPropNode.Value, out year))
                                baseMovie.DatabaseYear = year;
                        }
                        break;
                    //case "release_dates":
                    //    foreach(JsonNode node in resultPropNode.ChildNodes)
                    //        if (node.Name == "theater")
                    //        {
                    //            DateTime date;
                    //            DateTime.TryParse(node.Value, out date);
                    //            baseMovie.Date = date;
                    //        }

                    //    break;
                    case "genres":
                        baseMovie.DatabaseGenres = new GenreCollection(GenreCollection.CollectionType.Movie);
                        string[] genres = resultPropNode.Value.Split(',');
                        foreach (string genre in genres)
                        {
                            string noQuotesGenre = genre.Replace("\"", "");
                            string[] multiGenre = noQuotesGenre.Split('&');
                            foreach (string g in multiGenre)
                                baseMovie.DatabaseGenres.Add(g.Trim());
                        }
                        break;
                    case "synopsis":
                        baseMovie.Overview = resultPropNode.Value;
                        break;
                }
        }