}\r
if (Configuration?.Source is NEXIOSource) {\r
logger.Debug("NEXIO source initialization");\r
- source = new NexioRESTSource(this, MessageBus, ReportError);\r
+ source = new NexioRESTSource(this, MessageBus, ReportError, Configuration.Source.Filter);\r
logger.Debug("NEXIO source created");\r
}\r
\r
using TrafficClient;\r
using OctopusClient;\r
using System.Linq;\r
+using System.Collections.Generic;\r
+using System.ComponentModel;\r
\r
namespace Maestro {\r
\r
return;\r
if (String.IsNullOrEmpty(txtSorceFilter.Text))\r
bindingSource.RemoveFilter();\r
- else\r
+ else {\r
bindingSource.Filter = txtSorceFilter.Text;\r
+ }\r
}\r
\r
private void buttonMetadata_Click(object sender, EventArgs e) {\r
namespace Maestro.Sources {\r
public delegate void ClearAndInitialize();\r
\r
- class FileSystemSource : BindingList<FileSourceItem>, ISource {\r
+ class FileSystemSource : BindingList<FileSourceItem>, ISource, IBindingListView {\r
private readonly Logger logger = LogManager.GetCurrentClassLogger();\r
private IMessageBus messageBus;\r
private List<CreatedFileMonitor> createdFileMonitors = new List<CreatedFileMonitor>();\r
private Control parent;\r
private string filter;\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
\r
public string Filter {\r
get => filter; set {\r
+ if (cache.Count == 0)\r
+ cache.AddRange(this);\r
filter = value;\r
Clear();\r
- cache.Where(i => i.Name.StartsWith(filter)).ToList().ForEach(i => Add(i));\r
+ cache.Where(i => i.Name.ToLower().StartsWith(filter.ToLower())).ToList().ForEach(i => Add(i));\r
}\r
}\r
\r
public FileSystemSource(Control parent, IMessageBus messageBus, String fileExtensionFilter) {\r
this.parent = parent;\r
this.messageBus = messageBus;\r
- this.fileExtensionFilter = fileExtensionFilter;\r
- SetAcceptableExtensions();\r
+ SetAcceptableExtensions(fileExtensionFilter);\r
pathWatcherWorker.DoWork += pathWatcherWorker_watchPath;\r
pathWatcherWorker.WorkerReportsProgress = true;\r
\r
initialized = false;\r
}\r
\r
- private void SetAcceptableExtensions() {\r
+ private void SetAcceptableExtensions(string fileExtensionFilter) {\r
if (fileExtensionFilter != null)\r
acceptableExtensions = fileExtensionFilter.Split(',')?.ToList();\r
}\r
using System.Drawing;\r
using NLog;\r
using JobEngineClient;\r
+using System.Collections.Generic;\r
\r
namespace Maestro.Sources {\r
class NexioRESTSource : BindingList<NexioSourceItem>, ISource {\r
private const string EXTAGENCY = "extagency";\r
private const string DURATION = "duration";\r
private const string MODIFIED = "modifiedtimestamp";\r
-\r
+ private List<String> acceptableExtensions = new List<string>();\r
+ private List<NexioSourceItem> cache = new List<NexioSourceItem>();\r
private IMessageBus messageBus;\r
private Control parent;\r
private NexioAPI dataClient;\r
+ private string filter;\r
\r
public DataGridViewColumn[] Columns {\r
get {\r
}\r
}\r
\r
- public string Filter { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }\r
+ public string Filter {\r
+ get => filter; set {\r
+ if (cache.Count == 0)\r
+ cache.AddRange(this);\r
+ filter = value;\r
+ Clear();\r
+ cache.Where(i => i.Name.ToLower().StartsWith(filter.ToLower())).ToList().ForEach(i => Add(i));\r
+ }\r
+ }\r
\r
public ListSortDescriptionCollection SortDescriptions => throw new NotImplementedException();\r
\r
public bool SupportsAdvancedSorting => throw new NotImplementedException();\r
\r
- public bool SupportsFiltering => throw new NotImplementedException();\r
+ public bool SupportsFiltering => true;\r
\r
private MediaCubeErrorReporter errorReporter;\r
\r
- public NexioRESTSource(Control parent, IMessageBus messageBus, MediaCubeErrorReporter errorReporter) {\r
+ public NexioRESTSource(Control parent, IMessageBus messageBus, MediaCubeErrorReporter errorReporter, String fileExtensionFilter) {\r
this.parent = parent;\r
this.messageBus = messageBus;\r
this.errorReporter = errorReporter;\r
+ SetAcceptableExtensions(fileExtensionFilter);\r
+ }\r
+\r
+ private void SetAcceptableExtensions(string fileExtensionFilter) {\r
+ if (fileExtensionFilter != null)\r
+ acceptableExtensions = fileExtensionFilter.Split(',')?.ToList();\r
}\r
\r
public void Startup(Uri address) {\r
}\r
\r
public void RemoveFilter() {\r
- throw new NotImplementedException();\r
+ Clear();\r
+ cache.ForEach(i => Add(i));\r
}\r
}\r
}\r