diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-03-11 14:03:02 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-03-11 14:03:02 +0200 |
| commit | c923d6611ffa64605879779c490a979e03daa189 (patch) | |
| tree | 8fedfe9963847146018c18ceee9cce7e0d0d579e /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs | |
| parent | 4188ea39897f5aa3bc4be5a44358b79436baf0b4 (diff) | |
| download | Tango-c923d6611ffa64605879779c490a979e03daa189.tar.gz Tango-c923d6611ffa64605879779c490a979e03daa189.zip | |
Working on Users & Roles module !
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs | 61 |
1 files changed, 55 insertions, 6 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs index fdb0f8983..9478014b7 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs @@ -81,6 +81,14 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels public RelayCommand AddOrganizationCommand { get; set; } + public RelayCommand RemoveOrganizationCommand { get; set; } + + public RelayCommand BackToManagedOrganizationCommand { get; set; } + + public RelayCommand<Role> RemoveRoleCommand { get; set; } + + public RelayCommand SaveManagedUserCommand { get; set; } + public MainViewVM(UsersAndRolesNavigationManager navigation, INotificationProvider notification) { _navigation = navigation; @@ -88,11 +96,15 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels LoadOrganizations(); - ManageOrganizationCommand = new RelayCommand(ManageOrganization, () => SelectedOrganization != null); + ManageOrganizationCommand = new RelayCommand(LoadSelectedOrganization, () => SelectedOrganization != null); BackToOrganizationsCommand = new RelayCommand(BackToOrganizations); ManageUserCommand = new RelayCommand(ManageUser, () => SelectedUser != null); SaveOrganizationCommand = new RelayCommand(SaveOrganization); AddOrganizationCommand = new RelayCommand(AddOrganization); + RemoveOrganizationCommand = new RelayCommand(RemoveOrganization, () => SelectedOrganization != null); + BackToManagedOrganizationCommand = new RelayCommand(BackToManagedOrganization); + RemoveRoleCommand = new RelayCommand<Role>(RemoveUserRole); + SaveManagedUserCommand = new RelayCommand(SaveManagedUser); } private async void AddOrganization() @@ -111,7 +123,19 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels await org.SaveAsync(_organizationsContext); Organizations = _organizationsContext.Organizations.ToObservableCollection(); SelectedOrganization = org; - ManageOrganization(); + LoadSelectedOrganization(); + } + } + } + + private async void RemoveOrganization() + { + if (_notification.ShowQuestion("Are you sure you want to remove " + SelectedOrganization.Name + " organization?")) + { + using (_notification.PushTaskItem("Removing organization...")) + { + await SelectedOrganization.DeleteCascadeAsync(_organizationsContext); + LoadOrganizations(); } } } @@ -120,7 +144,7 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels { using (_notification.PushTaskItem("Saving organization address and contact...")) { - ManagedOrganization.Contact.FullName = ManagedOrganization.Contact.FirstName + " " + ManagedOrganization.Contact.LastName; + ManagedOrganization.Contact.SetFullName(); await ManagedOrganization.SaveAsync(_manageContext); LoadOrganizations(); SelectedOrganization = Organizations.SingleOrDefault(x => x.Guid == ManagedOrganization.Guid); @@ -134,8 +158,8 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels Task.Factory.StartNew(() => { _userContext = ObservablesContext.CreateDefault(); - Roles = _manageContext.Roles.ToObservableCollection(); - ManagedUser = _manageContext.Users.SingleOrDefault(x => x.Guid == SelectedUser.Guid); + Roles = _userContext.Roles.ToObservableCollection(); + ManagedUser = _userContext.Users.SingleOrDefault(x => x.Guid == SelectedUser.Guid); ManagedUserRoles = ManagedUser.Roles.ToObservableCollection(); InvokeUI(() => _navigation.NavigateTo(UsersAndRolesNavigationView.UserManagementView)); @@ -148,7 +172,32 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels _navigation.NavigateTo(UsersAndRolesNavigationView.OrganizationSelectionView); } - private void ManageOrganization() + private void BackToManagedOrganization() + { + _navigation.NavigateTo(UsersAndRolesNavigationView.OrganizationManagementView); + } + + private void RemoveUserRole(Role role) + { + ManagedUserRoles.Remove(role); + + foreach (var userRole in ManagedUser.UsersRoles.Where(x => x.Role == role).ToList()) + { + userRole.DefferedDelete(_userContext); + } + } + + private async void SaveManagedUser() + { + using (_notification.PushTaskItem("Saving user details...")) + { + ManagedUser.Contact.SetFullName(); + await ManagedUser.SaveAsync(_userContext); + LoadSelectedOrganization(); + } + } + + private void LoadSelectedOrganization() { using (_notification.PushTaskItem("Loading organization...")) { |
