public EpisodeInfo GetEpisodeName(EpisodeInfo episode) { if (!showInfoBox.ContainsKey(episode.ShowName)) { var xmlEpisodeInfo = webClient.DownloadString(String.Format(GET_SHOW_EPISODE_NAME_URI, episode.ShowName, episode.Season, episode.Episode)); if (String.IsNullOrEmpty(xmlEpisodeInfo)) { throw new InvalidFilterCriteriaException(String.Format("Não foi encontrado o programa \"{0}\"", episode.ShowName)); } var doc = new XmlDocument(); doc.LoadXml(xmlEpisodeInfo); var idNode = int.Parse(doc.SelectSingleNode("/show/@id").InnerText); showInfoBox.Add(episode.ShowName, new KeyValuePair <int, XmlDocument>(idNode, doc)); } var showId = showInfoBox[episode.ShowName].Key; var showInfo = showInfoBox[episode.ShowName].Value; if (showInfo.SelectSingleNode("/show/episode/number").InnerText == episode.GetFormatedSeasonEpisodeString()) { episode.Name = showInfo.SelectSingleNode("/show/episode/title").InnerText; } return(episode); }
private void Parse() { try { StripExtensionAndCleanFileName(); StripEpisodeInfo(); GetShowName(); EpisodeInfo = new EpisodeInfo { ShowName = ShowName, Season = Season, Episode = Episode }; } catch { Success = false; } }