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

index 6c218fb4ab2043ea360f9719dd0204ee1c2fe8b5..24df6c3507ad55d7e9c2dc8bf62d1a6da5acdced 100644 (file)
@@ -23,12 +23,13 @@ namespace Maestro.Sources {
         private const string EXTAGENCY = "extagency";\r
         private const string DURATION = "duration";\r
         private const string MODIFIED = "modifiedtimestamp";\r
-        private List<String> acceptableExtensions = new List<string>();\r
+        private List<String> acceptableAgencies = 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
+        private Object lockObject = new Object();\r
 \r
         public DataGridViewColumn[] Columns {\r
             get {\r
@@ -68,7 +69,8 @@ namespace Maestro.Sources {
                     cache.AddRange(this);\r
                 filter = value;\r
                 Clear();\r
-                cache.Where(i => i.Name.ToLower().Contains(filter.ToLower())).ToList().ForEach(i => Add(i));\r
+                lock (lockObject)\r
+                    cache.Where(i => i.Name.ToLower().Contains(filter.ToLower())).ToList().ForEach(i => Add(i));\r
             }\r
         }\r
 \r
@@ -80,16 +82,16 @@ namespace Maestro.Sources {
 \r
         private MediaCubeErrorReporter errorReporter;\r
 \r
-        public NexioRESTSource(Control parent, IMessageBus messageBus, MediaCubeErrorReporter errorReporter, String fileExtensionFilter) {\r
+        public NexioRESTSource(Control parent, IMessageBus messageBus, MediaCubeErrorReporter errorReporter, String agencyFilter) {\r
             this.parent = parent;\r
             this.messageBus = messageBus;\r
             this.errorReporter = errorReporter;\r
-            SetAcceptableExtensions(fileExtensionFilter);\r
+            SetAcceptableAgencies(agencyFilter);\r
         }\r
 \r
-        private void SetAcceptableExtensions(string fileExtensionFilter) {\r
-            if (fileExtensionFilter != null)\r
-                acceptableExtensions = fileExtensionFilter.Split(',')?.ToList();\r
+        private void SetAcceptableAgencies(string agencyFilter) {\r
+            if (agencyFilter != null)\r
+                acceptableAgencies = agencyFilter.Split(',')?.ToList();\r
         }\r
 \r
         public void Startup(Uri address) {\r
@@ -117,20 +119,21 @@ namespace Maestro.Sources {
                 return;\r
             JToken d = JToken.Parse(jToken.ToString());\r
             string action = resultObject.GetValue(NexioAPI.ACTION).ToString();\r
-            switch (action) {\r
-                case NexioAPI.LIST:\r
-                    OnList(d);\r
-                    break;\r
-                case NexioAPI.CREATE:\r
-                    OnCreated(d);\r
-                    break;\r
-                case NexioAPI.DELETE:\r
-                    OnDeleted(d);\r
-                    break;\r
-                case NexioAPI.UPDATE:\r
-                    OnChanged(d);\r
-                    break;\r
-            }\r
+            lock (lockObject)\r
+                switch (action) {\r
+                    case NexioAPI.LIST:\r
+                        OnList(d);\r
+                        break;\r
+                    case NexioAPI.CREATE:\r
+                        OnCreated(d);\r
+                        break;\r
+                    case NexioAPI.DELETE:\r
+                        OnDeleted(d);\r
+                        break;\r
+                    case NexioAPI.UPDATE:\r
+                        OnChanged(d);\r
+                        break;\r
+                }\r
         }\r
 \r
         //private void AddItem(JToken token, Boolean highlight) {\r
@@ -161,13 +164,13 @@ namespace Maestro.Sources {
             if (l == null)\r
                 return;\r
             //l.Children().ToList().Select(t => CreateItem(t, false)).OrderByDescending(i => i.Created).ToList().ForEach(i => parent.SafeCall(() => Add(i)));\r
-            l.Children().ToList().Select(t => CreateItem(t, false)).Where(x => x.CanHandle(acceptableExtensions)).OrderByDescending(i => i.Created).ToList().ForEach(i => parent.SafeCall(() => Add(i)));\r
+            l.Children().ToList().Select(t => CreateItem(t, false)).Where(x => x.CanHandle(acceptableAgencies)).OrderByDescending(i => i.Created).ToList().ForEach(i => parent.SafeCall(() => Add(i)));\r
         }\r
 \r
         private void OnChanged(JToken token) {\r
             string id = token[ID].ToString();\r
             var item = Items.Where(x => x.ID == id).SingleOrDefault();\r
-            if (item != null && item.CanHandle(acceptableExtensions)) {\r
+            if (item != null && item.CanHandle(acceptableAgencies)) {\r
                 SetItem(ref item, token);\r
                 parent.SafeCall(() => {\r
                     messageBus.Send(new ModifyFileActionMsg() {\r
@@ -181,7 +184,7 @@ namespace Maestro.Sources {
 \r
         private void OnCreated(JToken token) {\r
             var item = CreateItem(token, true);\r
-            if (item.CanHandle(acceptableExtensions)) {\r
+            if (item.CanHandle(acceptableAgencies)) {\r
                 parent.SafeCall(() => {\r
                     Insert(0, item);\r
                     messageBus.Send(new CreateFileActionMsg() {\r
index d9fc2d5bbf885b598e47258bb37037475d46f137..2b9fd6eac219277f760e42a19fcbf8c66ae59ae8 100644 (file)
@@ -76,7 +76,7 @@ namespace Maestro.Sources {
         public bool CanHandle(List<String> extensions) {\r
             if (extensions == null || extensions.Count < 1)\r
                 return true;\r
-            if (extensions.Contains(Name.Substring(Name.Length-3).ToLower()) || extensions.Contains(Name.Substring(Name.Length - 3).ToUpper()))\r
+            if (extensions.Contains(Agency.ToLower()) || extensions.Contains(Agency.ToUpper()))\r
                 return true;\r
             return false;\r
         }\r