Ejemplo n.º 1
0
        /// <summary>
        /// Loads settings from XML.
        /// </summary>
        public static void Load()
        {
            string basePath = Organization.GetBasePath(false);
            if (!Directory.Exists(basePath))
                return;

            // Initialize file types to defautls
            VideoFileTypes = new ObservableCollection<string>();
            foreach (string type in DefaultVideoFileTypes)
                VideoFileTypes.Add(type);
            DeleteFileTypes = new ObservableCollection<string>();
            foreach (string type in DefaultDeleteFileTypes)
                DeleteFileTypes.Add(type);
            IgnoreFileTypes = new ObservableCollection<string>();
            foreach (string type in DefaultIgnoreFileTypes)
                IgnoreFileTypes.Add(type);

            // Load settings XML
            string path = Path.Combine(basePath, ROOT_XML + ".xml");
            if (File.Exists(path))
            {
                // Load XML
                XmlTextReader reader = new XmlTextReader(path);
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.Load(reader);

                foreach (XmlNode propNode in xmlDoc.DocumentElement.ChildNodes)
                {
                    XmlElements element;
                    if (!Enum.TryParse<XmlElements>(propNode.Name, out element))
                        continue;

                    string value = propNode.InnerText;
                    switch (element)
                    {
                        case XmlElements.ScanDirectories:
                            ScanDirectories = new ObservableCollection<OrgFolder>();
                            foreach (XmlNode scanDirNode in propNode.ChildNodes)
                            {
                                OrgFolder folder = new OrgFolder();
                                folder.Load(scanDirNode);
                                ScanDirectories.Add(folder);
                            }
                            break;
                        case XmlElements.TvFileFormat:
                            TvFileFormat.Load(propNode);
                            break;
                        case XmlElements.MovieFileFormat:
                            MovieFileFormat.Load(propNode);
                            break;
                        case XmlElements.MovieFolderColletion:
                            MovieFolders.Load(propNode);
                            break;
                        case XmlElements.TvFolderCollection:
                            TvFolders.Load(propNode);
                            break;
                        case XmlElements.VideoFileTypes:
                            VideoFileTypes = new ObservableCollection<string>();
                            foreach (XmlNode fileTypeNode in propNode.ChildNodes)
                            {
                                string videoType = fileTypeNode.InnerText;
                                if (videoType.StartsWith("."))
                                    videoType = videoType.Substring(1, videoType.Length - 1);
                                VideoFileTypes.Add(videoType);
                            }
                            break;
                        case XmlElements.DeleteFileTypes:
                            DeleteFileTypes = new ObservableCollection<string>();
                            foreach (XmlNode fileTypeNode in propNode.ChildNodes)
                            {
                                string delType = fileTypeNode.InnerText;
                                if (delType.StartsWith("."))
                                    delType = delType.Substring(1, delType.Length - 1);
                                DeleteFileTypes.Add(delType);
                            }
                            break;
                        case XmlElements.IgnoreFileTypes:
                            IgnoreFileTypes = new ObservableCollection<string>();
                            foreach (XmlNode fileTypeNode in propNode.ChildNodes)
                            {
                                string ignoreType = fileTypeNode.InnerText;
                                if (ignoreType.StartsWith("."))
                                    ignoreType = ignoreType.Substring(1, ignoreType.Length - 1);
                                IgnoreFileTypes.Add(ignoreType);
                            }
                            break;
                        case XmlElements.AutoMoveSetups:
                            AutoMoveSetups = new ObservableCollection<AutoMoveFileSetup>();
                            foreach (XmlNode setupNode in propNode.ChildNodes)
                            {
                                AutoMoveFileSetup setup = new AutoMoveFileSetup();
                                setup.Load(setupNode);
                                AutoMoveSetups.Add(setup);
                            }
                            break;
                        case XmlElements.Gui:
                            GuiControl.Load(propNode);
                            break;
                        case XmlElements.General:
                            General.Load(propNode);
                            break;
                        case XmlElements.MovieFolders:
                            MovieFolders.Clear();
                            foreach (XmlNode movieFolderNode in propNode.ChildNodes)
                            {
                                ContentRootFolder folder = new ContentRootFolder(ContentType.Movie);
                                folder.Load(movieFolderNode);
                                MovieFolders.Add(folder);
                            }
                            break;
                        case XmlElements.TvFolders:
                            TvFolders.Clear();
                            foreach (XmlNode tvFolderNode in propNode.ChildNodes)
                            {
                                ContentRootFolder folder = new ContentRootFolder(ContentType.TvShow);
                                folder.Load(tvFolderNode);
                                TvFolders.Add(folder);
                            }
                            break;
                    }
                }

            }
            OnSettingsModified(true);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Loads properties from XML elements
        /// </summary>
        /// <param name="showNode">The XML node containt property elements</param>
        /// <returns>Whether XML was loaded properly</returns>
        public bool Load(XmlNode foldersNode)
        {
            // Check that we're on the right node
            if (foldersNode.Name != ROOT_XML)
            {
                return(false);
            }

            // Go through elements of node
            foreach (XmlNode propNode in foldersNode.ChildNodes)
            {
                // Match the current node to a known element name
                XmlElements element;
                if (!Enum.TryParse <XmlElements>(propNode.Name, out element))
                {
                    continue;
                }

                // Set appropiate property from value in element
                string value = propNode.InnerText;
                switch (element)
                {
                case XmlElements.SubPath:
                    this.SubPath = value;
                    break;

                case XmlElements.FullPath:
                    this.FullPath = value;
                    break;

                case XmlElements.AllowOrganizing:
                    bool allowOrg;
                    if (bool.TryParse(value, out allowOrg))
                    {
                        this.AllowOrganizing = allowOrg;
                    }
                    break;

                case XmlElements.Default:
                    bool def;
                    if (bool.TryParse(value, out def))
                    {
                        this.Default = def;
                    }
                    break;

                case XmlElements.ChildFolders:
                    this.ChildFolders = new ObservableCollection <ContentRootFolder>();
                    foreach (XmlNode subContentNode in propNode.ChildNodes)
                    {
                        ContentRootFolder subFolder = new ContentRootFolder(this.ContentType);
                        subFolder.Load(subContentNode);
                        this.ChildFolders.Add(subFolder);
                    }
                    break;

                case XmlElements.Temporary:
                    bool temp;
                    if (bool.TryParse(value, out temp))
                    {
                        this.Temporary = temp;
                    }
                    break;

                case XmlElements.AllSubFoldersChildRootFolder:
                    bool allSubsChild;
                    if (bool.TryParse(value, out allSubsChild))
                    {
                        this.AllSubFoldersChildRootFolder = allSubsChild;
                    }
                    break;
                }
            }

            return(true);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Loads properties from XML elements
        /// </summary>
        /// <param name="showNode">The XML node containt property elements</param>
        /// <returns>Whether XML was loaded properly</returns>
        public bool Load(XmlNode foldersNode)
        {
            // Check that we're on the right node
            if (foldersNode.Name != ROOT_XML)
                return false;

            // Go through elements of node
            foreach (XmlNode propNode in foldersNode.ChildNodes)
            {
                // Match the current node to a known element name
                XmlElements element;
                if (!Enum.TryParse<XmlElements>(propNode.Name, out element))
                    continue;

                // Set appropiate property from value in element
                string value = propNode.InnerText;
                switch (element)
                {
                    case XmlElements.SubPath:
                        this.SubPath = value;
                        break;
                    case XmlElements.FullPath:
                        this.FullPath = value;
                        break;
                    case XmlElements.AllowOrganizing:
                        bool allowOrg;
                        if (bool.TryParse(value, out allowOrg))
                            this.AllowOrganizing = allowOrg;
                        break;
                    case XmlElements.Default:
                        bool def;
                        if (bool.TryParse(value, out def))
                            this.Default = def;
                        break;
                    case XmlElements.ChildFolders:
                        this.ChildFolders = new ObservableCollection<ContentRootFolder>();
                        foreach (XmlNode subContentNode in propNode.ChildNodes)
                        {
                            ContentRootFolder subFolder = new ContentRootFolder(this.ContentType);
                            subFolder.Load(subContentNode);
                            this.ChildFolders.Add(subFolder);
                        }
                        break;
                    case XmlElements.Temporary:
                        bool temp;
                        if (bool.TryParse(value, out temp))
                            this.Temporary = temp;
                        break;
                    case XmlElements.AllSubFoldersChildRootFolder:
                        bool allSubsChild;
                        if (bool.TryParse(value, out allSubsChild))
                            this.AllSubFoldersChildRootFolder = allSubsChild;
                        break;
                }
            }

            return true;
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Loads settings from XML.
        /// </summary>
        public static void Load()
        {
            string basePath = Organization.GetBasePath(false);

            if (!Directory.Exists(basePath))
            {
                return;
            }

            // Initialize file types to defautls
            VideoFileTypes = new ObservableCollection <string>();
            foreach (string type in DefaultVideoFileTypes)
            {
                VideoFileTypes.Add(type);
            }
            DeleteFileTypes = new ObservableCollection <string>();
            foreach (string type in DefaultDeleteFileTypes)
            {
                DeleteFileTypes.Add(type);
            }
            IgnoreFileTypes = new ObservableCollection <string>();
            foreach (string type in DefaultIgnoreFileTypes)
            {
                IgnoreFileTypes.Add(type);
            }

            // Load settings XML
            string path = Path.Combine(basePath, ROOT_XML + ".xml");

            if (File.Exists(path))
            {
                // Load XML
                XmlTextReader reader = new XmlTextReader(path);
                XmlDocument   xmlDoc = new XmlDocument();
                xmlDoc.Load(reader);

                foreach (XmlNode propNode in xmlDoc.DocumentElement.ChildNodes)
                {
                    XmlElements element;
                    if (!Enum.TryParse <XmlElements>(propNode.Name, out element))
                    {
                        continue;
                    }

                    string value = propNode.InnerText;
                    switch (element)
                    {
                    case XmlElements.ScanDirectories:
                        ScanDirectories = new ObservableCollection <OrgFolder>();
                        foreach (XmlNode scanDirNode in propNode.ChildNodes)
                        {
                            OrgFolder folder = new OrgFolder();
                            folder.Load(scanDirNode);
                            ScanDirectories.Add(folder);
                        }
                        break;

                    case XmlElements.TvFileFormat:
                        TvFileFormat.Load(propNode);
                        break;

                    case XmlElements.MovieFileFormat:
                        MovieFileFormat.Load(propNode);
                        break;

                    case XmlElements.MovieFolderColletion:
                        MovieFolders.Load(propNode);
                        break;

                    case XmlElements.TvFolderCollection:
                        TvFolders.Load(propNode);
                        break;

                    case XmlElements.VideoFileTypes:
                        VideoFileTypes = new ObservableCollection <string>();
                        foreach (XmlNode fileTypeNode in propNode.ChildNodes)
                        {
                            string videoType = fileTypeNode.InnerText;
                            if (videoType.StartsWith("."))
                            {
                                videoType = videoType.Substring(1, videoType.Length - 1);
                            }
                            VideoFileTypes.Add(videoType);
                        }
                        break;

                    case XmlElements.DeleteFileTypes:
                        DeleteFileTypes = new ObservableCollection <string>();
                        foreach (XmlNode fileTypeNode in propNode.ChildNodes)
                        {
                            string delType = fileTypeNode.InnerText;
                            if (delType.StartsWith("."))
                            {
                                delType = delType.Substring(1, delType.Length - 1);
                            }
                            DeleteFileTypes.Add(delType);
                        }
                        break;

                    case XmlElements.IgnoreFileTypes:
                        IgnoreFileTypes = new ObservableCollection <string>();
                        foreach (XmlNode fileTypeNode in propNode.ChildNodes)
                        {
                            string ignoreType = fileTypeNode.InnerText;
                            if (ignoreType.StartsWith("."))
                            {
                                ignoreType = ignoreType.Substring(1, ignoreType.Length - 1);
                            }
                            IgnoreFileTypes.Add(ignoreType);
                        }
                        break;

                    case XmlElements.AutoMoveSetups:
                        AutoMoveSetups = new ObservableCollection <AutoMoveFileSetup>();
                        foreach (XmlNode setupNode in propNode.ChildNodes)
                        {
                            AutoMoveFileSetup setup = new AutoMoveFileSetup();
                            setup.Load(setupNode);
                            AutoMoveSetups.Add(setup);
                        }
                        break;

                    case XmlElements.Gui:
                        GuiControl.Load(propNode);
                        break;

                    case XmlElements.General:
                        General.Load(propNode);
                        break;

                    case XmlElements.MovieFolders:
                        MovieFolders.Clear();
                        foreach (XmlNode movieFolderNode in propNode.ChildNodes)
                        {
                            ContentRootFolder folder = new ContentRootFolder(ContentType.Movie);
                            folder.Load(movieFolderNode);
                            MovieFolders.Add(folder);
                        }
                        break;

                    case XmlElements.TvFolders:
                        TvFolders.Clear();
                        foreach (XmlNode tvFolderNode in propNode.ChildNodes)
                        {
                            ContentRootFolder folder = new ContentRootFolder(ContentType.TvShow);
                            folder.Load(tvFolderNode);
                            TvFolders.Add(folder);
                        }
                        break;
                    }
                }
            }
            OnSettingsModified(true);
        }