From 05e1062e4998a4c7d8bd28411e9176f84f089044 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bellai=20=C3=81d=C3=A1m?= Date: Fri, 13 Oct 2017 12:17:46 +0000 Subject: [PATCH] git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C30615 --- client/Maestro/Sources/NexioRESTSource.cs | 51 ++++++++++++----------- client/Maestro/Sources/NexioSourceItem.cs | 2 +- 2 files changed, 28 insertions(+), 25 deletions(-) diff --git a/client/Maestro/Sources/NexioRESTSource.cs b/client/Maestro/Sources/NexioRESTSource.cs index 6c218fb4..24df6c35 100644 --- a/client/Maestro/Sources/NexioRESTSource.cs +++ b/client/Maestro/Sources/NexioRESTSource.cs @@ -23,12 +23,13 @@ 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 acceptableAgencies = new List(); private List cache = new List(); private IMessageBus messageBus; private Control parent; private NexioAPI dataClient; private string filter; + private Object lockObject = new Object(); public DataGridViewColumn[] Columns { get { @@ -68,7 +69,8 @@ namespace Maestro.Sources { cache.AddRange(this); filter = value; Clear(); - cache.Where(i => i.Name.ToLower().Contains(filter.ToLower())).ToList().ForEach(i => Add(i)); + lock (lockObject) + cache.Where(i => i.Name.ToLower().Contains(filter.ToLower())).ToList().ForEach(i => Add(i)); } } @@ -80,16 +82,16 @@ namespace Maestro.Sources { private MediaCubeErrorReporter errorReporter; - public NexioRESTSource(Control parent, IMessageBus messageBus, MediaCubeErrorReporter errorReporter, String fileExtensionFilter) { + public NexioRESTSource(Control parent, IMessageBus messageBus, MediaCubeErrorReporter errorReporter, String agencyFilter) { this.parent = parent; this.messageBus = messageBus; this.errorReporter = errorReporter; - SetAcceptableExtensions(fileExtensionFilter); + SetAcceptableAgencies(agencyFilter); } - private void SetAcceptableExtensions(string fileExtensionFilter) { - if (fileExtensionFilter != null) - acceptableExtensions = fileExtensionFilter.Split(',')?.ToList(); + private void SetAcceptableAgencies(string agencyFilter) { + if (agencyFilter != null) + acceptableAgencies = agencyFilter.Split(',')?.ToList(); } public void Startup(Uri address) { @@ -117,20 +119,21 @@ namespace Maestro.Sources { return; JToken d = JToken.Parse(jToken.ToString()); string action = resultObject.GetValue(NexioAPI.ACTION).ToString(); - switch (action) { - case NexioAPI.LIST: - OnList(d); - break; - case NexioAPI.CREATE: - OnCreated(d); - break; - case NexioAPI.DELETE: - OnDeleted(d); - break; - case NexioAPI.UPDATE: - OnChanged(d); - break; - } + lock (lockObject) + switch (action) { + case NexioAPI.LIST: + OnList(d); + break; + case NexioAPI.CREATE: + OnCreated(d); + break; + case NexioAPI.DELETE: + OnDeleted(d); + break; + case NexioAPI.UPDATE: + OnChanged(d); + break; + } } //private void AddItem(JToken token, Boolean highlight) { @@ -161,13 +164,13 @@ namespace Maestro.Sources { if (l == null) return; //l.Children().ToList().Select(t => CreateItem(t, false)).OrderByDescending(i => i.Created).ToList().ForEach(i => parent.SafeCall(() => Add(i))); - l.Children().ToList().Select(t => CreateItem(t, false)).Where(x => x.CanHandle(acceptableExtensions)).OrderByDescending(i => i.Created).ToList().ForEach(i => parent.SafeCall(() => Add(i))); + l.Children().ToList().Select(t => CreateItem(t, false)).Where(x => x.CanHandle(acceptableAgencies)).OrderByDescending(i => i.Created).ToList().ForEach(i => parent.SafeCall(() => Add(i))); } private void OnChanged(JToken token) { string id = token[ID].ToString(); var item = Items.Where(x => x.ID == id).SingleOrDefault(); - if (item != null && item.CanHandle(acceptableExtensions)) { + if (item != null && item.CanHandle(acceptableAgencies)) { SetItem(ref item, token); parent.SafeCall(() => { messageBus.Send(new ModifyFileActionMsg() { @@ -181,7 +184,7 @@ namespace Maestro.Sources { private void OnCreated(JToken token) { var item = CreateItem(token, true); - if (item.CanHandle(acceptableExtensions)) { + if (item.CanHandle(acceptableAgencies)) { parent.SafeCall(() => { Insert(0, item); messageBus.Send(new CreateFileActionMsg() { diff --git a/client/Maestro/Sources/NexioSourceItem.cs b/client/Maestro/Sources/NexioSourceItem.cs index d9fc2d5b..2b9fd6ea 100644 --- a/client/Maestro/Sources/NexioSourceItem.cs +++ b/client/Maestro/Sources/NexioSourceItem.cs @@ -76,7 +76,7 @@ namespace Maestro.Sources { public bool CanHandle(List extensions) { if (extensions == null || extensions.Count < 1) return true; - if (extensions.Contains(Name.Substring(Name.Length-3).ToLower()) || extensions.Contains(Name.Substring(Name.Length - 3).ToUpper())) + if (extensions.Contains(Agency.ToLower()) || extensions.Contains(Agency.ToUpper())) return true; return false; } -- 2.54.0