diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2017-12-14 16:28:42 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2017-12-14 16:28:42 +0200 |
| commit | 7887ca0ad2433c4adbb65d96bf926561405ab290 (patch) | |
| tree | d02f2b60ee855b3f7c2b1cfe687a0135b8528f87 /Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB | |
| parent | ac34ffe211bfa0d811f33a9e6141c0da97c55abe (diff) | |
| download | Tango-7887ca0ad2433c4adbb65d96bf926561405ab290.tar.gz Tango-7887ca0ad2433c4adbb65d96bf926561405ab290.zip | |
Implemented Roles in DB Module.
Added Permission enum generation.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB')
18 files changed, 295 insertions, 18 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Converters/RolesPermissionsToStringConverter.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Converters/RolesPermissionsToStringConverter.cs new file mode 100644 index 000000000..7a301bd12 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Converters/RolesPermissionsToStringConverter.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Data; +using Tango.DAL.Observables; +using Tango.MachineStudio.DB.ViewModels; + +namespace Tango.MachineStudio.DB.Converters +{ + public class RolesPermissionsToStringConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value == null) return ""; + + if (value is IEnumerable<RolesPermission>) + { + IEnumerable<RolesPermission> rolesPermissions = value as IEnumerable<RolesPermission>; + return String.Join(", ", rolesPermissions.Where(x => !x.Deleted).Select(x => x.Permission.Name)); + } + else + { + IEnumerable<MultiComboVM<Permission>> rolesPermissions = value as IEnumerable<MultiComboVM<Permission>>; + return String.Join(", ", rolesPermissions.Where(x => x.IsSelected).Select(x => x.Entity.Name)); + } + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Converters/UsersRolesToStringConverter.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Converters/UsersRolesToStringConverter.cs index 220572db4..5f820d41d 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Converters/UsersRolesToStringConverter.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Converters/UsersRolesToStringConverter.cs @@ -7,7 +7,7 @@ using System.Text; using System.Threading.Tasks; using System.Windows.Data; using Tango.DAL.Observables; -using Tango.MachineStudio.DB.ViewModels.DBViewModels; +using Tango.MachineStudio.DB.ViewModels; namespace Tango.MachineStudio.DB.Converters { diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ExtensionMethods/INotificationProviderExtensions.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ExtensionMethods/INotificationProviderExtensions.cs index c38cb8d04..2da59724c 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ExtensionMethods/INotificationProviderExtensions.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ExtensionMethods/INotificationProviderExtensions.cs @@ -7,14 +7,14 @@ using System.Threading.Tasks; using System.Windows; using Tango.DAL.Observables; using Tango.MachineStudio.Common.Notifications; -using Tango.MachineStudio.DB.ViewModels.DBViewModels; +using Tango.MachineStudio.DB.ViewModels; using Tango.MachineStudio.DB.Views.DBViews; namespace Tango.MachineStudio.DB.ExtensionMethods { public static class INotificationProviderExtensions { - public static bool ShowDialog<T>(this INotificationProvider provider, DialogOpenMode mode, DbTableViewModel<T> context) where T : IObservableEntity + public static bool ShowDialog<T>(this INotificationProvider provider, DialogOpenMode mode, DbTableViewModel<T> context) where T : class, IObservableEntity { Type viewType = typeof(INotificationProviderExtensions).Assembly.GetType(typeof(OrganizationView).Namespace + "." + typeof(T).Name + "View"); return provider.ShowDialog( diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Tango.MachineStudio.DB.csproj b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Tango.MachineStudio.DB.csproj index 0d6304c44..4831e838f 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Tango.MachineStudio.DB.csproj +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Tango.MachineStudio.DB.csproj @@ -78,6 +78,7 @@ <Reference Include="PresentationFramework" /> </ItemGroup> <ItemGroup> + <Compile Include="Converters\RolesPermissionsToStringConverter.cs" /> <Compile Include="DBModule.cs" /> <Compile Include="ExtensionMethods\INotificationProviderExtensions.cs" /> <Compile Include="ViewModels\AddressesViewVM.cs" /> @@ -86,10 +87,17 @@ <Compile Include="ViewModels\MachinesViewVM.cs" /> <Compile Include="ViewModels\MultiComboVM.cs" /> <Compile Include="ViewModels\OrganizationsViewVM.cs" /> + <Compile Include="ViewModels\RolesViewVM.cs" /> <Compile Include="ViewModels\UsersViewVM.cs" /> <Compile Include="ViewModels\EntityViewModel.cs" /> <Compile Include="ViewModels\MainViewVM.cs" /> <Compile Include="ViewModelLocator.cs" /> + <Compile Include="Views\DBViews\RoleView.xaml.cs"> + <DependentUpon>RoleView.xaml</DependentUpon> + </Compile> + <Compile Include="Views\DBViews\RolesView.xaml.cs"> + <DependentUpon>RolesView.xaml</DependentUpon> + </Compile> <Compile Include="Views\DBViews\AddressesView.xaml.cs"> <DependentUpon>AddressesView.xaml</DependentUpon> </Compile> @@ -132,6 +140,14 @@ <Compile Include="CustomAttributes\DBViewAttribute.cs" /> <Compile Include="Managers\RegisteredView.cs" /> <Compile Include="Managers\ViewsManager.cs" /> + <Page Include="Views\DBViews\RoleView.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> + <Page Include="Views\DBViews\RolesView.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> <Page Include="Views\DBViews\AddressesView.xaml"> <Generator>MSBuild:Compile</Generator> <SubType>Designer</SubType> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModelLocator.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModelLocator.cs index 0f9666137..70e9d672f 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModelLocator.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModelLocator.cs @@ -2,7 +2,6 @@ using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.Ioc; using Microsoft.Practices.ServiceLocation; using Tango.MachineStudio.DB.ViewModels; -using Tango.MachineStudio.DB.ViewModels.DBViewModels; namespace Tango.MachineStudio.DB { @@ -23,6 +22,7 @@ namespace Tango.MachineStudio.DB SimpleIoc.Default.Register<OrganizationsViewVM>(); SimpleIoc.Default.Register<AddressesViewVM>(); SimpleIoc.Default.Register<UsersViewVM>(); + SimpleIoc.Default.Register<RolesViewVM>(); } public static MainViewVM MainViewVM @@ -64,5 +64,13 @@ namespace Tango.MachineStudio.DB return ServiceLocator.Current.GetInstance<UsersViewVM>(); } } + + public static RolesViewVM RolesViewVM + { + get + { + return ServiceLocator.Current.GetInstance<RolesViewVM>(); + } + } } }
\ No newline at end of file diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/AddressesViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/AddressesViewVM.cs index c5f95c803..41eab1c37 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/AddressesViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/AddressesViewVM.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; using Tango.DAL.Observables; using Tango.MachineStudio.Common.Notifications; -namespace Tango.MachineStudio.DB.ViewModels.DBViewModels +namespace Tango.MachineStudio.DB.ViewModels { public class AddressesViewVM : DbTableViewModel<Address> { diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/DbTableViewModel.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/DbTableViewModel.cs index db72055df..7f6dd8d5f 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/DbTableViewModel.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/DbTableViewModel.cs @@ -10,9 +10,9 @@ using Tango.MachineStudio.DB.Managers; using Tango.SharedUI; using Tango.MachineStudio.DB.ExtensionMethods; -namespace Tango.MachineStudio.DB.ViewModels.DBViewModels +namespace Tango.MachineStudio.DB.ViewModels { - public abstract class DbTableViewModel<T> : ViewModel where T : IObservableEntity + public abstract class DbTableViewModel<T> : ViewModel where T : class, IObservableEntity { private INotificationProvider _notification; @@ -25,8 +25,8 @@ namespace Tango.MachineStudio.DB.ViewModels.DBViewModels Adapter = ObservablesEntitiesAdapter.Instance; AddCommand = new RelayCommand(OnAdd); - EditCommand = new RelayCommand(OnEdit); - DeleteCommand = new RelayCommand(OnDelete); + EditCommand = new RelayCommand(OnEdit,(x) => SelectedEntity != null); + DeleteCommand = new RelayCommand(OnDelete, (x) => SelectedEntity != null); DialogOKCommand = new RelayCommand(() => OnDialogOKPressed(DialogOpenMode, EditEntity)); DialogCancelCommand = new RelayCommand(() => OnDialogCancelPressed(DialogOpenMode, EditEntity)); @@ -80,7 +80,7 @@ namespace Tango.MachineStudio.DB.ViewModels.DBViewModels public T SelectedEntity { get { return _selectedEntity; } - set { _selectedEntity = value; RaisePropertyChangedAuto(); } + set { _selectedEntity = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); } } private String _filter; @@ -166,6 +166,7 @@ namespace Tango.MachineStudio.DB.ViewModels.DBViewModels entity.Save(); IsDialogOpen = false; SelectedEntity = EditEntity; + SelectedEntity = null; } /// <summary> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/DialogOpenMode.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/DialogOpenMode.cs index 7a7e9bd41..0d46a9734 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/DialogOpenMode.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/DialogOpenMode.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Tango.MachineStudio.DB.ViewModels.DBViewModels +namespace Tango.MachineStudio.DB.ViewModels { public enum DialogOpenMode { diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MachinesViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MachinesViewVM.cs index fd2f88c2f..fbec464bd 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MachinesViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MachinesViewVM.cs @@ -9,7 +9,7 @@ using Tango.DAL.Observables; using Tango.MachineStudio.Common.Notifications; using Tango.SharedUI; -namespace Tango.MachineStudio.DB.ViewModels.DBViewModels +namespace Tango.MachineStudio.DB.ViewModels { public class MachinesViewVM : DbTableViewModel<Machine> { diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MultiComboVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MultiComboVM.cs index 4a3709050..d15ac6e11 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MultiComboVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MultiComboVM.cs @@ -5,7 +5,7 @@ using System.Text; using System.Threading.Tasks; using Tango.SharedUI; -namespace Tango.MachineStudio.DB.ViewModels.DBViewModels +namespace Tango.MachineStudio.DB.ViewModels { public class MultiComboVM<T> : EntityViewModel<T> { diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/OrganizationsViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/OrganizationsViewVM.cs index ff0ec3b77..a394f9faa 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/OrganizationsViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/OrganizationsViewVM.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; using Tango.DAL.Observables; using Tango.MachineStudio.Common.Notifications; -namespace Tango.MachineStudio.DB.ViewModels.DBViewModels +namespace Tango.MachineStudio.DB.ViewModels { public class OrganizationsViewVM : DbTableViewModel<Organization> { diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/RolesViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/RolesViewVM.cs new file mode 100644 index 000000000..d09722ec9 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/RolesViewVM.cs @@ -0,0 +1,77 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.DAL.Observables; +using Tango.MachineStudio.Common.Notifications; +using Tango.MachineStudio.DB.ViewModels; + +namespace Tango.MachineStudio.DB.ViewModels +{ + public class RolesViewVM : DbTableViewModel<Role> + { + public RolesViewVM(INotificationProvider notification) : base(notification) + { + SelectedPermissions = new ObservableCollection<MultiComboVM<Permission>>(); + } + + private ObservableCollection<MultiComboVM<Permission>> _selectedPermissions; + public ObservableCollection<MultiComboVM<Permission>> SelectedPermissions + { + get { return _selectedPermissions; } + set { _selectedPermissions = value; RaisePropertyChangedAuto(); } + } + + protected override void OnEdit() + { + SelectedPermissions = Adapter.Permissions.Select(x => new MultiComboVM<Permission>(x, () => RaisePropertyChanged(nameof(SelectedPermissions)))).ToObservableCollection(); + + foreach (var permission in SelectedPermissions) + { + if (SelectedEntity.RolesPermissions.ToList().Exists(x => x.Permission == permission.Entity && !x.Deleted)) + { + permission.IsSelected = true; + } + } + + base.OnEdit(); + } + + protected override void OnAdd() + { + SelectedPermissions = Adapter.Permissions.Select(x => new MultiComboVM<Permission>(x, () => RaisePropertyChanged(nameof(SelectedPermissions)))).ToObservableCollection(); + + base.OnAdd(); + } + + protected override void OnBeforeEntitySave(DialogOpenMode mode, Role role) + { + base.OnBeforeEntitySave(mode, role); + + foreach (var permission in SelectedPermissions) + { + var rolePermission = role.RolesPermissions.SingleOrDefault(x => x.Permission == permission.Entity); + + if (rolePermission != null) + { + rolePermission.Deleted = !permission.IsSelected; + } + else + { + if (permission.IsSelected) + { + role.RolesPermissions.Add(new RolesPermission() + { + Permission = permission.Entity, + Role = role, + PermissionGuid = permission.Entity.Guid, + RoleGuid = role.Guid + }); + } + } + } + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/UsersViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/UsersViewVM.cs index 1dde969d6..0b65d48ab 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/UsersViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/UsersViewVM.cs @@ -7,17 +7,16 @@ using System.Threading.Tasks; using Tango.DAL.Observables; using Tango.MachineStudio.Common.Notifications; -namespace Tango.MachineStudio.DB.ViewModels.DBViewModels +namespace Tango.MachineStudio.DB.ViewModels { public class UsersViewVM : DbTableViewModel<User> { - private ObservableCollection<MultiComboVM<Role>> _selectedRoles; - public UsersViewVM(INotificationProvider notification) : base(notification) { SelectedRoles = new ObservableCollection<MultiComboVM<Role>>(); } + private ObservableCollection<MultiComboVM<Role>> _selectedRoles; public ObservableCollection<MultiComboVM<Role>> SelectedRoles { get { return _selectedRoles; } diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/RoleView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/RoleView.xaml new file mode 100644 index 000000000..d23e9c7b2 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/RoleView.xaml @@ -0,0 +1,44 @@ +<UserControl x:Class="Tango.MachineStudio.DB.Views.DBViews.RoleView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes" + xmlns:controls="clr-namespace:Tango.MachineStudio.DB.Controls" + xmlns:converters="clr-namespace:Tango.MachineStudio.DB.Converters" + xmlns:local="clr-namespace:Tango.MachineStudio.DB.Views.DBViews" + mc:Ignorable="d" + d:DesignHeight="300" d:DesignWidth="300"> + + <UserControl.Resources> + <converters:RolesPermissionsToStringConverter x:Key="RolesPermissionsToStringConverter"></converters:RolesPermissionsToStringConverter> + </UserControl.Resources> + + <Grid> + <controls:TableGrid> + <TextBlock Text="ID:" FontWeight="Bold"></TextBlock> + <TextBox Text="{Binding EditEntity.ID}" IsReadOnly="True"></TextBox> + <TextBlock Text="GUID:" FontWeight="Bold"></TextBlock> + <TextBox Text="{Binding EditEntity.Guid}" IsReadOnly="True"></TextBox> + <TextBlock Text="Last Updated:" FontWeight="Bold"></TextBlock> + <TextBox Text="{Binding EditEntity.LastUpdated}" IsReadOnly="True"></TextBox> + <TextBlock Text="Code:" FontWeight="Bold"></TextBlock> + <TextBox Text="{Binding EditEntity.Code,Mode=TwoWay}"></TextBox> + <TextBlock Text="Name:" FontWeight="Bold"></TextBlock> + <TextBox Text="{Binding EditEntity.Name,Mode=TwoWay}"></TextBox> + <TextBlock Text="Description:" FontWeight="Bold"></TextBlock> + <TextBox Text="{Binding EditEntity.Description,Mode=TwoWay}"></TextBox> + <TextBlock Text="Permissions:" FontWeight="Bold"></TextBlock> + <ComboBox x:Name="comboRoles" SelectionChanged="comboRoles_SelectionChanged" ItemsSource="{Binding SelectedPermissions}" materialDesign:HintAssist.Hint="{Binding SelectedPermissions,Converter={StaticResource RolesPermissionsToStringConverter},UpdateSourceTrigger=PropertyChanged}"> + <ComboBox.ItemTemplate> + <DataTemplate> + <StackPanel Orientation="Horizontal"> + <CheckBox IsChecked="{Binding IsSelected}" Width="20"/> + <TextBlock Text="{Binding Entity.Name}" MinWidth="100" ToolTip="{Binding Entity.Description}" /> + </StackPanel> + </DataTemplate> + </ComboBox.ItemTemplate> + </ComboBox> + </controls:TableGrid> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/RoleView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/RoleView.xaml.cs new file mode 100644 index 000000000..d49ab14e9 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/RoleView.xaml.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Tango.MachineStudio.DB.Views.DBViews +{ + /// <summary> + /// Interaction logic for AddressView.xaml + /// </summary> + public partial class RoleView : UserControl + { + public RoleView() + { + InitializeComponent(); + } + + private void comboRoles_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + comboRoles.SelectedItem = null; + comboRoles.Text = "Press to select"; + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/RolesView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/RolesView.xaml new file mode 100644 index 000000000..dcb61eacb --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/RolesView.xaml @@ -0,0 +1,30 @@ +<UserControl x:Class="Tango.MachineStudio.DB.Views.DBViews.RolesView" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:global="clr-namespace:Tango.MachineStudio.DB" + xmlns:converters="clr-namespace:Tango.MachineStudio.DB.Converters" + xmlns:controls="clr-namespace:Tango.MachineStudio.DB.Controls" + mc:Ignorable="d" + d:DesignHeight="720" d:DesignWidth="1280" Background="White" DataContext="{x:Static global:ViewModelLocator.RolesViewVM}"> + + <UserControl.Resources> + <converters:RolesPermissionsToStringConverter x:Key="RolesPermissionsToStringConverter"></converters:RolesPermissionsToStringConverter> + </UserControl.Resources> + + <Grid> + <controls:DbTableView> + <DataGrid Background="Transparent" ItemsSource="{Binding Adapter.Roles}" SelectedItem="{Binding SelectedEntity}" AutoGenerateColumns="False" IsReadOnly="True"> + <DataGrid.Columns> + <DataGridTextColumn Header="ID" Binding="{Binding ID}"></DataGridTextColumn> + <DataGridTextColumn Header="GUID" Binding="{Binding Guid}"></DataGridTextColumn> + <DataGridTextColumn Header="Code" Binding="{Binding Code}"></DataGridTextColumn> + <DataGridTextColumn Header="Name" Binding="{Binding Name}"></DataGridTextColumn> + <DataGridTextColumn Header="Description" Binding="{Binding Description}"></DataGridTextColumn> + <DataGridTextColumn Header="Permissions" Binding="{Binding RolesPermissions,Converter={StaticResource RolesPermissionsToStringConverter}}" MaxWidth="300"></DataGridTextColumn> + </DataGrid.Columns> + </DataGrid> + </controls:DbTableView> + </Grid> +</UserControl> diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/RolesView.xaml.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/RolesView.xaml.cs new file mode 100644 index 000000000..b1e39c417 --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/RolesView.xaml.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using Tango.MachineStudio.DB.CustomAttributes; +using Tango.SharedUI.Controls; + +namespace Tango.MachineStudio.DB.Views.DBViews +{ + /// <summary> + /// Interaction logic for MachinesView.xaml + /// </summary> + [DBView] + public partial class RolesView : UserControl + { + public RolesView() : base() + { + InitializeComponent(); + } + } +} diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/UserView.xaml b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/UserView.xaml index bb5f08f4a..e63c1c131 100644 --- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/UserView.xaml +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/UserView.xaml @@ -32,7 +32,7 @@ <DataTemplate> <StackPanel Orientation="Horizontal"> <CheckBox IsChecked="{Binding IsSelected}" Width="20"/> - <TextBlock Text="{Binding Entity.Name}" Width="100" /> + <TextBlock Text="{Binding Entity.Name}" MinWidth="100" /> </StackPanel> </DataTemplate> </ComboBox.ItemTemplate> |
