diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-03-07 18:30:49 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-03-07 18:30:49 +0200 |
| commit | cf3c535fb0ef3140cc7a3a3c74cadd9b1d519bcf (patch) | |
| tree | 942ff2f666552dc488095881baa2f3b4c18c1bb1 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs | |
| parent | e317a7943e47c34e731729eacc46f8ce48905927 (diff) | |
| download | Tango-cf3c535fb0ef3140cc7a3a3c74cadd9b1d519bcf.tar.gz Tango-cf3c535fb0ef3140cc7a3a3c74cadd9b1d519bcf.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, 57 insertions, 4 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 9c10dc126..fdb0f8983 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 @@ -50,11 +50,11 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels set { _roles = value; RaisePropertyChangedAuto(); } } - private ObservableCollection<Permission> _permissions; - public ObservableCollection<Permission> Permissions + private ObservableCollection<Role> _managedUserRoles; + public ObservableCollection<Role> ManagedUserRoles { - get { return _permissions; } - set { _permissions = value; RaisePropertyChangedAuto(); } + get { return _managedUserRoles; } + set { _managedUserRoles = value; RaisePropertyChangedAuto(); } } private User _selectedUser; @@ -77,6 +77,10 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels public RelayCommand ManageUserCommand { get; set; } + public RelayCommand SaveOrganizationCommand { get; set; } + + public RelayCommand AddOrganizationCommand { get; set; } + public MainViewVM(UsersAndRolesNavigationManager navigation, INotificationProvider notification) { _navigation = navigation; @@ -87,6 +91,40 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels ManageOrganizationCommand = new RelayCommand(ManageOrganization, () => SelectedOrganization != null); BackToOrganizationsCommand = new RelayCommand(BackToOrganizations); ManageUserCommand = new RelayCommand(ManageUser, () => SelectedUser != null); + SaveOrganizationCommand = new RelayCommand(SaveOrganization); + AddOrganizationCommand = new RelayCommand(AddOrganization); + } + + private async void AddOrganization() + { + String name = _notification.ShowTextInput("Enter organization name", "Name"); + + if (!String.IsNullOrWhiteSpace(name)) + { + using (_notification.PushTaskItem("Adding new organization...")) + { + Organization org = new Organization(); + org.Name = name; + org.Address = new Address(); + org.Contact = new Contact(); + _organizationsContext.Organizations.Add(org); + await org.SaveAsync(_organizationsContext); + Organizations = _organizationsContext.Organizations.ToObservableCollection(); + SelectedOrganization = org; + ManageOrganization(); + } + } + } + + private async void SaveOrganization() + { + using (_notification.PushTaskItem("Saving organization address and contact...")) + { + ManagedOrganization.Contact.FullName = ManagedOrganization.Contact.FirstName + " " + ManagedOrganization.Contact.LastName; + await ManagedOrganization.SaveAsync(_manageContext); + LoadOrganizations(); + SelectedOrganization = Organizations.SingleOrDefault(x => x.Guid == ManagedOrganization.Guid); + } } private void ManageUser() @@ -96,7 +134,9 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels Task.Factory.StartNew(() => { _userContext = ObservablesContext.CreateDefault(); + Roles = _manageContext.Roles.ToObservableCollection(); ManagedUser = _manageContext.Users.SingleOrDefault(x => x.Guid == SelectedUser.Guid); + ManagedUserRoles = ManagedUser.Roles.ToObservableCollection(); InvokeUI(() => _navigation.NavigateTo(UsersAndRolesNavigationView.UserManagementView)); }); @@ -135,6 +175,19 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels Organizations = _organizationsContext.Organizations.ToObservableCollection(); } + public void OnDropRole(Role role) + { + ManagedUser.UsersRoles.Add(new UsersRole() + { + Role = role, + RoleGuid = role.Guid, + User = ManagedUser, + UserGuid = ManagedUser.Guid, + }); + + ManagedUserRoles.Add(role); + } + protected override void RaisePropertyChangedAuto([CallerMemberName] string caller = null) { base.RaisePropertyChangedAuto(caller); |
