Exemple #1
0
        public void ToUTCTime()
        {
            WorldTimeZone tz = new WorldTimeZone(TimeZone.CurrentTimeZone.StandardName);

            DateTime nowDT   = DateTime.Now;
            DateTime utcDT   = nowDT.ToUniversalTime();
            DateTime tzUTCDT = tz.ToUniversalTime(nowDT);

            Assert.IsTrue(utcDT == tzUTCDT);
        }
Exemple #2
0
        public void ToLocalTime()
        {
            WorldTimeZone tz = new WorldTimeZone("Greenwich Standard Time");

            DateTime nowDT   = DateTime.Now;
            DateTime utcDT   = nowDT.ToUniversalTime();
            DateTime localDT = tz.ToLocalTime(utcDT);

            Assert.IsTrue(nowDT == localDT);
        }
Exemple #3
0
        /// <summary>
        /// Initalises the ListingGrabber class with a grabber config file
        /// </summary>
        /// <param name="File">The grabber config file file.</param>
        /// <returns>bool - success/fail loading the config file</returns>
        public bool Initalise(string File, int maxGrabDays)
        {
            _maxGrabDays = maxGrabDays;

            // Load configuration file
            Log.Info("WebEPG: Opening {0}", File);

            try
            {
                //_grabber = new GrabberConfig(_strBaseDir + File);

                XmlSerializer s = new XmlSerializer(typeof(GrabberConfigFile));

                TextReader r = new StreamReader(_strBaseDir + File);
                _grabber = (GrabberConfigFile)s.Deserialize(r);
            }
            catch (InvalidOperationException ex)
            {
                Log.Error("WebEPG: Config Error {0}: {1}", File, ex.Message);
                return(false);
            }

            if (_grabber.Info.Version == null || _grabber.Info.Version == string.Empty)
            {
                Log.Info("WebEPG: Unknown Version");
            }
            else
            {
                Log.Info("WebEPG: Version: {0}", _grabber.Info.Version);
            }

            if (_grabber.Listing.SearchParameters == null)
            {
                _grabber.Listing.SearchParameters = new RequestData();
            }

            _reqData = _grabber.Listing.SearchParameters;

            // Setup timezone
            Log.Info("WebEPG: TimeZone, Local: {0}", TimeZone.CurrentTimeZone.StandardName);

            _siteTimeZone = null;
            if (_grabber.Info.TimeZone != null && _grabber.Info.TimeZone != string.Empty)
            {
                try
                {
                    Log.Info("WebEPG: TimeZone, Site : {0}", _grabber.Info.TimeZone);
                    _siteTimeZone = new WorldTimeZone(_grabber.Info.TimeZone);
                }
                catch (ArgumentException)
                {
                    Log.Error("WebEPG: TimeZone Not valid");
                    _siteTimeZone = null;
                }
            }

            if (_siteTimeZone == null)
            {
                Log.Info("WebEPG: No site TimeZone, using Local: {0}", TimeZone.CurrentTimeZone.StandardName);
                _siteTimeZone = new WorldTimeZone(TimeZone.CurrentTimeZone.StandardName);
            }

            switch (_grabber.Listing.listingType)
            {
            case ListingInfo.Type.Xml:
                _parser = new XmlParser(_grabber.Listing.XmlTemplate);
                break;

            case ListingInfo.Type.Data:

                if (_grabber.Listing.DataTemplate.Template == null)
                {
                    Log.Error("WebEPG: {0}: No Template", File);
                    return(false);
                }
                _parser = new DataParser(_grabber.Listing.DataTemplate);
                break;

            case ListingInfo.Type.Html:
                HtmlParserTemplate defaultTemplate = _grabber.Listing.HtmlTemplate.GetTemplate("default");
                if (defaultTemplate == null ||
                    defaultTemplate.SectionTemplate == null ||
                    defaultTemplate.SectionTemplate.Template == null)
                {
                    Log.Error("WebEPG: {0}: No Template", File);
                    return(false);
                }
                _parser = new WebParser(_grabber.Listing.HtmlTemplate);
                if (_grabber.Info.GrabDays < _maxGrabDays)
                {
                    Log.Info("WebEPG: Grab days ({0}) more than Guide days ({1}), limiting grab to {1} days",
                             _maxGrabDays, _grabber.Info.GrabDays);
                    _maxGrabDays = _grabber.Info.GrabDays;
                }

                break;
            }

            return(true);
        }