aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs
diff options
context:
space:
mode:
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.cs127
1 files changed, 14 insertions, 113 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 16395d6bc..a46d5f456 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
@@ -15,10 +15,6 @@ using Tango.MachineStudio.UsersAndRoles.Providers;
using Tango.SharedUI;
using System.Data.Entity;
using Tango.BL.Builders;
-using Tango.BL.ActionLogs;
-using Tango.BL.DTO;
-using Tango.BL.Enumerations;
-using Tango.MachineStudio.Common.Authentication;
namespace Tango.MachineStudio.UsersAndRoles.ViewModels
{
@@ -29,10 +25,6 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
private ObservablesContext _userContext;
private UsersAndRolesNavigationManager _navigation;
private INotificationProvider _notification;
- private IActionLogManager _actionLogManager;
- private OrganizationDTO _organizationBeforeSave;
- private IAuthenticationProvider _authenticationProvider;
- private UserDTO _userBeforeSave;
private ObservableCollection<Organization> _organizations;
public ObservableCollection<Organization> Organizations
@@ -113,21 +105,6 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
}
}
- private bool _showDeleted;
- public bool ShowDeleted
- {
- get { return _showDeleted; }
- set
- {
- _showDeleted = value;
- if (_showDeleted)
- {
- //ShowDeletedUsers();
- }
- }
- }
-
-
public RelayCommand ManageOrganizationCommand { get; set; }
public RelayCommand BackToOrganizationsCommand { get; set; }
@@ -146,18 +123,14 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
public RelayCommand SaveManagedUserCommand { get; set; }
- public RelayCommand RestoreAndSaveManagedUserCommand { get; set; }
-
public RelayCommand AddUserCommand { get; set; }
public RelayCommand RemoveUserCommand { get; set; }
- public MainViewVM(UsersAndRolesNavigationManager navigation, INotificationProvider notification, IActionLogManager actionLogManager, IAuthenticationProvider authenticationProvider)
+ public MainViewVM(UsersAndRolesNavigationManager navigation, INotificationProvider notification)
{
_navigation = navigation;
_notification = notification;
- _actionLogManager = actionLogManager;
- _authenticationProvider = authenticationProvider;
ManageOrganizationCommand = new RelayCommand(LoadSelectedOrganization, () => SelectedOrganization != null);
BackToOrganizationsCommand = new RelayCommand(BackToOrganizations);
@@ -168,10 +141,8 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
BackToManagedOrganizationCommand = new RelayCommand(BackToManagedOrganization);
RemoveRoleCommand = new RelayCommand<Role>(RemoveUserRole);
SaveManagedUserCommand = new RelayCommand(SaveManagedUser);
- RestoreAndSaveManagedUserCommand = new RelayCommand(RestoreAndSaveManagedUser);
AddUserCommand = new RelayCommand(AddNewUser);
RemoveUserCommand = new RelayCommand(RemoveSelectedUser, () => SelectedUser != null);
- _showDeleted = false;
}
public override void OnApplicationReady()
@@ -193,7 +164,6 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
org.Contact = new Contact();
_organizationsContext.Organizations.Add(org);
await org.SaveAsync(_organizationsContext);
- _actionLogManager.InsertLog(ActionLogType.OrganizationCreated, _authenticationProvider.CurrentUser, org.Name, org, "Organization created using Machine Studio.");
Organizations = _organizationsContext.Organizations.ToObservableCollection();
SelectedOrganization = org;
LoadSelectedOrganization();
@@ -208,7 +178,6 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
using (_notification.PushTaskItem("Removing organization..."))
{
await SelectedOrganization.DeleteCascadeAsync(_organizationsContext);
- _actionLogManager.InsertLog(ActionLogType.OrganizationDeleted, _authenticationProvider.CurrentUser, SelectedOrganization.Name, SelectedOrganization, "Organization deleted using Machine Studio.");
await LoadOrganizations();
}
}
@@ -218,13 +187,7 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
{
using (_notification.PushTaskItem("Saving organization address and contact..."))
{
- var organizationAfter = OrganizationDTO.FromObservable(ManagedOrganization);
-
await ManagedOrganization.SaveAsync(_manageContext);
- _actionLogManager.InsertLog(ActionLogType.OrganizationSaved, _authenticationProvider.CurrentUser, ManagedOrganization.Name, _organizationBeforeSave, organizationAfter, "Organization saved using Machine Studio.");
-
- _organizationBeforeSave = organizationAfter;
-
await LoadOrganizations();
SelectedOrganization = Organizations.SingleOrDefault(x => x.Guid == ManagedOrganization.Guid);
}
@@ -239,10 +202,8 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
_userContext = ObservablesContext.CreateDefault();
Roles = new RolesCollectionBuilder(_userContext).SetAll().WithPermission().Build();
- ManagedUser = new UserBuilder(_userContext).WithDeleted().Set(SelectedUser.Guid).WithRolesAndPermissions().Build();
+ ManagedUser = new UserBuilder(_userContext).Set(SelectedUser.Guid).WithRolesAndPermissions().Build();
ManagedUserRoles = ManagedUser.Roles.ToObservableCollection();
-
- _userBeforeSave = UserDTO.FromObservable(ManagedUser);
});
_navigation.NavigateTo(UsersAndRolesNavigationView.UserManagementView);
@@ -274,11 +235,6 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
try
{
ManagedUser.Validate(_userContext);
-
- if (ManagedUser.Roles.GroupBy(x => x.RoleEnum).Any(x => x.Count() > 1))
- {
- throw new InvalidOperationException("Cannot save user with duplicate roles.");
- }
}
catch (Exception ex)
{
@@ -288,45 +244,11 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
using (_notification.PushTaskItem("Saving user details..."))
{
- var userAfter = UserDTO.FromObservable(ManagedUser);
await ManagedUser.SaveAsync(_userContext);
- _actionLogManager.InsertLog(ActionLogType.UserSaved, _authenticationProvider.CurrentUser, ManagedUser.Email, _userBeforeSave, userAfter, "User saved using Machine Studio.");
- _userBeforeSave = userAfter;
LoadSelectedOrganization();
}
}
- private async void RestoreAndSaveManagedUser()
- {
- try
- {
- ManagedUser.Validate(_userContext);
-
- if (ManagedUser.Roles.GroupBy(x => x.RoleEnum).Any(x => x.Count() > 1))
- {
- throw new InvalidOperationException("Cannot save user with duplicate roles.");
- }
- }
- catch (Exception ex)
- {
- _notification.ShowError(ex.Message);
- return;
- }
- if (_notification.ShowQuestion("Are you sure you wish to re-activate this account?"))
- {
- using (_notification.PushTaskItem("Saving user details..."))
- {
- ManagedUser.Deleted = false;
-
- var userAfter = UserDTO.FromObservable(ManagedUser);
- await ManagedUser.SaveAsync(_userContext);
- _actionLogManager.InsertLog(ActionLogType.UserRestored, _authenticationProvider.CurrentUser, ManagedUser.Email, _userBeforeSave, userAfter, "User restored using Machine Studio.");
- _userBeforeSave = userAfter;
- LoadSelectedOrganization();
- }
- }
- }
-
private async void LoadSelectedOrganization()
{
using (_notification.PushTaskItem("Loading organization..."))
@@ -335,9 +257,7 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
{
_manageContext = ObservablesContext.CreateDefault();
- ManagedOrganization = new OrganizationBuilder(_manageContext).Set(SelectedOrganization.Guid).WithUsers(true).Build();
-
- _organizationBeforeSave = OrganizationDTO.FromObservable(ManagedOrganization);
+ ManagedOrganization = new OrganizationBuilder(_manageContext).Set(SelectedOrganization.Guid).WithUsers().Build();
});
_navigation.NavigateTo(UsersAndRolesNavigationView.OrganizationManagementView);
@@ -374,25 +294,25 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
using (_notification.PushTaskItem("Removing user..."))
{
await SelectedUser.DeleteCascadeAsync(_manageContext);
- _actionLogManager.InsertLog(ActionLogType.UserDeleted, _authenticationProvider.CurrentUser, SelectedUser.Email, SelectedUser, "User deleted using Machine Studio.");
LoadSelectedOrganization();
}
}
}
- private void AddNewUser()
+ private async void AddNewUser()
{
- _notification.ShowModalDialog<UserCreationDialogVM>(async (vm) =>
+ String email = _notification.ShowTextInput("Enter user email", "email");
+
+ if (!String.IsNullOrWhiteSpace(email))
{
User user = new User();
- user.Email = vm.Email;
- user.Password = User.GetPasswordHash(vm.Password);
- user.PasswordChangeRequired = true;
+ user.Email = email;
+ user.Password = "1111";
user.Contact = new Contact()
{
- FirstName = vm.FirstName,
- LastName = vm.LastName,
- Email = vm.Email,
+ FirstName = "Twine",
+ LastName = "User",
+ Email = email,
};
user.Address = new Address();
@@ -403,25 +323,9 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
Role = _manageContext.Roles.SingleOrDefault(x => x.Code == (int)BL.Enumerations.Roles.User)
});
- user.UsersRoles.Add(new UsersRole()
- {
- User = user,
- Role = _manageContext.Roles.SingleOrDefault(x => x.Code == (int)BL.Enumerations.Roles.MachineStudioUser)
- });
-
- user.UsersRoles.Add(new UsersRole()
- {
- User = user,
- Role = _manageContext.Roles.SingleOrDefault(x => x.Code == (int)BL.Enumerations.Roles.PPCUser)
- });
-
try
{
- if (!user.Validate(_manageContext))
- {
- _notification.ShowError(String.Join(Environment.NewLine, user.ValidationErrors));
- return;
- }
+ user.Validate(_manageContext);
}
catch (Exception ex)
{
@@ -434,13 +338,10 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
using (_notification.PushTaskItem("Adding new user..."))
{
await ManagedOrganization.SaveAsync(_manageContext);
- _actionLogManager.InsertLog(ActionLogType.UserCreated, _authenticationProvider.CurrentUser, user.Email, user, "User created using Machine Studio.");
await LoadOrganizations();
SelectedOrganization = Organizations.SingleOrDefault(x => x.Guid == ManagedOrganization.Guid);
- SelectedUser = user;
- LoadSelectedUser();
}
- });
+ }
}
private void SetUserPlace(Place place)