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; }
/// <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); }
/// <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(); }
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; }
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; }
/// <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); }