Пример #1
0
        public static IList <SiteSettings> Deserialize(TextReader reader)
        {
            var ser = new XmlSerializer(typeof(SerializableSettings));
            SerializableSettings s = ser.Deserialize(reader) as SerializableSettings;

            if (s != null)
            {
                var ctx = new StreamingContext();
                foreach (var site in s.Sites)
                {
                    CallOnDeserializedRecursive(site.Categories, ctx);
                }
                return(s.Sites);
            }
            return(null);
        }
Пример #2
0
        public void LoadSites()
        {
            // create the configured directories
            string iconDir = string.IsNullOrEmpty(ThumbsDir) ? string.Empty : Path.Combine(ThumbsDir, @"Icons\");

            if (!string.IsNullOrEmpty(iconDir) && !Directory.Exists(iconDir))
            {
                Directory.CreateDirectory(iconDir);
            }
            string bannerDir = string.IsNullOrEmpty(ThumbsDir) ? string.Empty : Path.Combine(ThumbsDir, @"Banners\");

            if (!string.IsNullOrEmpty(bannerDir) && !Directory.Exists(bannerDir))
            {
                Directory.CreateDirectory(bannerDir);
            }
            string cacheDir = string.IsNullOrEmpty(ThumbsDir) ? string.Empty : Path.Combine(ThumbsDir, @"Cache\");

            if (!string.IsNullOrEmpty(cacheDir) && !Directory.Exists(cacheDir))
            {
                Directory.CreateDirectory(cacheDir);
            }
            try { if (!string.IsNullOrEmpty(DllsDir) && !Directory.Exists(DllsDir))
                  {
                      Directory.CreateDirectory(DllsDir);
                  }
            }
            catch { /* might fail due to UAC */ }

            string filename    = string.IsNullOrEmpty(ConfigDir) ? string.Empty : Path.Combine(ConfigDir, SitesFileName);
            Stream sitesStream = null;

            if (string.IsNullOrEmpty(filename) || !File.Exists(filename))
            {
                Log.Info("ConfigFile \"{0}\" was not found. Using embedded resource.", filename);
                sitesStream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("OnlineVideos.OnlineVideoSites.xml");
            }
            else
            {
                sitesStream = new FileStream(filename, FileMode.Open, FileAccess.Read);
            }
            using (sitesStream)
            {
                SiteSettingsList = (BindingList <SiteSettings>)SerializableSettings.Deserialize(new StreamReader(sitesStream));
            }
            Log.Info("Loaded {0} sites from {1}", SiteSettingsList.Count, SitesFileName);
        }