aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2018-08-26 10:37:38 +0300
committerShlomo Hecht <shlomo@twine-s.com>2018-08-26 10:37:38 +0300
commite6704dce7a2b7f6d5f9bbf1b8374cc7f00ea061e (patch)
treee405f333819560543274119432dd01667d850b77 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs
parent9f112324a1196bffd1660122285aafc2aff63219 (diff)
parentf98cac2d6e331eaf62167d63524134d53db921ef (diff)
downloadTango-e6704dce7a2b7f6d5f9bbf1b8374cc7f00ea061e.tar.gz
Tango-e6704dce7a2b7f6d5f9bbf1b8374cc7f00ea061e.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
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.cs50
1 files changed, 30 insertions, 20 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 7d82cbbbc..db312b78f 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
@@ -8,14 +8,16 @@ using System.Threading.Tasks;
using Tango.BL;
using Tango.BL.Entities;
using Tango.Core.Commands;
+using Tango.MachineStudio.Common;
using Tango.MachineStudio.Common.Notifications;
using Tango.MachineStudio.UsersAndRoles.Navigation;
using Tango.MachineStudio.UsersAndRoles.Providers;
using Tango.SharedUI;
+using System.Data.Entity;
namespace Tango.MachineStudio.UsersAndRoles.ViewModels
{
- public class MainViewVM : ViewModel
+ public class MainViewVM : StudioViewModel
{
private ObservablesContext _organizationsContext;
private ObservablesContext _manageContext;
@@ -129,8 +131,6 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
_navigation = navigation;
_notification = notification;
- LoadOrganizations();
-
ManageOrganizationCommand = new RelayCommand(LoadSelectedOrganization, () => SelectedOrganization != null);
BackToOrganizationsCommand = new RelayCommand(BackToOrganizations);
ManageUserCommand = new RelayCommand(LoadSelectedUser, () => SelectedUser != null);
@@ -144,6 +144,11 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
RemoveUserCommand = new RelayCommand(RemoveSelectedUser, () => SelectedUser != null);
}
+ public override void OnApplicationReady()
+ {
+ LoadOrganizations();
+ }
+
private async void AddOrganization()
{
String name = _notification.ShowTextInput("Enter organization name", "Name");
@@ -187,19 +192,20 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
}
}
- private void LoadSelectedUser()
+ private async void LoadSelectedUser()
{
using (_notification.PushTaskItem("Loading user details..."))
{
- Task.Factory.StartNew(() =>
+ await Task.Factory.StartNew(() =>
{
_userContext = ObservablesContext.CreateDefault();
+
Roles = _userContext.Roles.ToObservableCollection();
- ManagedUser = _userContext.Users.SingleOrDefault(x => x.Guid == SelectedUser.Guid);
+ ManagedUser = _userContext.Adapter.GetUser(SelectedUser.Guid);
ManagedUserRoles = ManagedUser.Roles.ToObservableCollection();
-
- InvokeUI(() => _navigation.NavigateTo(UsersAndRolesNavigationView.UserManagementView));
});
+
+ _navigation.NavigateTo(UsersAndRolesNavigationView.UserManagementView);
}
}
@@ -242,31 +248,35 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
}
}
- private void LoadSelectedOrganization()
+ private async void LoadSelectedOrganization()
{
using (_notification.PushTaskItem("Loading organization..."))
{
- Task.Factory.StartNew(() =>
+ await Task.Factory.StartNew(() =>
{
_manageContext = ObservablesContext.CreateDefault();
- ManagedOrganization = _manageContext.Organizations.SingleOrDefault(x => x.Guid == SelectedOrganization.Guid);
- InvokeUI(() => _navigation.NavigateTo(UsersAndRolesNavigationView.OrganizationManagementView));
+ ManagedOrganization = _manageContext.Adapter.GetOrganizationAndUsers(SelectedOrganization.Guid);
});
+
+ _navigation.NavigateTo(UsersAndRolesNavigationView.OrganizationManagementView);
}
}
private void LoadOrganizations()
{
- _organizationsContext = ObservablesContext.CreateDefault();
- _organizationsContext.Configuration.LazyLoadingEnabled = false;
-
- _organizationsContext.Users.ToList();
- _organizationsContext.Contacts.ToList();
- _organizationsContext.Addresses.ToList();
- _organizationsContext.Machines.ToList();
+ Task.Factory.StartNew(() =>
+ {
+ _organizationsContext = ObservablesContext.CreateDefault();
- Organizations = _organizationsContext.Organizations.ToObservableCollection();
+ Organizations = _organizationsContext.Organizations
+ .Include(x => x.Machines)
+ .Include(x => x.Users)
+ .Include(x => x.Users.Select(y => y.Contact))
+ .Include(x => x.Users.Select(y => y.Address))
+ .Include(x => x.Address)
+ .ToObservableCollection();
+ });
}
public void OnDropRole(Role role)