aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2017-12-14 19:48:41 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2017-12-14 19:48:41 +0200
commitad35c9c2df0001157ea13312382f3cdfdad67f06 (patch)
tree78c4708893f6207ff692f729ac43408823f963e1 /Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common
parent7887ca0ad2433c4adbb65d96bf926561405ab290 (diff)
downloadTango-ad35c9c2df0001157ea13312382f3cdfdad67f06.tar.gz
Tango-ad35c9c2df0001157ea13312382f3cdfdad67f06.zip
Implemented IAuthenticationProvider, INavigationProvider, IModuleLoader.
LoadingView, LoginView,
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common')
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Authentication/IAuthenticationProvider.cs20
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/ExtensionMethods/UserExtensions.cs14
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/IStudioModule.cs3
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Modules/IStudioModuleLoader.cs18
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/INavigationManager.cs13
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/NavigationView.cs16
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj13
7 files changed, 97 insertions, 0 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Authentication/IAuthenticationProvider.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Authentication/IAuthenticationProvider.cs
new file mode 100644
index 000000000..488a2f6dc
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Authentication/IAuthenticationProvider.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.DAL.Observables;
+
+namespace Tango.MachineStudio.Common.Authentication
+{
+ public interface IAuthenticationProvider
+ {
+ event EventHandler<User> CurrentUserChanged;
+
+ User CurrentUser { get; }
+
+ User Login(String email, String password);
+
+ void Logout();
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/ExtensionMethods/UserExtensions.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/ExtensionMethods/UserExtensions.cs
new file mode 100644
index 000000000..a11ee7e8a
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/ExtensionMethods/UserExtensions.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.DAL.Observables;
+
+public static class UserExtensions
+{
+ public static bool HasPermission(this User user, PermissionsEnum permission)
+ {
+ return user.UsersRoles.Select(x => x.Role).ToList().SelectMany(x => x.RolesPermissions).ToList().Exists(x => x.Permission.Code == permission.ToInt32());
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/IStudioModule.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/IStudioModule.cs
index f75a60002..36c885340 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/IStudioModule.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/IStudioModule.cs
@@ -5,6 +5,7 @@ using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media.Imaging;
+using Tango.DAL.Observables;
namespace Tango.MachineStudio.Common
{
@@ -18,6 +19,8 @@ namespace Tango.MachineStudio.Common
FrameworkElement MainView { get; }
+ PermissionsEnum Permission { get; }
+
bool IsInitialized { get; }
void Initialize();
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Modules/IStudioModuleLoader.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Modules/IStudioModuleLoader.cs
new file mode 100644
index 000000000..d67accbc1
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Modules/IStudioModuleLoader.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tango.MachineStudio.Common.Modules
+{
+ public interface IStudioModuleLoader
+ {
+ ObservableCollection<IStudioModule> AllModules { get; }
+
+ ObservableCollection<IStudioModule> UserModules { get; }
+
+ void LoadModules();
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/INavigationManager.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/INavigationManager.cs
new file mode 100644
index 000000000..631f9e2eb
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/INavigationManager.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tango.MachineStudio.Common.Navigation
+{
+ public interface INavigationManager
+ {
+ void NavigateTo(NavigationView view);
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/NavigationView.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/NavigationView.cs
new file mode 100644
index 000000000..77dbaf5b4
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Navigation/NavigationView.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Tango.MachineStudio.Common.Navigation
+{
+ public enum NavigationView
+ {
+ LoadingView,
+ MainView,
+ LoginView,
+ ShutdownView,
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj
index 28c2ba817..c94e6fbdc 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj
@@ -60,12 +60,17 @@
<Compile Include="..\..\Versioning\GlobalVersionInfo.cs">
<Link>GlobalVersionInfo.cs</Link>
</Compile>
+ <Compile Include="Authentication\IAuthenticationProvider.cs" />
<Compile Include="Controls\MdiChild.cs" />
<Compile Include="Controls\MdiContainerControl.xaml.cs">
<DependentUpon>MdiContainerControl.xaml</DependentUpon>
</Compile>
<Compile Include="Converters\PointToMarginConverter.cs" />
+ <Compile Include="ExtensionMethods\UserExtensions.cs" />
<Compile Include="IStudioModule.cs" />
+ <Compile Include="Modules\IStudioModuleLoader.cs" />
+ <Compile Include="Navigation\INavigationManager.cs" />
+ <Compile Include="Navigation\NavigationView.cs" />
<Compile Include="Notifications\INotificationProvider.cs" />
</ItemGroup>
<ItemGroup>
@@ -97,6 +102,14 @@
<Project>{a34ee0f0-649d-41c8-8489-b6f1cc6924ee}</Project>
<Name>Tango.Core</Name>
</ProjectReference>
+ <ProjectReference Include="..\..\Tango.DAL.Observables\Tango.DAL.Observables.csproj">
+ <Project>{0ecd6da8-7aa6-48d9-8b65-279d176ad9af}</Project>
+ <Name>Tango.DAL.Observables</Name>
+ </ProjectReference>
+ <ProjectReference Include="..\..\Tango.DAL.Remote\Tango.DAL.Remote.csproj">
+ <Project>{38197109-8610-4d3f-92b9-16d48df94d7c}</Project>
+ <Name>Tango.DAL.Remote</Name>
+ </ProjectReference>
<ProjectReference Include="..\..\Tango.SharedUI\Tango.SharedUI.csproj">
<Project>{8491d07b-c1f6-4b62-a412-41b9fd2d6538}</Project>
<Name>Tango.SharedUI</Name>