示例#1
0
 public void Clone(AutoMoveFileSetup setup)
 {
     this.FileTypes.Clear();
     foreach (string type in setup.FileTypes)
     {
         this.FileTypes.Add(type);
     }
     this.DestinationPath = setup.DestinationPath;
     this.MoveFolder      = setup.MoveFolder;
 }
示例#2
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);
        }
示例#3
0
 /// <summary>
 /// Constructor for directory scan for file that is unknown.
 /// </summary>
 /// <param name="action">action to be performed</param>
 /// <param name="file">source path</param>
 /// <param name="category">file category</param>
 public OrgItem(string file, AutoMoveFileSetup autoMoveSetup, OrgFolder scanDir, bool folder)
     : this()
 {
     this.Progress = 0;
     this.Action = scanDir.CopyFrom ? OrgAction.Copy : OrgAction.Move;
     this.AutoMoveSetup = autoMoveSetup;
     this.SourcePath = file;
     this.Category = FileCategory.AutoMove;
     if (folder)
         this.Category |= FileCategory.Folder;
     this.Enable = true;
     this.ScanDirectory = scanDir;
     this.Number = 0;
     this.BuildDestination();
 }
示例#4
0
 public AutoMoveFileSetup(AutoMoveFileSetup clone)
     : this()
 {
     Clone(clone);
 }
 public AutoMoveSetupControlViewModel(AutoMoveFileSetup setup)
 {
     this.Setup = new AutoMoveFileSetup(setup);
     this.FileTypesViewModel = new FileTypesControlViewModel(setup.FileTypes);
     this.FileTypesViewModel.FileTypes.CollectionChanged += FileTypes_CollectionChanged;
 }
示例#6
0
 public AutoMoveFileSetup(AutoMoveFileSetup clone)
     : this()
 {
     Clone(clone);
 }
示例#7
0
 public void Clone(AutoMoveFileSetup setup)
 {
     this.FileTypes.Clear();
     foreach (string type in setup.FileTypes)
         this.FileTypes.Add(type);
     this.DestinationPath = setup.DestinationPath;
     this.MoveFolder = setup.MoveFolder;
 }
示例#8
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);
        }