git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorBellai Ádám <USER\adam.bellai>
Thu, 12 Oct 2017 09:42:17 +0000 (09:42 +0000)
committerBellai Ádám <USER\adam.bellai>
Thu, 12 Oct 2017 09:42:17 +0000 (09:42 +0000)
client/Maestro/MaestroForm.Source.cs
client/Maestro/MaestroForm.cs
client/Maestro/Sources/FileSystemSource.cs
client/Maestro/Sources/NexioRESTSource.cs

index 7a1af3bc347b865af5a104b084ac38ebc4341341..12c815475f15d3a7d26402035a0904e1a6b96857 100644 (file)
@@ -42,7 +42,7 @@ namespace Maestro {
             }\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
index ca1040099d9f5cf66f711da1d0ed947d35306bfa..81a55b8052786f2886aea5e34c94a1979676578c 100644 (file)
@@ -13,6 +13,8 @@ using System.Threading;
 using TrafficClient;\r
 using OctopusClient;\r
 using System.Linq;\r
+using System.Collections.Generic;\r
+using System.ComponentModel;\r
 \r
 namespace Maestro {\r
 \r
@@ -170,8 +172,9 @@ namespace Maestro {
                 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
index b0c455dfd1564f2971e3ac0fd31e6dc9b7601757..80753f62c0d20c93eddfff4fde9fb2d2be9f357c 100644 (file)
@@ -15,13 +15,12 @@ using NLog;
 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
@@ -58,9 +57,11 @@ namespace Maestro.Sources {
 \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
@@ -73,8 +74,7 @@ namespace Maestro.Sources {
         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
@@ -109,7 +109,7 @@ namespace Maestro.Sources {
             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
index 85f01523e612e088b82c5979fdd999cfbb2657df..fae0acf3b22b4a697538a421b160734b57303d29 100644 (file)
@@ -12,6 +12,7 @@ using System;
 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
@@ -22,10 +23,12 @@ namespace Maestro.Sources {
         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
@@ -59,20 +62,34 @@ namespace Maestro.Sources {
             }\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
@@ -190,7 +207,8 @@ namespace Maestro.Sources {
         }\r
 \r
         public void RemoveFilter() {\r
-            throw new NotImplementedException();\r
+            Clear();\r
+            cache.ForEach(i => Add(i));\r
         }\r
     }\r
 }\r