From cc3bf81fabd005fa74c2b9663589892480f1a6bb Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Tue, 19 Dec 2017 15:25:33 +0200 Subject: Added Event Types and Action Types to DB Module ! --- .../ViewModels/ActionTypesViewVM.cs | 18 +++++++ .../ViewModels/ActionsTypesViewVM.cs | 18 ------- .../ViewModels/EventTypesViewVM.cs | 59 ++++++++++++++++++++++ 3 files changed, 77 insertions(+), 18 deletions(-) create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/ActionTypesViewVM.cs delete mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/ActionsTypesViewVM.cs (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels') diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/ActionTypesViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/ActionTypesViewVM.cs new file mode 100644 index 000000000..fe9ebda26 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/ActionTypesViewVM.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.DAL.Observables; +using Tango.MachineStudio.Common.Notifications; + +namespace Tango.MachineStudio.DB.ViewModels +{ + public class ActionTypesViewVM : DbTableViewModel + { + public ActionTypesViewVM(INotificationProvider notification) : base(notification) + { + + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/ActionsTypesViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/ActionsTypesViewVM.cs deleted file mode 100644 index c627ffbc4..000000000 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/ActionsTypesViewVM.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Tango.DAL.Observables; -using Tango.MachineStudio.Common.Notifications; - -namespace Tango.MachineStudio.DB.ViewModels -{ - public class ActionsTypesViewVM : DbTableViewModel - { - public ActionsTypesViewVM(INotificationProvider notification) : base(notification) - { - - } - } -} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/EventTypesViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/EventTypesViewVM.cs index 442eac908..69e3c9ff6 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/EventTypesViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/EventTypesViewVM.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -12,6 +13,64 @@ namespace Tango.MachineStudio.DB.ViewModels { public EventTypesViewVM(INotificationProvider notification) : base(notification) { + SelectedActions = new ObservableCollection>(); + } + + private ObservableCollection> _selectedActions; + public ObservableCollection> SelectedActions + { + get { return _selectedActions; } + set { _selectedActions = value; RaisePropertyChangedAuto(); } + } + + protected override void OnEdit() + { + SelectedActions = Adapter.ActionTypes.Select(x => new MultiComboVM(x, () => RaisePropertyChanged(nameof(SelectedActions)))).ToObservableCollection(); + + foreach (var actionType in SelectedActions) + { + if (SelectedEntity.EventTypesActions.ToList().Exists(x => x.ActionTypes == actionType.Entity && !x.Deleted)) + { + actionType.IsSelected = true; + } + } + + base.OnEdit(); + } + + protected override void OnAdd() + { + SelectedActions = Adapter.ActionTypes.Select(x => new MultiComboVM(x, () => RaisePropertyChanged(nameof(SelectedActions)))).ToObservableCollection(); + + base.OnAdd(); + } + + protected override void OnBeforeEntitySave(DialogOpenMode mode, EventType eventType) + { + base.OnBeforeEntitySave(mode, eventType); + + foreach (var actionType in SelectedActions) + { + var userRole = eventType.EventTypesActions.SingleOrDefault(x => x.ActionTypes == actionType.Entity); + + if (userRole != null) + { + userRole.Deleted = !actionType.IsSelected; + } + else + { + if (actionType.IsSelected) + { + eventType.EventTypesActions.Add(new EventTypesAction() + { + ActionTypes = actionType.Entity, + EventTypes = eventType, + ActionTypeGuid = actionType.Entity.Guid, + EventTypeGuid = eventType.Guid + }); + } + } + } } } } -- cgit v1.3.1