aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules
diff options
context:
space:
mode:
authorVictoria Plitt <Victoria.Plitt@twine-s.com>2019-12-04 12:11:21 +0200
committerVictoria Plitt <Victoria.Plitt@twine-s.com>2019-12-04 12:11:21 +0200
commit2e562cd2949b98a130b23772a0d6e8ba938c2cd9 (patch)
treeaa86b2225c6b761ab13c9f98e281b31384de729a /Software/Visual_Studio/MachineStudio/Modules
parent8c443ef4dae0ff2e30846824e684063405b4755f (diff)
downloadTango-2e562cd2949b98a130b23772a0d6e8ba938c2cd9.tar.gz
Tango-2e562cd2949b98a130b23772a0d6e8ba938c2cd9.zip
Implemented deleted users handling on Machine Studio.
Started working on Dispenser Analyzer. Related Work Items: #1533
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs45
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationManagementView.xaml26
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml10
3 files changed, 78 insertions, 3 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 a46d5f456..f7f6d1d3d 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
@@ -104,6 +104,21 @@ 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; }
@@ -123,6 +138,8 @@ 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; }
@@ -141,8 +158,10 @@ 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()
@@ -202,7 +221,7 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
_userContext = ObservablesContext.CreateDefault();
Roles = new RolesCollectionBuilder(_userContext).SetAll().WithPermission().Build();
- ManagedUser = new UserBuilder(_userContext).Set(SelectedUser.Guid).WithRolesAndPermissions().Build();
+ ManagedUser = new UserBuilder(_userContext).WithDeleted().Set(SelectedUser.Guid).WithRolesAndPermissions().Build();
ManagedUserRoles = ManagedUser.Roles.ToObservableCollection();
});
@@ -249,6 +268,28 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
}
}
+ private async void RestoreAndSaveManagedUser()
+ {
+ try
+ {
+ ManagedUser.Validate(_userContext);
+ }
+ 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;
+ await ManagedUser.SaveAsync(_userContext);
+ LoadSelectedOrganization();
+ }
+ }
+ }
+
private async void LoadSelectedOrganization()
{
using (_notification.PushTaskItem("Loading organization..."))
@@ -257,7 +298,7 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
{
_manageContext = ObservablesContext.CreateDefault();
- ManagedOrganization = new OrganizationBuilder(_manageContext).Set(SelectedOrganization.Guid).WithUsers().Build();
+ ManagedOrganization = new OrganizationBuilder(_manageContext).Set(SelectedOrganization.Guid).WithUsers(true).Build();
});
_navigation.NavigateTo(UsersAndRolesNavigationView.OrganizationManagementView);
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationManagementView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationManagementView.xaml
index d5a5d41d7..1572923a6 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationManagementView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/OrganizationManagementView.xaml
@@ -82,6 +82,10 @@
</Button>
</StackPanel>
</Grid>
+ <StackPanel Orientation="Horizontal" DockPanel.Dock="Bottom" VerticalAlignment="Center" Margin="0 10 0 5" HorizontalAlignment="Left">
+ <CheckBox Name="cbShowDeleted" IsChecked="{Binding ShowDeleted}" VerticalAlignment="Center"></CheckBox>
+ <TextBlock Margin="10 0 0 0" VerticalAlignment="Center" Text="Show deleted" FontSize="16" FontWeight="Normal"></TextBlock>
+ </StackPanel>
<Grid DockPanel.Dock="Bottom">
<StackPanel VerticalAlignment="Center" Orientation="Horizontal" HorizontalAlignment="Left" Margin="0 0 0 0">
<Button Margin="0 0 10 0" MinWidth="160" Height="50" Background="{StaticResource RedBrush300}" BorderBrush="{StaticResource RedBrush300}" Command="{Binding RemoveUserCommand}">
@@ -113,6 +117,28 @@
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="VerticalContentAlignment" Value="Center"></Setter>
+ <Setter Property="Visibility" Value="Visible" />
+ <Style.Triggers>
+ <MultiDataTrigger>
+ <MultiDataTrigger.Conditions>
+ <Condition Binding="{Binding ElementName=cbShowDeleted, Path=IsChecked}" Value="False"/>
+ <Condition Binding="{Binding Deleted}" Value="True"/>
+ </MultiDataTrigger.Conditions>
+ <MultiDataTrigger.Setters>
+ <Setter Property="Visibility" Value="Collapsed" />
+ </MultiDataTrigger.Setters>
+ </MultiDataTrigger>
+ <MultiDataTrigger>
+ <MultiDataTrigger.Conditions>
+ <Condition Binding="{Binding ElementName=cbShowDeleted, Path=IsChecked}" Value="true"/>
+ <Condition Binding="{Binding Deleted}" Value="True"/>
+ </MultiDataTrigger.Conditions>
+ <MultiDataTrigger.Setters>
+ <Setter Property="Visibility" Value="Visible" />
+ <Setter Property="Foreground" Value="{StaticResource RedBrush100}" />
+ </MultiDataTrigger.Setters>
+ </MultiDataTrigger>
+ </Style.Triggers>
</Style>
</DataGrid.CellStyle>
<DataGrid.Columns>
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml
index bb003f525..5246ae09c 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/Views/UserManagementView.xaml
@@ -19,6 +19,8 @@
<UserControl.Resources>
<providers:PlacesProvider x:Key="PlacesProvider" />
+ <converters:BooleanToVisibilityConverter x:Key="BoolToVisibilityConverter"></converters:BooleanToVisibilityConverter>
+ <converters:BooleanToVisibilityInverseConverter x:Key="BooleanToVisibilityInverseConverter"></converters:BooleanToVisibilityInverseConverter>
</UserControl.Resources>
<Grid>
@@ -74,12 +76,18 @@
</Grid>
</Grid>
<Grid DockPanel.Dock="Bottom">
- <Button Margin="0 10 0 0" MinWidth="200" Height="60" Command="{Binding SaveManagedUserCommand}" HorizontalAlignment="Right">
+ <Button Margin="0 10 0 0" MinWidth="200" Height="60" Command="{Binding SaveManagedUserCommand}" HorizontalAlignment="Right" Visibility="{Binding Path=ManagedUser.Deleted, Converter={StaticResource BooleanToVisibilityInverseConverter}}">
<StackPanel Orientation="Horizontal">
<TextBlock FontSize="18" VerticalAlignment="Center">SAVE</TextBlock>
<materialDesign:PackIcon Margin="5 0 0 0" Kind="ContentSave" Width="30" Height="30" />
</StackPanel>
</Button>
+ <Button Margin="0 10 0 0" MinWidth="200" Height="60" Background="{StaticResource OrangeBrush300}" BorderBrush="{StaticResource OrangeBrush300}" Command="{Binding RestoreAndSaveManagedUserCommand}" HorizontalAlignment="Right" Visibility="{Binding Path=ManagedUser.Deleted, Converter={StaticResource BoolToVisibilityConverter}}">
+ <StackPanel Orientation="Horizontal">
+ <TextBlock FontSize="18" VerticalAlignment="Center" Text="RESTORE &amp; SAVE"/>
+ <materialDesign:PackIcon Margin="5 0 0 0" Kind="ContentSave" Width="30" Height="30" />
+ </StackPanel>
+ </Button>
</Grid>
<Grid>
<DockPanel Margin="0 20 0 0">