public static HashSet <string> GenerateTags(ImportFolderConfig folderConfig, string resourcePath) { var rootPath = folderConfig.FullPath; var fileName = Path.GetFileNameWithoutExtension(resourcePath); var tags = BuildDumbTags(GetTagGenerationString(folderConfig.AutoTagMode)); foreach (var tag in folderConfig.AdditionalTags) { tags.Add(tag); } tags.Add("folder: " + rootPath.ToLowerInvariant()); return(tags); string GetTagGenerationString(AutoTagMode mode) { switch (mode) { case AutoTagMode.ExplodeResourcePath: return(resourcePath); case AutoTagMode.ExplodeFileName: return(fileName); default: return(string.Empty); } } }
public async void Receive(AddImportFolderMessage message) { var newConfig = new ImportFolderConfig { FullPath = Path.GetFullPath(message.FolderPath), ScanSubDirectories = message.ScanSubDirectories, AdditionalTags = message.Tags.OrderBy(tag => tag).Distinct().ToList(), Rotation = message.RotateOnImport ? message.Rotation : (Vector3?)null, Scale = message.ScaleOnImport ? message.Scale : (Vector3?)null, AutoTagMode = AutoTagMode.ExplodeResourcePath }; var folder = _importFolderFactory.Create(newConfig); var folders = SavedFolders .Append(folder) .OrderBy(f => f.DisplayName) .ToList(); await SaveAndRefreshAsync(folders); _ = folder.InitializeAsync(); // Switch to added folder _relay.Send(this, new SearchChangedMessage { SearchTags = new[] { "folder: " + newConfig.FullPath.ToLowerInvariant() } }); }
public IImportFolder Create(ImportFolderConfig folderConfig) { var folder = new ImportFolder(folderConfig, new FolderFileSystem(folderConfig.FullPath)); folder.Subscribe(_subscriber); return(folder); }
public ImportFolder( [NotNull] ImportFolderConfig config, [NotNull] IFileSystem fileSystem) { _config = config ?? throw new ArgumentNullException(nameof(config)); _fileSystem = fileSystem ?? throw new ArgumentNullException(nameof(fileSystem)); // _timer = new Timer(500) {AutoReset = false, Enabled = false}; // _timer.Elapsed += TimerOnElapsed; }
public static string GetFolderTag(ImportFolderConfig config) { return("folder: " + config.FullPath.ToLowerInvariant()); }