Пример #1
0
        /// <summary>
        /// Fetches the data from actor node.
        /// </summary>
        /// <param name="series">The series.</param>
        /// <param name="reader">The reader.</param>
        private void FetchDataFromActorNode(Series series, XmlReader reader)
        {
            reader.MoveToContent();

            var personInfo = new PersonInfo();

            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    switch (reader.Name)
                    {
                        case "Name":
                            {
                                personInfo.Name = (reader.ReadElementContentAsString() ?? string.Empty).Trim();
                                break;
                            }

                        case "Role":
                            {
                                personInfo.Role = (reader.ReadElementContentAsString() ?? string.Empty).Trim();
                                break;
                            }

                        case "SortOrder":
                            {
                                var val = reader.ReadElementContentAsString();

                                if (!string.IsNullOrWhiteSpace(val))
                                {
                                    int rval;

                                    // int.TryParse is local aware, so it can be probamatic, force us culture
                                    if (int.TryParse(val, NumberStyles.Integer, UsCulture, out rval))
                                    {
                                        personInfo.SortOrder = rval;
                                    }
                                }
                                break;
                            }
                        
                        default:
                            reader.Skip();
                            break;
                    }
                }
            }

            personInfo.Type = PersonType.Actor;

            if (!string.IsNullOrEmpty(personInfo.Name))
            {
                series.AddPerson(personInfo);
            }
        }
        /// <summary>
        /// Fetches the actors.
        /// </summary>
        /// <param name="series">The series.</param>
        /// <param name="actorsDoc">The actors doc.</param>
        /// <param name="seriesDoc">The seriesDoc.</param>
        /// <returns>Task.</returns>
        private void FetchActors(Series series, XmlDocument actorsDoc, XmlDocument seriesDoc)
        {
            var xmlNodeList = actorsDoc.SelectNodes("Actors/Actor");

            if (xmlNodeList != null)
            {
                series.People.Clear();

                foreach (XmlNode p in xmlNodeList)
                {
                    string actorName = p.SafeGetString("Name");
                    string actorRole = p.SafeGetString("Role");
                    if (!string.IsNullOrWhiteSpace(actorName))
                    {
                        // Sometimes tvdb actors have leading spaces
                        series.AddPerson(new PersonInfo { Type = PersonType.Actor, Name = actorName.Trim(), Role = actorRole });
                    }
                }
            }
        }
Пример #3
0
        /// <summary>
        /// Fetches the data from actor node.
        /// </summary>
        /// <param name="series">The series.</param>
        /// <param name="reader">The reader.</param>
        private void FetchDataFromActorNode(Series series, XmlReader reader)
        {
            reader.MoveToContent();

            var personInfo = new PersonInfo();

            while (reader.Read())
            {
                if (reader.NodeType == XmlNodeType.Element)
                {
                    switch (reader.Name)
                    {
                        case "Name":
                            {
                                personInfo.Name = (reader.ReadElementContentAsString() ?? string.Empty).Trim();
                                break;
                            }

                        case "Role":
                            {
                                personInfo.Role = (reader.ReadElementContentAsString() ?? string.Empty).Trim();
                                break;
                            }

                        default:
                            reader.Skip();
                            break;
                    }
                }
            }

            personInfo.Type = PersonType.Actor;

            if (!string.IsNullOrEmpty(personInfo.Name))
            {
                series.AddPerson(personInfo);
            }
        }
Пример #4
0
        /// <summary>
        /// Fetches the actors.
        /// </summary>
        /// <param name="series">The series.</param>
        /// <param name="actorsDoc">The actors doc.</param>
        /// <param name="seriesDoc">The seriesDoc.</param>
        /// <returns>Task.</returns>
        private void FetchActors(Series series, XmlDocument actorsDoc, XmlDocument seriesDoc)
        {
            XmlNode actorsNode = null;
            if (ConfigurationManager.Configuration.SaveLocalMeta)
            {
                //add to the main seriesDoc for saving
                var seriesNode = seriesDoc.SelectSingleNode("//Series");
                if (seriesNode != null)
                {
                    actorsNode = seriesDoc.CreateNode(XmlNodeType.Element, "Persons", null);
                    seriesNode.AppendChild(actorsNode);
                }
            }

            var xmlNodeList = actorsDoc.SelectNodes("Actors/Actor");

            if (xmlNodeList != null)
            {
                series.People.Clear();

                foreach (XmlNode p in xmlNodeList)
                {
                    string actorName = p.SafeGetString("Name");
                    string actorRole = p.SafeGetString("Role");
                    if (!string.IsNullOrWhiteSpace(actorName))
                    {
                        series.AddPerson(new PersonInfo { Type = PersonType.Actor, Name = actorName, Role = actorRole });

                        if (ConfigurationManager.Configuration.SaveLocalMeta && actorsNode != null)
                        {
                            //create in main seriesDoc
                            var personNode = seriesDoc.CreateNode(XmlNodeType.Element, "Person", null);
                            foreach (XmlNode subNode in p.ChildNodes)
                                personNode.AppendChild(seriesDoc.ImportNode(subNode, true));
                            //need to add the type
                            var typeNode = seriesDoc.CreateNode(XmlNodeType.Element, "Type", null);
                            typeNode.InnerText = PersonType.Actor;
                            personNode.AppendChild(typeNode);
                            actorsNode.AppendChild(personNode);
                        }

                    }
                }
            }
        }