aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-03-07 18:30:49 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-03-07 18:30:49 +0200
commitcf3c535fb0ef3140cc7a3a3c74cadd9b1d519bcf (patch)
tree942ff2f666552dc488095881baa2f3b4c18c1bb1 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs
parente317a7943e47c34e731729eacc46f8ce48905927 (diff)
downloadTango-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.cs61
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);