protected void Page_Load(object sender, EventArgs e) { using (new SecurityDisabler()) { Sitecore.Configuration.Settings.Indexing.Enabled = false; IndexCustodian.PauseIndexing(); TMDbClient client = new TMDbClient("a7e29a282bb192663ce78f3574cf7a24"); client.GetConfig(); var master = Factory.GetDatabase("master"); var movieContainer = master.GetItem(new ID("{46294884-8157-4828-9FD1-83B6E8EAFEA0}")); //movieContainer.DeleteChildren(); var folderItem = master.GetItem(new ID("{A87A00B1-E6DB-45AB-8B54-636FEC3B5523}")); var movieTemplateItem = master.GetItem(new ID("{7D2F4318-029A-461B-854E-FD7CFB4C4F6A}")); var genresContainer = master.GetItem(new ID("{1A3786F4-68C0-47A5-A9D5-462765FE7C3E}")); var listItem = master.GetItem(new ID("{EB8C2C7A-FE2B-4E9A-8859-D4EBD9CD94D1}")); var productionCompaniesContainer = master.GetItem(new ID("{7A968F6F-7A21-4977-815C-581A9DC3EF5A}")); var productionCountriesContainer = master.GetItem(new ID("{2E421735-1C21-4648-8CC9-118B68B150C8}")); var pageID = 0; var totalPages = client.GetMovieList(MovieListType.TopRated, pageID).TotalPages; while (pageID <= totalPages) { var movies = client.GetMovieList(MovieListType.TopRated, pageID); pageID++; foreach (var movie in movies.Results) { litMessage.Text += String.Format("{0} -> {1}<br/>", movie.OriginalTitle, !movie.Title.Equals(movie.OriginalTitle) ? movie.Title : ""); var movieExt = client.GetMovie(movie.Id, MovieMethods.Credits); var sitecoreTitle = ItemUtil.ProposeValidItemName(movieExt.Title.Trim().ToLower()); var firstLetter = ItemUtil.ProposeValidItemName(sitecoreTitle.Substring(0, 1)); Item subFolder = movieContainer.Children.FirstOrDefault(x => x.Name == firstLetter); if (subFolder == null) subFolder = movieContainer.Add(firstLetter, new TemplateID(folderItem.ID)); if (subFolder.Children.FirstOrDefault(x => x.Name == sitecoreTitle) != null) continue; var movieItem = subFolder.Add(sitecoreTitle, new TemplateID(movieTemplateItem.ID)); movieItem.Editing.BeginEdit(); movieItem["Original title"] = movieExt.OriginalTitle; movieItem["Title"] = movieExt.Title; movieItem["Tagline"] = movieExt.Tagline; movieItem["Body"] = movieExt.Overview; movieItem["Vote average"] = movieExt.VoteAverage.ToString("00.00"); movieItem["Vote count"] = movieExt.VoteCount.ToString(); var genresField = (MultilistField) movieItem.Fields["Genres"]; foreach (var genre in movieExt.Genres) { var genreSitecoreName = ItemUtil.ProposeValidItemName(genre.Name.Trim().ToLower()); var genreItem = genresContainer.Children.FirstOrDefault(x => x.Name == genreSitecoreName); if (genreItem == null) { genreItem = genresContainer.Add(genreSitecoreName, new TemplateID(listItem.ID)); genreItem.Editing.BeginEdit(); genreItem["Id"] = genre.Id.ToString(); genreItem["Name"] = genre.Name; genreItem.Editing.EndEdit(); } genresField.Add(genreItem.ID.ToString()); } movieItem["Tmdb Id"] = movieExt.Id.ToString(); movieItem["Imdb Id"] = movieExt.ImdbId; movieItem["Runtime"] = movieExt.Runtime.GetValueOrDefault().ToString(); movieItem["Status"] = movieExt.Status; movieItem["Release date"] = DateUtil.ToIsoDate(movieExt.ReleaseDate.GetValueOrDefault()); var productionCompaniesField = (MultilistField) movieItem.Fields["Production companies"]; foreach (var productionCompany in movieExt.ProductionCompanies) { var productionCompanySitecoreName = ItemUtil.ProposeValidItemName(productionCompany.Name.Trim().ToLower()); var productionCompanyItem = productionCompaniesContainer.Children.FirstOrDefault( x => x.Name == productionCompanySitecoreName); if (productionCompanyItem == null) { productionCompanyItem = productionCompaniesContainer.Add(productionCompanySitecoreName, new TemplateID(listItem.ID)); productionCompanyItem.Editing.BeginEdit(); productionCompanyItem["Id"] = productionCompany.Id.ToString(); productionCompanyItem["Name"] = productionCompany.Name; productionCompanyItem.Editing.EndEdit(); } productionCompaniesField.Add(productionCompanyItem.ID.ToString()); } var productionCountriesField = (MultilistField) movieItem.Fields["Production countries"]; foreach (var productionCountry in movieExt.ProductionCountries) { var productionCountrySitecoreName = ItemUtil.ProposeValidItemName(productionCountry.Name.Trim().ToLower()); var productionCountryItem = productionCountriesContainer.Children.FirstOrDefault( x => x.Name == productionCountrySitecoreName); if (productionCountryItem == null) { productionCountryItem = productionCountriesContainer.Add(productionCountrySitecoreName, new TemplateID(listItem.ID)); productionCountryItem.Editing.BeginEdit(); productionCountryItem["Id"] = productionCountry.Iso_3166_1; productionCountryItem["Name"] = productionCountry.Name; productionCountryItem.Editing.EndEdit(); } productionCountriesField.Add(productionCountryItem.ID.ToString()); } var posterUri = client.GetImageUrl("original", movie.PosterPath); if (!String.IsNullOrEmpty(movie.PosterPath)) { var mediaItem = AddFile(posterUri, sitecoreTitle, movie.PosterPath.Replace("/", "")); if (mediaItem != null) { Sitecore.Data.Fields.ImageField imageField = movieItem.Fields["Image"]; imageField.MediaID = mediaItem.ID; } } movieItem["Menu title"] = movie.Title; movieItem["SEO title"] = movie.Title; movieItem.Editing.EndEdit(); } } IndexCustodian.ResumeIndexing(); Sitecore.Configuration.Settings.Indexing.Enabled = true; IndexCustodian.RebuildAll(); }}