public bool EnableCustomMetadataId { get; set; }\r
public MetadataProvider[] Metadatas { get; set; }\r
public Target[] Targets { get; set; }\r
- public String Filter { get; set; }\r
}\r
\r
public class Player {\r
public class Source {\r
public Connection Local { get; set; }\r
public Connection Remote { get; set; }\r
+ public String Filter { get; set; }\r
}\r
\r
public class UNCSource : Source {\r
\r
if (Configuration?.Source is UNCSource) {\r
logger.Debug("UNC source initialization");\r
- source = new FileSystemSource(this, MessageBus, Configuration.Filter);\r
+ source = new FileSystemSource(this, MessageBus, Configuration.Source.Filter);\r
logger.Debug("UNC source created");\r
}\r
if (Configuration?.Source is NEXIOSource) {\r
private string fileExtensionFilter;\r
private List<String> acceptableExtensions = new List<string>();\r
private List<FileSourceItem> cache = new List<FileSourceItem>();\r
+ private BackgroundWorker pathWatcherWorker = new BackgroundWorker();\r
+ private string path;\r
\r
public DataGridViewColumn[] Columns {\r
get {\r
this.messageBus = messageBus;\r
this.fileExtensionFilter = fileExtensionFilter;\r
SetAcceptableExtensions();\r
+ pathWatcherWorker.DoWork += pathWatcherWorker_watchPath;\r
+ pathWatcherWorker.ProgressChanged += pathWatcherWorker_progressChanged;\r
+ pathWatcherWorker.WorkerReportsProgress = true;\r
+ }\r
+\r
+ private void pathWatcherWorker_progressChanged(object sender, ProgressChangedEventArgs e) {\r
+ InnerStartUp();\r
+ }\r
+\r
+ private void pathWatcherWorker_watchPath(object sender, DoWorkEventArgs e) {\r
+ while (!(Directory.Exists(path))) {\r
+ \r
+ }\r
+ pathWatcherWorker.ReportProgress(0);\r
+\r
}\r
\r
private void SetAcceptableExtensions() {\r
\r
public void Startup(Uri address) {\r
string path = address.LocalPath;\r
+ this.path = path;\r
+ if (Directory.Exists(path)) {\r
+ InnerStartUp();\r
+ } else pathWatcherWorker.RunWorkerAsync();\r
+ }\r
+\r
+ private void InnerStartUp() {\r
createWatch(path);\r
Task.Run(() => initializeList(path));\r
}\r
\r
+\r
+\r
//private void AddItem(FileInfo fi, bool highlight) {\r
// FileSourceItem item = CreateItem(fi, highlight);\r
// Add(item);\r
watcher.Created += new FileSystemEventHandler(OnCreated);\r
watcher.Deleted += new FileSystemEventHandler(OnDeleted);\r
watcher.Renamed += new RenamedEventHandler(OnRenamed);\r
+ //watcher.Disposed += new EventHandler(OnDispose);\r
watcher.EnableRaisingEvents = true;\r
}\r
\r
- public void OnRenamed(object sender, RenamedEventArgs e) {\r
+ public void OnDispose(object sender, RenamedEventArgs e) {\r
+\r
+ }\r
+\r
+ public void OnRenamed(object sender, RenamedEventArgs e) {\r
logger.Debug("{0} {1} {2}", e.ChangeType, e.OldName, e.Name);\r
var item = this.Where(x => x.Name == e.OldName).SingleOrDefault();\r
if (item == null)\r