From 2a51f05523c1397b77eca5e5188520919205638c Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Wed, 13 Dec 2017 15:19:55 +0200 Subject: Successfully separated Machine Studio to modules... --- .../ViewModels/MachinesViewVM.cs | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MachinesViewVM.cs (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MachinesViewVM.cs') 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 new file mode 100644 index 000000000..fd2f88c2f --- /dev/null +++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MachinesViewVM.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core.Commands; +using Tango.DAL.Observables; +using Tango.MachineStudio.Common.Notifications; +using Tango.SharedUI; + +namespace Tango.MachineStudio.DB.ViewModels.DBViewModels +{ + public class MachinesViewVM : DbTableViewModel + { + public MachinesViewVM(INotificationProvider notification) : base(notification) + { + } + + protected override void InitializeEntity(Machine entity) + { + base.InitializeEntity(entity); + entity.ProductionDate = DateTime.Now; + } + } +} -- cgit v1.3.1 From 7887ca0ad2433c4adbb65d96bf926561405ab290 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Thu, 14 Dec 2017 16:28:42 +0200 Subject: Implemented Roles in DB Module. Added Permission enum generation. --- .../RolesPermissionsToStringConverter.cs | 37 +++++++++++ .../Converters/UsersRolesToStringConverter.cs | 2 +- .../INotificationProviderExtensions.cs | 4 +- .../Tango.MachineStudio.DB.csproj | 16 +++++ .../Tango.MachineStudio.DB/ViewModelLocator.cs | 10 ++- .../ViewModels/AddressesViewVM.cs | 2 +- .../ViewModels/DbTableViewModel.cs | 11 ++-- .../ViewModels/DialogOpenMode.cs | 2 +- .../ViewModels/MachinesViewVM.cs | 2 +- .../ViewModels/MultiComboVM.cs | 2 +- .../ViewModels/OrganizationsViewVM.cs | 2 +- .../ViewModels/RolesViewVM.cs | 77 ++++++++++++++++++++++ .../ViewModels/UsersViewVM.cs | 5 +- .../Views/DBViews/RoleView.xaml | 44 +++++++++++++ .../Views/DBViews/RoleView.xaml.cs | 34 ++++++++++ .../Views/DBViews/RolesView.xaml | 30 +++++++++ .../Views/DBViews/RolesView.xaml.cs | 31 +++++++++ .../Views/DBViews/UserView.xaml | 2 +- .../Tango.DAL.Observables/Entities/.cs | 12 ---- .../Entities/PermissionsEnum.cs | 31 +++++++++ .../Tango.DAL.Observables/Entities/RolesEnum.cs | 24 +++++-- .../ObservablesEntitiesAdapter.cs | 9 +++ .../Tango.DAL.Observables/ObservablesGenerator.cs | 1 + .../Tango.DAL.Observables.csproj | 1 + 24 files changed, 355 insertions(+), 36 deletions(-) create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Converters/RolesPermissionsToStringConverter.cs create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/RolesViewVM.cs create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/RoleView.xaml create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/RoleView.xaml.cs create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/RolesView.xaml create mode 100644 Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/Views/DBViews/RolesView.xaml.cs delete mode 100644 Software/Visual_Studio/Tango.DAL.Observables/Entities/.cs create mode 100644 Software/Visual_Studio/Tango.DAL.Observables/Entities/PermissionsEnum.cs (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/MachinesViewVM.cs') 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) + { + IEnumerable rolesPermissions = value as IEnumerable; + return String.Join(", ", rolesPermissions.Where(x => !x.Deleted).Select(x => x.Permission.Name)); + } + else + { + IEnumerable> rolesPermissions = value as IEnumerable>; + 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(this INotificationProvider provider, DialogOpenMode mode, DbTableViewModel context) where T : IObservableEntity + public static bool ShowDialog(this INotificationProvider provider, DialogOpenMode mode, DbTableViewModel 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 @@ + @@ -86,10 +87,17 @@ + + + RoleView.xaml + + + RolesView.xaml + AddressesView.xaml @@ -132,6 +140,14 @@ + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + MSBuild:Compile Designer 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(); SimpleIoc.Default.Register(); SimpleIoc.Default.Register(); + SimpleIoc.Default.Register(); } public static MainViewVM MainViewVM @@ -64,5 +64,13 @@ namespace Tango.MachineStudio.DB return ServiceLocator.Current.GetInstance(); } } + + public static RolesViewVM RolesViewVM + { + get + { + return ServiceLocator.Current.GetInstance(); + } + } } } \ 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
{ 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 : ViewModel where T : IObservableEntity + public abstract class DbTableViewModel : 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; } /// 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 { 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 : EntityViewModel { 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 { 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 + { + public RolesViewVM(INotificationProvider notification) : base(notification) + { + SelectedPermissions = new ObservableCollection>(); + } + + private ObservableCollection> _selectedPermissions; + public ObservableCollection> SelectedPermissions + { + get { return _selectedPermissions; } + set { _selectedPermissions = value; RaisePropertyChangedAuto(); } + } + + protected override void OnEdit() + { + SelectedPermissions = Adapter.Permissions.Select(x => new MultiComboVM(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(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 { - private ObservableCollection> _selectedRoles; - public UsersViewVM(INotificationProvider notification) : base(notification) { SelectedRoles = new ObservableCollection>(); } + private ObservableCollection> _selectedRoles; public ObservableCollection> 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 +{ + /// + /// Interaction logic for AddressView.xaml + /// + 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 @@ + + + + + + + + + + + + + + + + + + + + + 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 +{ + /// + /// Interaction logic for MachinesView.xaml + /// + [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 @@ - + diff --git a/Software/Visual_Studio/Tango.DAL.Observables/Entities/.cs b/Software/Visual_Studio/Tango.DAL.Observables/Entities/.cs deleted file mode 100644 index 7512e6b24..000000000 --- a/Software/Visual_Studio/Tango.DAL.Observables/Entities/.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Linq; -using System.ComponentModel; - -namespace Tango.DAL.Observables -{ - public enum - { - } -} diff --git a/Software/Visual_Studio/Tango.DAL.Observables/Entities/PermissionsEnum.cs b/Software/Visual_Studio/Tango.DAL.Observables/Entities/PermissionsEnum.cs new file mode 100644 index 000000000..7390d4ac9 --- /dev/null +++ b/Software/Visual_Studio/Tango.DAL.Observables/Entities/PermissionsEnum.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.ComponentModel; + +namespace Tango.DAL.Observables +{ + public enum PermissionsEnum + { + + /// + /// (Allows loading the technician module in Machine Studio) + /// + [Description("Allows loading the technician module in Machine Studio")] + RunTechnicianModule = 0, + + /// + /// (Allows loading the developer module in Machine Studio) + /// + [Description("Allows loading the developer module in Machine Studio")] + RunDeveloperModule = 1, + + /// + /// (Allows loading the database module in Machine Studio) + /// + [Description("Allows loading the database module in Machine Studio")] + RunDataBaseModule = 2, + + } +} diff --git a/Software/Visual_Studio/Tango.DAL.Observables/Entities/RolesEnum.cs b/Software/Visual_Studio/Tango.DAL.Observables/Entities/RolesEnum.cs index 0cdce2fbd..f2a144a57 100644 --- a/Software/Visual_Studio/Tango.DAL.Observables/Entities/RolesEnum.cs +++ b/Software/Visual_Studio/Tango.DAL.Observables/Entities/RolesEnum.cs @@ -13,19 +13,31 @@ namespace Tango.DAL.Observables /// (User with standard permissions) /// [Description("User with standard permissions")] - StandardUser = 0, + User = 0, /// - /// (Admin Admin) + /// (Twine administrator) /// - [Description("Admin Admin")] - AdminUser = 1, + [Description("Twine administrator")] + Administrator = 1, /// - /// (Technician Role) + /// (Twine technician) /// - [Description("Technician Role")] + [Description("Twine technician")] Technician = 2, + /// + /// (Twine Research and development) + /// + [Description("Twine Research and development")] + Developer = 3, + + /// + /// (Role Description) + /// + [Description("Role Description")] + SomeRole = 4, + } } diff --git a/Software/Visual_Studio/Tango.DAL.Observables/ObservablesEntitiesAdapter.cs b/Software/Visual_Studio/Tango.DAL.Observables/ObservablesEntitiesAdapter.cs index 6b0e459eb..3434fe368 100644 --- a/Software/Visual_Studio/Tango.DAL.Observables/ObservablesEntitiesAdapter.cs +++ b/Software/Visual_Studio/Tango.DAL.Observables/ObservablesEntitiesAdapter.cs @@ -70,6 +70,8 @@ namespace Tango.DAL.Observables Users = Context.USERS.Where(x => !x.DELETED).ToList().OrderBy(x => x.CONTACT.FULL_NAME).Select(x => ObservableEntity.CreateObservableFromEntity(x)).ToObservableCollection(); Roles = Context.ROLES.Where(x => !x.DELETED).ToList().OrderBy(x => x.NAME).Select(x => ObservableEntity.CreateObservableFromEntity(x)).ToObservableCollection(); + + Permissions = Context.PERMISSIONS.Where(x => !x.DELETED).ToList().OrderBy(x => x.NAME).Select(x => ObservableEntity.CreateObservableFromEntity(x)).ToObservableCollection(); } private ObservableCollection _organizations; @@ -131,6 +133,13 @@ namespace Tango.DAL.Observables set { _roles = value; RaisePropertyChangedAuto(); } } + private ObservableCollection _permissions; + public ObservableCollection Permissions + { + get { return _permissions; } + set { _permissions = value; RaisePropertyChangedAuto(); } + } + private ICollectionView CreateCollectionView(ObservableCollection collection) { var view = CollectionViewSource.GetDefaultView(collection); diff --git a/Software/Visual_Studio/Tango.DAL.Observables/ObservablesGenerator.cs b/Software/Visual_Studio/Tango.DAL.Observables/ObservablesGenerator.cs index f1c62530b..8bce28920 100644 --- a/Software/Visual_Studio/Tango.DAL.Observables/ObservablesGenerator.cs +++ b/Software/Visual_Studio/Tango.DAL.Observables/ObservablesGenerator.cs @@ -74,6 +74,7 @@ namespace Tango.DAL.Observables File.WriteAllText(Path.Combine(targetPath, enumFile.Name + ".cs"), code); enumFile = new EnumerationFile(); + enumFile.Name = "PermissionsEnum"; foreach (var row in db.PERMISSIONS) { diff --git a/Software/Visual_Studio/Tango.DAL.Observables/Tango.DAL.Observables.csproj b/Software/Visual_Studio/Tango.DAL.Observables/Tango.DAL.Observables.csproj index 094d607cb..5a8921a2d 100644 --- a/Software/Visual_Studio/Tango.DAL.Observables/Tango.DAL.Observables.csproj +++ b/Software/Visual_Studio/Tango.DAL.Observables/Tango.DAL.Observables.csproj @@ -53,6 +53,7 @@ GlobalVersionInfo.cs + -- cgit v1.3.1