Example #1
0
        /// <summary>
        /// Load an XML TV file, and merge contents into existing data (if any)
        /// </summary>
        /// <param name="filename"></param>
        /// <param name="mergeOnly"></param>
        /// <returns></returns>
        public bool LoadXmlTV(string filename, bool mergeOnly = false)
        {
            try
            {
                var xmlTVLoad = new XmlTVDocument();
                xmlTVLoad.Load(filename);
                var localData = new XmlTVData(xmlTVLoad);

                var localRootTvNode = localData.rootNode;

                // Check for root TV node
                if (localRootTvNode == null)
                {
                    addError(1002, "root TV node was not found", XMLTVError.ErrorSeverity.Error, "", "LoadXmlTV");
                    return(false);
                }

                // Check for dupe channel ids
                if (validateChannel(xmlData, localData))
                {
                    return(false);
                }

                if (validateProgramme(xmlData, localData))
                {
                    return(false);
                }

                if (mergeOnly)
                {
                    CopyXmlData(ref localData, xmlData, false);
                }
                else
                {
                    CopyXmlData(ref localData, xmlData, true);
                }

                return(true);
            }
            catch (System.Exception ex)
            {
                addError(ex);
            }
            return(false);
        }