From 3415150ae12893d4f08d1afde512624755996095 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Mon, 31 Dec 2018 18:01:25 +0200 Subject: Implemented ActionTimer. Fixed some issue with machine designer and dispenser module. --- .../ViewModels/MainViewVM.cs | 34 ++++++++++++++++------ .../Views/MachineDetailsView.xaml | 2 +- .../Views/MachinesView.xaml | 4 +-- .../Views/MainView.xaml | 2 +- 4 files changed, 29 insertions(+), 13 deletions(-) (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner') diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs index 33e5b4ad7..71b2e0bd5 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/ViewModels/MainViewVM.cs @@ -20,12 +20,16 @@ using Tango.AutoComplete.Editors; using System.Data.Entity; using Tango.BL.Builders; using Tango.MachineStudio.MachineDesigner.Contracts; +using System.Windows.Threading; +using Tango.Core.Threading; namespace Tango.MachineStudio.MachineDesigner.ViewModels { public class MainViewVM : StudioViewModel { private INotificationProvider _notification; + private ActionTimer _machines_action_timer; + private ActionTimer _dispensers_action_timer; #region Properties @@ -176,7 +180,9 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels MachinesAdapter = new ObservablesStaticCollections(ObservablesContext.CreateDefault()); _notification = notification; - //SaveCommand = new RelayCommand(Save); + _machines_action_timer = new ActionTimer(TimeSpan.FromMilliseconds(200)); + _dispensers_action_timer = new ActionTimer(TimeSpan.FromMilliseconds(200)); + AddIdsCommand = new RelayCommand(AddIds, (x) => ActiveMachine != null && ActiveMachine.Configuration != null && ActiveMachine.Configuration.IdsPacks.Count < 8); RemoveIdsCommand = new RelayCommand(RemoveIds, (x) => SelectedIds != null); EditMachineCommand = new RelayCommand(() => LoadSelectedMachine(), () => SelectedMachine != null); @@ -199,13 +205,17 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels #endregion - private async void OnDispensersFilterChanged() + private void OnDispensersFilterChanged() { if (!String.IsNullOrWhiteSpace(DispensersFilter)) { - IsFree = false; - ActiveMachineAdapter.Dispensers = (await ActiveMachineAdapter.Context.Dispensers.Where(x => x.SerialNumber.ToLower().StartsWith(DispensersFilter.ToLower())).ToListAsync()).ToObservableCollection(); - IsFree = true; + _dispensers_action_timer.ResetReplace(() => + { + Task.Factory.StartNew(() => + { + ActiveMachineAdapter.Dispensers = ActiveMachineAdapter.Context.Dispensers.Where(x => x.SerialNumber.ToLower().StartsWith(DispensersFilter.ToLower())).ToSynchronizedObservableCollection(); + }); + }); } } @@ -634,13 +644,19 @@ namespace Tango.MachineStudio.MachineDesigner.ViewModels } } - private async void OnFilterChanged() + private void OnFilterChanged() { if (Filter != null) { - IsFree = false; - MachinesAdapter.Machines = (await MachinesAdapter.Context.Machines.Where(x => x.SerialNumber.StartsWith(Filter)).Include(x => x.Organization).Include(x => x.MachineVersion).ToListAsync()).ToObservableCollection(); - IsFree = true; + _machines_action_timer.ResetReplace(() => + { + Task.Factory.StartNew(() => + { + IsFree = false; + MachinesAdapter.Machines = MachinesAdapter.Context.Machines.Where(x => x.SerialNumber.StartsWith(Filter)).Include(x => x.Organization).Include(x => x.MachineVersion).ToSynchronizedObservableCollection(); + IsFree = true; + }); + }); } } } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineDetailsView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineDetailsView.xaml index 5db96a3a1..31e7f535b 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineDetailsView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.MachineDesigner/Views/MachineDetailsView.xaml @@ -36,7 +36,7 @@ - +