From 639cae64dd2fb5b19082a0486608c5b3066d4e78 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Tue, 12 Dec 2017 19:25:15 +0200 Subject: Working on machine studio. --- .../ViewModels/DBViewModels/UsersViewVM.cs | 68 ++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 Software/Visual_Studio/Utilities/Tango.MachineDesigner.UI/ViewModels/DBViewModels/UsersViewVM.cs (limited to 'Software/Visual_Studio/Utilities/Tango.MachineDesigner.UI/ViewModels/DBViewModels/UsersViewVM.cs') diff --git a/Software/Visual_Studio/Utilities/Tango.MachineDesigner.UI/ViewModels/DBViewModels/UsersViewVM.cs b/Software/Visual_Studio/Utilities/Tango.MachineDesigner.UI/ViewModels/DBViewModels/UsersViewVM.cs new file mode 100644 index 000000000..22ddef4e0 --- /dev/null +++ b/Software/Visual_Studio/Utilities/Tango.MachineDesigner.UI/ViewModels/DBViewModels/UsersViewVM.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.DAL.Observables; + +namespace Tango.MachineStudio.UI.ViewModels.DBViewModels +{ + public class UsersViewVM : DbTableViewModel + { + private ObservableCollection> _selectedRoles; + public ObservableCollection> SelectedRoles + { + get { return _selectedRoles; } + set { _selectedRoles = value; RaisePropertyChangedAuto(); } + } + + public UsersViewVM() : base() + { + SelectedRoles = new ObservableCollection>(); + } + + protected override void OnEdit() + { + SelectedRoles = Adapter.Roles.Select(x => new MultiComboVM(x)).ToObservableCollection(); + + foreach (var role in SelectedRoles) + { + if (SelectedEntity.UsersRoles.ToList().Exists(x => x.Role == role.Entity && !x.Deleted)) + { + role.IsSelected = true; + } + } + + base.OnEdit(); + } + + protected override void OnBeforeEntitySave(DialogOpenMode mode, User user) + { + base.OnBeforeEntitySave(mode, user); + + foreach (var role in SelectedRoles) + { + var userRole = user.UsersRoles.SingleOrDefault(x => x.Role == role.Entity); + + if (userRole != null) + { + userRole.Deleted = !role.IsSelected; + } + else + { + if (role.IsSelected) + { + user.UsersRoles.Add(new UsersRole() + { + Role = role.Entity, + User = user, + RoleGuid = role.Entity.Guid, + UserGuid = user.Guid + }); + } + } + } + } + } +} -- cgit v1.3.1