From: Bellai Ádám Date: Thu, 12 Oct 2017 09:42:17 +0000 (+0000) Subject: git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube... X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=ba60e47b6272cecabbad060d81e76aa9836fd4cd;p=mediacube.git git-tfs-id: [tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C30595 --- diff --git a/client/Maestro/MaestroForm.Source.cs b/client/Maestro/MaestroForm.Source.cs index 7a1af3bc..12c81547 100644 --- a/client/Maestro/MaestroForm.Source.cs +++ b/client/Maestro/MaestroForm.Source.cs @@ -42,7 +42,7 @@ namespace Maestro { } if (Configuration?.Source is NEXIOSource) { logger.Debug("NEXIO source initialization"); - source = new NexioRESTSource(this, MessageBus, ReportError); + source = new NexioRESTSource(this, MessageBus, ReportError, Configuration.Source.Filter); logger.Debug("NEXIO source created"); } diff --git a/client/Maestro/MaestroForm.cs b/client/Maestro/MaestroForm.cs index ca104009..81a55b80 100644 --- a/client/Maestro/MaestroForm.cs +++ b/client/Maestro/MaestroForm.cs @@ -13,6 +13,8 @@ using System.Threading; using TrafficClient; using OctopusClient; using System.Linq; +using System.Collections.Generic; +using System.ComponentModel; namespace Maestro { @@ -170,8 +172,9 @@ namespace Maestro { return; if (String.IsNullOrEmpty(txtSorceFilter.Text)) bindingSource.RemoveFilter(); - else + else { bindingSource.Filter = txtSorceFilter.Text; + } } private void buttonMetadata_Click(object sender, EventArgs e) { diff --git a/client/Maestro/Sources/FileSystemSource.cs b/client/Maestro/Sources/FileSystemSource.cs index b0c455df..80753f62 100644 --- a/client/Maestro/Sources/FileSystemSource.cs +++ b/client/Maestro/Sources/FileSystemSource.cs @@ -15,13 +15,12 @@ using NLog; namespace Maestro.Sources { public delegate void ClearAndInitialize(); - class FileSystemSource : BindingList, ISource { + class FileSystemSource : BindingList, ISource, IBindingListView { private readonly Logger logger = LogManager.GetCurrentClassLogger(); private IMessageBus messageBus; private List createdFileMonitors = new List(); private Control parent; private string filter; - private string fileExtensionFilter; private List acceptableExtensions = new List(); private List cache = new List(); private BackgroundWorker pathWatcherWorker = new BackgroundWorker(); @@ -58,9 +57,11 @@ namespace Maestro.Sources { public string Filter { get => filter; set { + if (cache.Count == 0) + cache.AddRange(this); filter = value; Clear(); - cache.Where(i => i.Name.StartsWith(filter)).ToList().ForEach(i => Add(i)); + cache.Where(i => i.Name.ToLower().StartsWith(filter.ToLower())).ToList().ForEach(i => Add(i)); } } @@ -73,8 +74,7 @@ namespace Maestro.Sources { public FileSystemSource(Control parent, IMessageBus messageBus, String fileExtensionFilter) { this.parent = parent; this.messageBus = messageBus; - this.fileExtensionFilter = fileExtensionFilter; - SetAcceptableExtensions(); + SetAcceptableExtensions(fileExtensionFilter); pathWatcherWorker.DoWork += pathWatcherWorker_watchPath; pathWatcherWorker.WorkerReportsProgress = true; @@ -109,7 +109,7 @@ namespace Maestro.Sources { initialized = false; } - private void SetAcceptableExtensions() { + private void SetAcceptableExtensions(string fileExtensionFilter) { if (fileExtensionFilter != null) acceptableExtensions = fileExtensionFilter.Split(',')?.ToList(); } diff --git a/client/Maestro/Sources/NexioRESTSource.cs b/client/Maestro/Sources/NexioRESTSource.cs index 85f01523..fae0acf3 100644 --- a/client/Maestro/Sources/NexioRESTSource.cs +++ b/client/Maestro/Sources/NexioRESTSource.cs @@ -12,6 +12,7 @@ using System; using System.Drawing; using NLog; using JobEngineClient; +using System.Collections.Generic; namespace Maestro.Sources { class NexioRESTSource : BindingList, ISource { @@ -22,10 +23,12 @@ namespace Maestro.Sources { private const string EXTAGENCY = "extagency"; private const string DURATION = "duration"; private const string MODIFIED = "modifiedtimestamp"; - + private List acceptableExtensions = new List(); + private List cache = new List(); private IMessageBus messageBus; private Control parent; private NexioAPI dataClient; + private string filter; public DataGridViewColumn[] Columns { get { @@ -59,20 +62,34 @@ namespace Maestro.Sources { } } - public string Filter { get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + public string Filter { + get => filter; set { + if (cache.Count == 0) + cache.AddRange(this); + filter = value; + Clear(); + cache.Where(i => i.Name.ToLower().StartsWith(filter.ToLower())).ToList().ForEach(i => Add(i)); + } + } public ListSortDescriptionCollection SortDescriptions => throw new NotImplementedException(); public bool SupportsAdvancedSorting => throw new NotImplementedException(); - public bool SupportsFiltering => throw new NotImplementedException(); + public bool SupportsFiltering => true; private MediaCubeErrorReporter errorReporter; - public NexioRESTSource(Control parent, IMessageBus messageBus, MediaCubeErrorReporter errorReporter) { + public NexioRESTSource(Control parent, IMessageBus messageBus, MediaCubeErrorReporter errorReporter, String fileExtensionFilter) { this.parent = parent; this.messageBus = messageBus; this.errorReporter = errorReporter; + SetAcceptableExtensions(fileExtensionFilter); + } + + private void SetAcceptableExtensions(string fileExtensionFilter) { + if (fileExtensionFilter != null) + acceptableExtensions = fileExtensionFilter.Split(',')?.ToList(); } public void Startup(Uri address) { @@ -190,7 +207,8 @@ namespace Maestro.Sources { } public void RemoveFilter() { - throw new NotImplementedException(); + Clear(); + cache.ForEach(i => Add(i)); } } }