mirror of
https://gitlab.com/fabinfra/fabaccess/borepin.git
synced 2025-03-13 15:21:45 +01:00
Merge branch 'machinelist' into 'master'
Machinelist See merge request fabinfra/fabaccess/borepin!8
This commit is contained in:
commit
158cab6b23
@ -23,7 +23,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FabAccessAPI", "FabAccessAP
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "S22.Sasl", "external\SASL\S22.Sasl.csproj", "{7FEC3D5E-C240-41B6-BBFA-895C4F4D45CA}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "S22.Sasl", "external\SASL\S22.Sasl.csproj", "{7FEC3D5E-C240-41B6-BBFA-895C4F4D45CA}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FabAccessAPI_Test", "FabAccessAPI_Test\FabAccessAPI_Test.csproj", "{1C85978A-9FC0-4064-8399-FA2455C5EC2A}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FabAccessAPI_Test", "FabAccessAPI_Test\FabAccessAPI_Test.csproj", "{1C85978A-9FC0-4064-8399-FA2455C5EC2A}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
@ -54,9 +54,9 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Prism.DryIoc.Forms">
|
<PackageReference Include="Prism.DryIoc.Forms">
|
||||||
<Version>8.0.0.1909</Version>
|
<Version>7.2.0.1422</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.Forms" Version="4.8.0.1687" />
|
<PackageReference Include="Xamarin.Forms" Version="4.7.0.1351" />
|
||||||
<PackageReference Include="Xamarin.Essentials" Version="1.5.3.2" />
|
<PackageReference Include="Xamarin.Essentials" Version="1.5.3.2" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -1,10 +1,6 @@
|
|||||||
using System;
|
|
||||||
|
|
||||||
using Android.App;
|
using Android.App;
|
||||||
using Android.Content.PM;
|
using Android.Content.PM;
|
||||||
using Android.Runtime;
|
|
||||||
using Android.Views;
|
|
||||||
using Android.Widget;
|
|
||||||
using Android.OS;
|
using Android.OS;
|
||||||
|
|
||||||
namespace Borepin.Droid
|
namespace Borepin.Droid
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="org.fab_infra.fabaccess" android:installLocation="auto">
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="org.fabinfra.fabaccess" android:installLocation="auto">
|
||||||
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28" />
|
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28" />
|
||||||
<application android:theme="@style/MainTheme" android:label="FabAccess"></application>
|
<application android:theme="@style/MainTheme" android:label="FabAccess"></application>
|
||||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
</manifest>
|
</manifest>
|
@ -1,5 +1,4 @@
|
|||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Runtime.CompilerServices;
|
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using Android.App;
|
using Android.App;
|
||||||
|
|
||||||
|
2523
Borepin/Borepin.Android/Resources/Resource.designer.cs
generated
2523
Borepin/Borepin.Android/Resources/Resource.designer.cs
generated
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,6 @@
|
|||||||
using Android.App;
|
using Android.App;
|
||||||
using Android.OS;
|
|
||||||
using Android.Support.V7.App;
|
using Android.Support.V7.App;
|
||||||
using Android.Content;
|
using Android.Content;
|
||||||
using Android.Util;
|
|
||||||
|
|
||||||
namespace Borepin.Droid
|
namespace Borepin.Droid
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<Import Project="..\..\packages\Xamarin.Forms.4.8.0.1687\build\Xamarin.Forms.props" Condition="Exists('..\..\packages\Xamarin.Forms.4.8.0.1687\build\Xamarin.Forms.props')" />
|
<Import Project="..\..\packages\Xamarin.Forms.4.7.0.1351\build\Xamarin.Forms.props" Condition="Exists('..\..\packages\Xamarin.Forms.4.7.0.1351\build\Xamarin.Forms.props')" />
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
@ -75,11 +75,11 @@
|
|||||||
<Reference Include="Prism, Version=8.0.0.1909, Culture=neutral, PublicKeyToken=40ee6c3a2184dc59, processorArchitecture=MSIL">
|
<Reference Include="Prism, Version=8.0.0.1909, Culture=neutral, PublicKeyToken=40ee6c3a2184dc59, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\Prism.Core.8.0.0.1909\lib\net47\Prism.dll</HintPath>
|
<HintPath>..\..\packages\Prism.Core.8.0.0.1909\lib\net47\Prism.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Prism.DryIoc.Forms, Version=8.0.0.1909, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Prism.DryIoc.Forms, Version=7.2.0.1422, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\Prism.DryIoc.Forms.8.0.0.1909\lib\netstandard2.0\Prism.DryIoc.Forms.dll</HintPath>
|
<HintPath>..\..\packages\Prism.DryIoc.Forms.7.2.0.1422\lib\netstandard2.0\Prism.DryIoc.Forms.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Prism.Forms, Version=8.0.0.1909, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Prism.Forms, Version=7.2.0.1422, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\Prism.Forms.8.0.0.1909\lib\netstandard2.0\Prism.Forms.dll</HintPath>
|
<HintPath>..\..\packages\Prism.Forms.7.2.0.1422\lib\netstandard2.0\Prism.Forms.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
@ -90,19 +90,19 @@
|
|||||||
<Reference Include="System.Net.Http" />
|
<Reference Include="System.Net.Http" />
|
||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
<Reference Include="webkit-sharp, Version=1.1.15.0, Culture=neutral, PublicKeyToken=eaa1d335d2e19745, processorArchitecture=MSIL">
|
<Reference Include="webkit-sharp, Version=1.1.15.0, Culture=neutral, PublicKeyToken=eaa1d335d2e19745, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\Xamarin.Forms.Platform.GTK.4.8.0.1687\lib\net45\webkit-sharp.dll</HintPath>
|
<HintPath>..\..\packages\Xamarin.Forms.Platform.GTK.4.7.0.1351\lib\net45\webkit-sharp.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\Xamarin.Forms.4.8.0.1687\lib\netstandard2.0\Xamarin.Forms.Core.dll</HintPath>
|
<HintPath>..\..\packages\Xamarin.Forms.4.7.0.1351\lib\netstandard2.0\Xamarin.Forms.Core.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Xamarin.Forms.Platform, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Xamarin.Forms.Platform, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\Xamarin.Forms.4.8.0.1687\lib\netstandard2.0\Xamarin.Forms.Platform.dll</HintPath>
|
<HintPath>..\..\packages\Xamarin.Forms.4.7.0.1351\lib\netstandard2.0\Xamarin.Forms.Platform.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Xamarin.Forms.Platform.GTK, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Xamarin.Forms.Platform.GTK, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\Xamarin.Forms.Platform.GTK.4.8.0.1687\lib\net45\Xamarin.Forms.Platform.GTK.dll</HintPath>
|
<HintPath>..\..\packages\Xamarin.Forms.Platform.GTK.4.7.0.1351\lib\net45\Xamarin.Forms.Platform.GTK.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Xamarin.Forms.Xaml, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Xamarin.Forms.Xaml, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\Xamarin.Forms.4.8.0.1687\lib\netstandard2.0\Xamarin.Forms.Xaml.dll</HintPath>
|
<HintPath>..\..\packages\Xamarin.Forms.4.7.0.1351\lib\netstandard2.0\Xamarin.Forms.Xaml.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@ -124,10 +124,10 @@
|
|||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
<ErrorText>Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".</ErrorText>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Error Condition="!Exists('..\..\packages\Xamarin.Forms.4.8.0.1687\build\Xamarin.Forms.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.4.8.0.1687\build\Xamarin.Forms.props'))" />
|
<Error Condition="!Exists('..\..\packages\Xamarin.Forms.4.7.0.1351\build\Xamarin.Forms.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.4.7.0.1351\build\Xamarin.Forms.props'))" />
|
||||||
<Error Condition="!Exists('..\..\packages\Xamarin.Forms.4.8.0.1687\build\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.4.8.0.1687\build\Xamarin.Forms.targets'))" />
|
<Error Condition="!Exists('..\..\packages\Xamarin.Forms.4.7.0.1351\build\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.4.7.0.1351\build\Xamarin.Forms.targets'))" />
|
||||||
</Target>
|
</Target>
|
||||||
<Import Project="..\..\packages\Xamarin.Forms.4.8.0.1687\build\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.4.8.0.1687\build\Xamarin.Forms.targets')" />
|
<Import Project="..\..\packages\Xamarin.Forms.4.7.0.1351\build\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.4.7.0.1351\build\Xamarin.Forms.targets')" />
|
||||||
</Project>
|
</Project>
|
@ -1,5 +1,4 @@
|
|||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Runtime.CompilerServices;
|
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
// Allgemeine Informationen über eine Assembly werden über die folgenden
|
// Allgemeine Informationen über eine Assembly werden über die folgenden
|
||||||
|
@ -3,8 +3,8 @@
|
|||||||
<package id="DryIoc.dll" version="4.5.1" targetFramework="net48" />
|
<package id="DryIoc.dll" version="4.5.1" targetFramework="net48" />
|
||||||
<package id="OpenTK" version="3.2" targetFramework="net48" />
|
<package id="OpenTK" version="3.2" targetFramework="net48" />
|
||||||
<package id="Prism.Core" version="8.0.0.1909" targetFramework="net472" />
|
<package id="Prism.Core" version="8.0.0.1909" targetFramework="net472" />
|
||||||
<package id="Prism.DryIoc.Forms" version="8.0.0.1909" targetFramework="net48" />
|
<package id="Prism.DryIoc.Forms" version="7.2.0.1422" targetFramework="net48" />
|
||||||
<package id="Prism.Forms" version="8.0.0.1909" targetFramework="net48" />
|
<package id="Prism.Forms" version="7.2.0.1422" targetFramework="net48" />
|
||||||
<package id="Xamarin.Forms" version="4.8.0.1687" targetFramework="net48" />
|
<package id="Xamarin.Forms" version="4.7.0.1351" targetFramework="net48" />
|
||||||
<package id="Xamarin.Forms.Platform.GTK" version="4.8.0.1687" targetFramework="net48" />
|
<package id="Xamarin.Forms.Platform.GTK" version="4.7.0.1351" targetFramework="net48" />
|
||||||
</packages>
|
</packages>
|
@ -1,18 +1,8 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.IO;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Runtime.InteropServices.WindowsRuntime;
|
|
||||||
using Windows.ApplicationModel;
|
using Windows.ApplicationModel;
|
||||||
using Windows.ApplicationModel.Activation;
|
using Windows.ApplicationModel.Activation;
|
||||||
using Windows.Foundation;
|
|
||||||
using Windows.Foundation.Collections;
|
|
||||||
using Windows.UI.Xaml;
|
using Windows.UI.Xaml;
|
||||||
using Windows.UI.Xaml.Controls;
|
using Windows.UI.Xaml.Controls;
|
||||||
using Windows.UI.Xaml.Controls.Primitives;
|
|
||||||
using Windows.UI.Xaml.Data;
|
|
||||||
using Windows.UI.Xaml.Input;
|
|
||||||
using Windows.UI.Xaml.Media;
|
|
||||||
using Windows.UI.Xaml.Navigation;
|
using Windows.UI.Xaml.Navigation;
|
||||||
|
|
||||||
namespace Borepin.UWP
|
namespace Borepin.UWP
|
||||||
|
@ -172,9 +172,9 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Prism.DryIoc.Forms">
|
<PackageReference Include="Prism.DryIoc.Forms">
|
||||||
<Version>8.0.0.1909</Version>
|
<Version>7.2.0.1422</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.Forms" Version="4.8.0.1687" />
|
<PackageReference Include="Xamarin.Forms" Version="4.7.0.1351" />
|
||||||
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform" Version="6.2.11" />
|
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform" Version="6.2.11" />
|
||||||
<PackageReference Include="Xamarin.Essentials" Version="1.5.3.2" />
|
<PackageReference Include="Xamarin.Essentials" Version="1.5.3.2" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
@ -1,19 +1,4 @@
|
|||||||
using System;
|
namespace Borepin.UWP
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.IO;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Runtime.InteropServices.WindowsRuntime;
|
|
||||||
using Windows.Foundation;
|
|
||||||
using Windows.Foundation.Collections;
|
|
||||||
using Windows.UI.Xaml;
|
|
||||||
using Windows.UI.Xaml.Controls;
|
|
||||||
using Windows.UI.Xaml.Controls.Primitives;
|
|
||||||
using Windows.UI.Xaml.Data;
|
|
||||||
using Windows.UI.Xaml.Input;
|
|
||||||
using Windows.UI.Xaml.Media;
|
|
||||||
using Windows.UI.Xaml.Navigation;
|
|
||||||
|
|
||||||
namespace Borepin.UWP
|
|
||||||
{
|
{
|
||||||
public sealed partial class MainPage
|
public sealed partial class MainPage
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using System.Reflection;
|
using System.Resources;
|
||||||
using System.Runtime.CompilerServices;
|
using System.Reflection;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
// General Information about an assembly is controlled through the following
|
// General Information about an assembly is controlled through the following
|
||||||
@ -27,3 +27,4 @@ using System.Runtime.InteropServices;
|
|||||||
[assembly: AssemblyVersion("1.0.0.0")]
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||||
[assembly: ComVisible(false)]
|
[assembly: ComVisible(false)]
|
||||||
|
[assembly: NeutralResourcesLanguage("")]
|
||||||
|
@ -1,7 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
|
|
||||||
using Foundation;
|
using Foundation;
|
||||||
using UIKit;
|
using UIKit;
|
||||||
|
|
||||||
|
@ -175,7 +175,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Prism.DryIoc.Forms">
|
<PackageReference Include="Prism.DryIoc.Forms">
|
||||||
<Version>8.0.0.1909</Version>
|
<Version>7.2.0.1422</Version>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Xamarin.Essentials" Version="1.5.3.2" />
|
<PackageReference Include="Xamarin.Essentials" Version="1.5.3.2" />
|
||||||
<PackageReference Include="Xamarin.Forms">
|
<PackageReference Include="Xamarin.Forms">
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
using UIKit;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
|
|
||||||
using Foundation;
|
|
||||||
using UIKit;
|
|
||||||
|
|
||||||
namespace Borepin.iOS
|
namespace Borepin.iOS
|
||||||
{
|
{
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Runtime.CompilerServices;
|
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
// General Information about an assembly is controlled through the following
|
// General Information about an assembly is controlled through the following
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
using Foundation;
|
using Foundation;
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Platform.MacOS;
|
using Xamarin.Forms.Platform.MacOS;
|
||||||
using Borepin;
|
|
||||||
|
|
||||||
namespace Borepin.macOS
|
namespace Borepin.macOS
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<Import Project="..\..\packages\Xamarin.Forms.4.8.0.1687\build\Xamarin.Forms.props" Condition="Exists('..\..\packages\Xamarin.Forms.4.8.0.1687\build\Xamarin.Forms.props')" />
|
<Import Project="..\..\packages\Xamarin.Forms.4.7.0.1351\build\Xamarin.Forms.props" Condition="Exists('..\..\packages\Xamarin.Forms.4.7.0.1351\build\Xamarin.Forms.props')" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
@ -65,22 +65,22 @@
|
|||||||
<Reference Include="Prism, Version=8.0.0.1909, Culture=neutral, PublicKeyToken=40ee6c3a2184dc59, processorArchitecture=MSIL">
|
<Reference Include="Prism, Version=8.0.0.1909, Culture=neutral, PublicKeyToken=40ee6c3a2184dc59, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\Prism.Core.8.0.0.1909\lib\netstandard2.0\Prism.dll</HintPath>
|
<HintPath>..\..\packages\Prism.Core.8.0.0.1909\lib\netstandard2.0\Prism.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Prism.DryIoc.Forms, Version=8.0.0.1909, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Prism.DryIoc.Forms, Version=7.2.0.1422, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\Prism.DryIoc.Forms.8.0.0.1909\lib\netstandard2.0\Prism.DryIoc.Forms.dll</HintPath>
|
<HintPath>..\..\packages\Prism.DryIoc.Forms.7.2.0.1422\lib\netstandard2.0\Prism.DryIoc.Forms.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Prism.Forms, Version=8.0.0.1909, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Prism.Forms, Version=7.2.0.1422, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\Prism.Forms.8.0.0.1909\lib\netstandard2.0\Prism.Forms.dll</HintPath>
|
<HintPath>..\..\packages\Prism.Forms.7.2.0.1422\lib\netstandard2.0\Prism.Forms.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
<Reference Include="Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\Xamarin.Forms.4.8.0.1687\lib\Xamarin.Mac\Xamarin.Forms.Core.dll</HintPath>
|
<HintPath>..\..\packages\Xamarin.Forms.4.7.0.1351\lib\Xamarin.Mac\Xamarin.Forms.Core.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Xamarin.Forms.Platform, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Xamarin.Forms.Platform, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\Xamarin.Forms.4.8.0.1687\lib\Xamarin.Mac\Xamarin.Forms.Platform.dll</HintPath>
|
<HintPath>..\..\packages\Xamarin.Forms.4.7.0.1351\lib\Xamarin.Mac\Xamarin.Forms.Platform.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Xamarin.Forms.Xaml, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="Xamarin.Forms.Xaml, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\..\packages\Xamarin.Forms.4.8.0.1687\lib\Xamarin.Mac\Xamarin.Forms.Xaml.dll</HintPath>
|
<HintPath>..\..\packages\Xamarin.Forms.4.7.0.1351\lib\Xamarin.Mac\Xamarin.Forms.Xaml.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Xamarin.Mac" />
|
<Reference Include="Xamarin.Mac" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
@ -127,10 +127,10 @@
|
|||||||
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Mac\Xamarin.Mac.CSharp.targets" />
|
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Mac\Xamarin.Mac.CSharp.targets" />
|
||||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
<ErrorText>Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".</ErrorText>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Error Condition="!Exists('..\..\packages\Xamarin.Forms.4.8.0.1687\build\Xamarin.Forms.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.4.8.0.1687\build\Xamarin.Forms.props'))" />
|
<Error Condition="!Exists('..\..\packages\Xamarin.Forms.4.7.0.1351\build\Xamarin.Forms.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.4.7.0.1351\build\Xamarin.Forms.props'))" />
|
||||||
<Error Condition="!Exists('..\..\packages\Xamarin.Forms.4.8.0.1687\build\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.4.8.0.1687\build\Xamarin.Forms.targets'))" />
|
<Error Condition="!Exists('..\..\packages\Xamarin.Forms.4.7.0.1351\build\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.4.7.0.1351\build\Xamarin.Forms.targets'))" />
|
||||||
</Target>
|
</Target>
|
||||||
<Import Project="..\..\packages\Xamarin.Forms.4.8.0.1687\build\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.4.8.0.1687\build\Xamarin.Forms.targets')" />
|
<Import Project="..\..\packages\Xamarin.Forms.4.7.0.1351\build\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.4.7.0.1351\build\Xamarin.Forms.targets')" />
|
||||||
</Project>
|
</Project>
|
@ -2,8 +2,8 @@
|
|||||||
<packages>
|
<packages>
|
||||||
<package id="DryIoc.dll" version="4.5.1" targetFramework="xamarinmac20" />
|
<package id="DryIoc.dll" version="4.5.1" targetFramework="xamarinmac20" />
|
||||||
<package id="Prism.Core" version="8.0.0.1909" targetFramework="xamarinmac20" />
|
<package id="Prism.Core" version="8.0.0.1909" targetFramework="xamarinmac20" />
|
||||||
<package id="Prism.DryIoc.Forms" version="8.0.0.1909" targetFramework="xamarinmac20" />
|
<package id="Prism.DryIoc.Forms" version="7.2.0.1422" targetFramework="xamarinmac20" />
|
||||||
<package id="Prism.Forms" version="8.0.0.1909" targetFramework="xamarinmac20" />
|
<package id="Prism.Forms" version="7.2.0.1422" targetFramework="xamarinmac20" />
|
||||||
<package id="System.Reflection.Emit.Lightweight" version="4.7.0" targetFramework="xamarinmac20" />
|
<package id="System.Reflection.Emit.Lightweight" version="4.7.0" targetFramework="xamarinmac20" />
|
||||||
<package id="Xamarin.Forms" version="4.8.0.1687" targetFramework="xamarinmac20" />
|
<package id="Xamarin.Forms" version="4.7.0.1351" targetFramework="xamarinmac20" />
|
||||||
</packages>
|
</packages>
|
@ -50,9 +50,9 @@ namespace Borepin
|
|||||||
// Register Navigation
|
// Register Navigation
|
||||||
containerRegistry.RegisterForNavigation<NavigationPage>();
|
containerRegistry.RegisterForNavigation<NavigationPage>();
|
||||||
containerRegistry.RegisterForNavigation<MainPage, MainPagePageModel>();
|
containerRegistry.RegisterForNavigation<MainPage, MainPagePageModel>();
|
||||||
containerRegistry.RegisterForNavigation<MachinesPage, MachinesPageModel>();
|
|
||||||
containerRegistry.RegisterForNavigation<SettingsPage>();
|
|
||||||
containerRegistry.RegisterForNavigation<MachinePage, MachinePageModel>();
|
containerRegistry.RegisterForNavigation<MachinePage, MachinePageModel>();
|
||||||
|
containerRegistry.RegisterForNavigation<SettingsPage>();
|
||||||
|
containerRegistry.RegisterForNavigation<MachineListPage, MachineListPageModel>();
|
||||||
containerRegistry.RegisterForNavigation<LoginPasswordPage, LoginPasswordPageModel>();
|
containerRegistry.RegisterForNavigation<LoginPasswordPage, LoginPasswordPageModel>();
|
||||||
containerRegistry.RegisterForNavigation<HostSelectPage, HostSelectPageModel>();
|
containerRegistry.RegisterForNavigation<HostSelectPage, HostSelectPageModel>();
|
||||||
containerRegistry.RegisterForNavigation<LoginChoosePage, LoginChoosePageModel>();
|
containerRegistry.RegisterForNavigation<LoginChoosePage, LoginChoosePageModel>();
|
||||||
|
@ -21,15 +21,15 @@
|
|||||||
</Target>
|
</Target>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
|
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
|
||||||
<PackageReference Include="Prism.DryIoc.Forms" Version="8.0.0.1909" />
|
<PackageReference Include="Prism.DryIoc.Forms" Version="7.2.0.1422" />
|
||||||
<PackageReference Include="Xamarin.Forms" Version="4.8.0.1687" />
|
<PackageReference Include="Xamarin.Forms" Version="4.7.0.1351" />
|
||||||
<PackageReference Include="Xamarin.Essentials" Version="1.5.3.2" />
|
<PackageReference Include="Xamarin.Essentials" Version="1.5.3.2" />
|
||||||
<PackageReference Include="System.Numerics.Vectors" Version="4.5.0" />
|
<PackageReference Include="System.Numerics.Vectors" Version="4.5.0" />
|
||||||
<PackageReference Include="Xamarin.Forms.EntryAutoComplete" Version="1.0.0" />
|
<PackageReference Include="Xamarin.Forms.EntryAutoComplete" Version="1.0.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Update="Page\MachinesPage.xaml.cs">
|
<Compile Update="Page\MachineListPage.xaml.cs">
|
||||||
<DependentUpon>MachinesPage.xaml</DependentUpon>
|
<DependentUpon>MachineListPage.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Update="Page\SettingsPage.xaml.cs">
|
<Compile Update="Page\SettingsPage.xaml.cs">
|
||||||
<DependentUpon>SettingsPage.xaml</DependentUpon>
|
<DependentUpon>SettingsPage.xaml</DependentUpon>
|
||||||
@ -47,6 +47,9 @@
|
|||||||
<Compile Update="Styles\LightTheme.xaml.cs">
|
<Compile Update="Styles\LightTheme.xaml.cs">
|
||||||
<DependentUpon>LightTheme.xaml</DependentUpon>
|
<DependentUpon>LightTheme.xaml</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Update="View\MachineListItemView.xaml.cs">
|
||||||
|
<DependentUpon>MachineListItemView.xaml</DependentUpon>
|
||||||
|
</Compile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Update="Dialog\ConfirmDialog.xaml">
|
<EmbeddedResource Update="Dialog\ConfirmDialog.xaml">
|
||||||
@ -67,9 +70,6 @@
|
|||||||
<EmbeddedResource Update="Page\MachinePage.xaml">
|
<EmbeddedResource Update="Page\MachinePage.xaml">
|
||||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Update="Page\MachinesPage.xaml">
|
|
||||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Update="Page\MainPage.xaml">
|
<EmbeddedResource Update="Page\MainPage.xaml">
|
||||||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
@ -1,8 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Text;
|
|
||||||
using Borepin.Model;
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
|
|
||||||
namespace Borepin.Converter
|
namespace Borepin.Converter
|
||||||
@ -11,9 +8,9 @@ namespace Borepin.Converter
|
|||||||
{
|
{
|
||||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
{
|
{
|
||||||
switch((MachineStates)value)
|
switch((FabAccessAPI.Schema.State)value)
|
||||||
{
|
{
|
||||||
case (MachineStates.Free):
|
case (FabAccessAPI.Schema.State.free):
|
||||||
return (Color)Application.Current.Resources["FirstColor"];
|
return (Color)Application.Current.Resources["FirstColor"];
|
||||||
default:
|
default:
|
||||||
return (Color)Application.Current.Resources["SixthColor"];
|
return (Color)Application.Current.Resources["SixthColor"];
|
||||||
|
35
Borepin/Borepin/Converter/MachineStateStringConverter.cs
Normal file
35
Borepin/Borepin/Converter/MachineStateStringConverter.cs
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
using System;
|
||||||
|
using System.Globalization;
|
||||||
|
using Xamarin.Forms;
|
||||||
|
|
||||||
|
namespace Borepin.Converter
|
||||||
|
{
|
||||||
|
public class MachineStateStringConverter : IValueConverter
|
||||||
|
{
|
||||||
|
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
|
{
|
||||||
|
switch((FabAccessAPI.Schema.State)value)
|
||||||
|
{
|
||||||
|
case (FabAccessAPI.Schema.State.free):
|
||||||
|
return "Free";
|
||||||
|
case (FabAccessAPI.Schema.State.inUse):
|
||||||
|
return "In Use";
|
||||||
|
case (FabAccessAPI.Schema.State.toCheck):
|
||||||
|
return "To Check";
|
||||||
|
case (FabAccessAPI.Schema.State.reserved):
|
||||||
|
return "Reserved";
|
||||||
|
case (FabAccessAPI.Schema.State.blocked):
|
||||||
|
return "Blocked";
|
||||||
|
case (FabAccessAPI.Schema.State.disabled):
|
||||||
|
return "Disabled";
|
||||||
|
default:
|
||||||
|
return "Unknown";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
@ -1,6 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace Borepin.Model
|
namespace Borepin.Model
|
||||||
{
|
{
|
||||||
|
@ -1,54 +1,8 @@
|
|||||||
using Prism.Mvvm;
|
namespace Borepin.Model
|
||||||
|
|
||||||
namespace Borepin.Model
|
|
||||||
{
|
{
|
||||||
public enum MachineStates
|
public class Machine
|
||||||
{
|
{
|
||||||
Free,
|
public FabAccessAPI.Machine Instance { get; set; }
|
||||||
InUse,
|
public FabAccessAPI.Schema.Machine.MInfo MInfo { get; set; }
|
||||||
ToCheck,
|
|
||||||
Blocked,
|
|
||||||
Disabled,
|
|
||||||
Reserved
|
|
||||||
}
|
|
||||||
|
|
||||||
public class Machine : BindableBase
|
|
||||||
{
|
|
||||||
private string _ID;
|
|
||||||
public string ID
|
|
||||||
{
|
|
||||||
get => _ID;
|
|
||||||
set => SetProperty(ref _ID, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private MachineStates _State;
|
|
||||||
public MachineStates State
|
|
||||||
{
|
|
||||||
get => _State;
|
|
||||||
set => SetProperty(ref _State, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private string _Description;
|
|
||||||
public string Description
|
|
||||||
{
|
|
||||||
get => _Description;
|
|
||||||
set => SetProperty(ref _Description, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private User _User;
|
|
||||||
public User User
|
|
||||||
{
|
|
||||||
get => _User;
|
|
||||||
set => SetProperty(ref _User, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class User
|
|
||||||
{
|
|
||||||
public string ID { get; set; }
|
|
||||||
|
|
||||||
public string Name { get; set; }
|
|
||||||
|
|
||||||
public string OriginalWorkshop { get; set; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
22
Borepin/Borepin/Page/MachineListPage.xaml
Normal file
22
Borepin/Borepin/Page/MachineListPage.xaml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||||
|
xmlns:views="clr-namespace:Borepin.View"
|
||||||
|
x:Class="Borepin.Page.MachineListPage">
|
||||||
|
<NavigationPage.TitleView>
|
||||||
|
<Label Text="Machines" HorizontalOptions="End" Margin="0, 0, 10, 0" VerticalOptions="CenterAndExpand" FontSize="Medium" TextColor="{StaticResource FirstColor}"/>
|
||||||
|
</NavigationPage.TitleView>
|
||||||
|
<ContentPage.Content>
|
||||||
|
<StackLayout>
|
||||||
|
<ListView ItemsSource="{Binding MachineListItemViewModel_List}">
|
||||||
|
<ListView.ItemTemplate>
|
||||||
|
<DataTemplate>
|
||||||
|
<ViewCell>
|
||||||
|
<views:MachineListItemView />
|
||||||
|
</ViewCell>
|
||||||
|
</DataTemplate>
|
||||||
|
</ListView.ItemTemplate>
|
||||||
|
</ListView>
|
||||||
|
</StackLayout>
|
||||||
|
</ContentPage.Content>
|
||||||
|
</ContentPage>
|
15
Borepin/Borepin/Page/MachineListPage.xaml.cs
Normal file
15
Borepin/Borepin/Page/MachineListPage.xaml.cs
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
|
||||||
|
using Xamarin.Forms;
|
||||||
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
namespace Borepin.Page
|
||||||
|
{
|
||||||
|
[XamlCompilation(XamlCompilationOptions.Compile)]
|
||||||
|
public partial class MachineListPage : ContentPage
|
||||||
|
{
|
||||||
|
public MachineListPage()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -14,23 +14,10 @@
|
|||||||
</ContentPage.Resources>
|
</ContentPage.Resources>
|
||||||
<ContentPage.Content>
|
<ContentPage.Content>
|
||||||
<StackLayout Padding="20">
|
<StackLayout Padding="20">
|
||||||
<Label Text="{Binding Machine.ID}" Style="{StaticResource LabelStyle_Title}"/>
|
<Label Text="{Binding Name}" Style="{StaticResource LabelStyle_Title}"/>
|
||||||
|
|
||||||
<Label Text="Current User" IsVisible="{Binding Machine.User, Converter={StaticResource IsNotNullBoolConverter}}" Style="{StaticResource LabelStyle_PropertyTitle}"></Label>
|
|
||||||
<Label Text="{Binding Machine.User.Name}" IsVisible="{Binding Machine.User, Converter={StaticResource IsNotNullBoolConverter}}" Style="{StaticResource LabelStyle_PropertyText}"/>
|
|
||||||
|
|
||||||
<Label Text="Description" Style="{StaticResource LabelStyle_PropertyTitle}"></Label>
|
|
||||||
<Label Text="{Binding Machine.Description}" Style="{StaticResource LabelStyle_PropertyText}"/>
|
|
||||||
|
|
||||||
<Button Text="Reserve" Command="{Binding ReserveMachineCommand}" IsVisible="{Binding CanReserve}" Style="{StaticResource ButtonStyle_Primary}"/>
|
|
||||||
|
|
||||||
<Button Text="Use" Command="{Binding UseMachineCommand}" IsVisible="{Binding CanUse}" Style="{StaticResource ButtonStyle_Primary}"/>
|
<Button Text="Use" Command="{Binding UseMachineCommand}" IsVisible="{Binding CanUse}" Style="{StaticResource ButtonStyle_Primary}"/>
|
||||||
<Button Text="GiveBack" Command="{Binding GiveBackMachineCommand}" IsVisible="{Binding CanGiveBack}" Style="{StaticResource ButtonStyle_Primary}"/>
|
<Button Text="GiveBack" Command="{Binding GiveBackMachineCommand}" IsVisible="{Binding CanGiveBack}" Style="{StaticResource ButtonStyle_Primary}"/>
|
||||||
|
|
||||||
<Grid>
|
|
||||||
<Button Grid.Column="0" Text="Disable" Command="{Binding DisableMachineCommand}" IsVisible="{Binding IsAdmin}" Style="{StaticResource ButtonStyle_Admin}"/>
|
|
||||||
<Button Grid.Column="1" Text="Block" Command="{Binding BlockMachineCommand}" IsVisible="{Binding IsAdmin}" Style="{StaticResource ButtonStyle_Admin}"/>
|
|
||||||
</Grid>
|
|
||||||
</StackLayout>
|
</StackLayout>
|
||||||
</ContentPage.Content>
|
</ContentPage.Content>
|
||||||
</ContentPage>
|
</ContentPage>
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
@ -1,43 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" ?>
|
|
||||||
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
|
||||||
x:Class="Borepin.Page.MachinesPage"
|
|
||||||
xmlns:converters="clr-namespace:Borepin.Converter">
|
|
||||||
<NavigationPage.TitleView>
|
|
||||||
<Label Text="Machines" HorizontalOptions="End" Margin="0, 0, 10, 0" VerticalOptions="CenterAndExpand" FontSize="Medium" TextColor="{StaticResource FirstColor}"/>
|
|
||||||
</NavigationPage.TitleView>
|
|
||||||
<ContentPage.Resources>
|
|
||||||
<ResourceDictionary>
|
|
||||||
<converters:MachineStateColorConverter x:Key="MachineStateColorConverter"/>
|
|
||||||
</ResourceDictionary>
|
|
||||||
</ContentPage.Resources>
|
|
||||||
<ContentPage.Content>
|
|
||||||
<StackLayout Padding="0, 10, 0, 10">
|
|
||||||
<ListView x:Name="MachineList" ItemsSource="{Binding MachineList}" SelectionMode="None">
|
|
||||||
<ListView.ItemTemplate>
|
|
||||||
<DataTemplate>
|
|
||||||
<ViewCell>
|
|
||||||
<Grid RowSpacing="0">
|
|
||||||
<Grid.ColumnDefinitions>
|
|
||||||
<ColumnDefinition Width="5" />
|
|
||||||
<ColumnDefinition Width="7*" />
|
|
||||||
<ColumnDefinition Width="2*" />
|
|
||||||
<ColumnDefinition Width="1*" />
|
|
||||||
<ColumnDefinition Width="1" />
|
|
||||||
</Grid.ColumnDefinitions>
|
|
||||||
<Grid.RowDefinitions>
|
|
||||||
<RowDefinition Height="*"/>
|
|
||||||
<RowDefinition Height="1"/>
|
|
||||||
</Grid.RowDefinitions>
|
|
||||||
<Label Grid.Row="0" Grid.Column="1" Text="{Binding ID, StringFormat='{0}'}" Style="{StaticResource LabelStyle_Primary}"/>
|
|
||||||
<Label Grid.Row="0" Grid.Column="2" Text="{Binding State, StringFormat='{0}'}" Style="{StaticResource LabelStyle_Second}" HorizontalTextAlignment="End" TextColor="{Binding State, Converter={StaticResource MachineStateColorConverter}}" />
|
|
||||||
<Button Grid.Row="0" Grid.Column="3" Margin="0, 3, 0, 3" Text="->" Command="{Binding BindingContext.GoToMachineCommand, Source={x:Reference MachineList}}" CommandParameter="{Binding .}" Style="{StaticResource ButtonStyle_Primary}"/>
|
|
||||||
<BoxView Grid.Row="1" Grid.ColumnSpan="5" BackgroundColor="{StaticResource FifthColor}"/>
|
|
||||||
</Grid>
|
|
||||||
</ViewCell>
|
|
||||||
</DataTemplate>
|
|
||||||
</ListView.ItemTemplate>
|
|
||||||
</ListView>
|
|
||||||
</StackLayout>
|
|
||||||
</ContentPage.Content>
|
|
||||||
</ContentPage>
|
|
@ -1,20 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
|
||||||
using Xamarin.Forms.Xaml;
|
|
||||||
|
|
||||||
namespace Borepin.Page
|
|
||||||
{
|
|
||||||
[XamlCompilation(XamlCompilationOptions.Compile)]
|
|
||||||
public partial class MachinesPage : ContentPage
|
|
||||||
{
|
|
||||||
public MachinesPage()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -7,7 +7,7 @@
|
|||||||
<MasterDetailPage.Master>
|
<MasterDetailPage.Master>
|
||||||
<ContentPage Title="FabAccess">
|
<ContentPage Title="FabAccess">
|
||||||
<StackLayout>
|
<StackLayout>
|
||||||
<Button Text="Machines" Command="{Binding NavigateCommand}" CommandParameter="MachinesPage" />
|
<Button Text="Machines" Command="{Binding NavigateCommand}" CommandParameter="MachineListPage" />
|
||||||
<Button Text="Settings" Command="{Binding NavigateCommand}" CommandParameter="SettingsPage" />
|
<Button Text="Settings" Command="{Binding NavigateCommand}" CommandParameter="SettingsPage" />
|
||||||
<Button Text="Servers" Command="{Binding NavigateCommand}" CommandParameter="ServerListPage" />
|
<Button Text="Servers" Command="{Binding NavigateCommand}" CommandParameter="ServerListPage" />
|
||||||
</StackLayout>
|
</StackLayout>
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using Borepin.Model;
|
using Borepin.Service.BFFH;
|
||||||
using Borepin.Service.BFFH;
|
|
||||||
using Borepin.Service.Connections;
|
using Borepin.Service.Connections;
|
||||||
using Prism.Mvvm;
|
using Prism.Mvvm;
|
||||||
using Prism.Navigation;
|
using Prism.Navigation;
|
||||||
@ -13,15 +12,13 @@ namespace Borepin.PageModel
|
|||||||
{
|
{
|
||||||
public class HostSelectPageModel : BindableBase
|
public class HostSelectPageModel : BindableBase
|
||||||
{
|
{
|
||||||
private INavigationService _NavigationService;
|
private readonly INavigationService _NavigationService;
|
||||||
private IBFFHService _BFFHService;
|
private readonly IBFFHService _BFFHService;
|
||||||
private IConnectionService _ConnectionService;
|
|
||||||
|
|
||||||
public HostSelectPageModel(INavigationService navigationService, IBFFHService bffhService, IConnectionService connectionService)
|
public HostSelectPageModel(INavigationService navigationService, IBFFHService bffhService)
|
||||||
{
|
{
|
||||||
_NavigationService = navigationService;
|
_NavigationService = navigationService;
|
||||||
_BFFHService = bffhService;
|
_BFFHService = bffhService;
|
||||||
_ConnectionService = connectionService;
|
|
||||||
|
|
||||||
UseHostCommand = new Command(UseHostCommandExecuted);
|
UseHostCommand = new Command(UseHostCommandExecuted);
|
||||||
DetectHostCommand = new Command(DetectHostCommandExecuted);
|
DetectHostCommand = new Command(DetectHostCommandExecuted);
|
||||||
@ -63,7 +60,7 @@ namespace Borepin.PageModel
|
|||||||
builder.Port = 59661;
|
builder.Port = 59661;
|
||||||
}
|
}
|
||||||
|
|
||||||
Connection connection = new Connection()
|
Model.Connection connection = new Model.Connection()
|
||||||
{
|
{
|
||||||
Address = builder.Uri
|
Address = builder.Uri
|
||||||
};
|
};
|
||||||
@ -87,7 +84,7 @@ namespace Borepin.PageModel
|
|||||||
private void DetectHostCommandExecuted()
|
private void DetectHostCommandExecuted()
|
||||||
{
|
{
|
||||||
// Use Demo Host
|
// Use Demo Host
|
||||||
Host = "127.0.0.1:59661";
|
Host = "192.168.178.20:59661";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,5 @@
|
|||||||
using Prism.Mvvm;
|
using Prism.Mvvm;
|
||||||
using Prism.Navigation;
|
using Prism.Navigation;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Text;
|
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
|
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
using Borepin.Model;
|
using Borepin.Model;
|
||||||
using Borepin.Service.BFFH;
|
using Borepin.Service.BFFH;
|
||||||
using Borepin.Service.Connections;
|
using Borepin.Service.Connections;
|
||||||
|
using Prism.Commands;
|
||||||
using Prism.Mvvm;
|
using Prism.Mvvm;
|
||||||
using Prism.Navigation;
|
using Prism.Navigation;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
using Xamarin.Forms;
|
|
||||||
|
|
||||||
namespace Borepin.PageModel
|
namespace Borepin.PageModel
|
||||||
{
|
{
|
||||||
@ -21,7 +21,7 @@ namespace Borepin.PageModel
|
|||||||
_BFFHService = bffhService;
|
_BFFHService = bffhService;
|
||||||
_ConnectionService = connectionService;
|
_ConnectionService = connectionService;
|
||||||
|
|
||||||
AuthenticateCommand = new Command(AuthenticateCommandExecuted);
|
AuthenticateCommand = new DelegateCommand(async () => await AuthenticateCommandExecuted());
|
||||||
|
|
||||||
Task.Run(LoadData);
|
Task.Run(LoadData);
|
||||||
}
|
}
|
||||||
@ -52,17 +52,18 @@ namespace Borepin.PageModel
|
|||||||
set => SetProperty(ref _AuthenticateCommand, value);
|
set => SetProperty(ref _AuthenticateCommand, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void AuthenticateCommandExecuted()
|
private async Task AuthenticateCommandExecuted()
|
||||||
{
|
{
|
||||||
Connection connection_update = _BFFHService.ActiveConnection;
|
Connection connection_update = _BFFHService.ActiveConnection;
|
||||||
|
|
||||||
connection_update.Username = Username;
|
connection_update.Username = Username;
|
||||||
|
|
||||||
await _BFFHService.Authenticate(connection_update, Password);
|
await _BFFHService.Authenticate(connection_update, Password);
|
||||||
|
|
||||||
await _ConnectionService.AddConnection(_BFFHService.ActiveConnection);
|
await _ConnectionService.AddConnection(_BFFHService.ActiveConnection);
|
||||||
await _ConnectionService.LogConnect(_BFFHService.ActiveConnection);
|
await _ConnectionService.LogConnect(_BFFHService.ActiveConnection);
|
||||||
|
|
||||||
var result = await _NavigationService.NavigateAsync("/MainPage/NavigationPage/MachinesPage");
|
var result = await _NavigationService.NavigateAsync("/MainPage/NavigationPage/MachineListPage");
|
||||||
|
|
||||||
if (!result.Success)
|
if (!result.Success)
|
||||||
{
|
{
|
||||||
|
102
Borepin/Borepin/PageModel/MachineListPageModel.cs
Normal file
102
Borepin/Borepin/PageModel/MachineListPageModel.cs
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
using Borepin.ViewModel;
|
||||||
|
using Prism.Mvvm;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Input;
|
||||||
|
using Prism.Commands;
|
||||||
|
using Prism.Navigation;
|
||||||
|
using Borepin.Service.Connections;
|
||||||
|
using Borepin.Service.BFFH;
|
||||||
|
using Borepin.Model;
|
||||||
|
|
||||||
|
namespace Borepin.PageModel
|
||||||
|
{
|
||||||
|
public class MachineListPageModel : BindableBase, INavigationAware
|
||||||
|
{
|
||||||
|
private readonly INavigationService _NavigationService;
|
||||||
|
private readonly IConnectionService _ConnectionService;
|
||||||
|
private readonly IBFFHService _BFFHService;
|
||||||
|
|
||||||
|
public MachineListPageModel(INavigationService navigationService, IConnectionService connectionService, IBFFHService bffhService)
|
||||||
|
{
|
||||||
|
_NavigationService = navigationService;
|
||||||
|
_ConnectionService = connectionService;
|
||||||
|
_BFFHService = bffhService;
|
||||||
|
|
||||||
|
SelectInstanceCommand = new DelegateCommand<object>(SelectInstanceCommandExecuted);
|
||||||
|
}
|
||||||
|
|
||||||
|
private async Task<bool> LoadData()
|
||||||
|
{
|
||||||
|
if(_BFFHService.ActiveConnection == null)
|
||||||
|
{
|
||||||
|
return await Task.FromResult(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
FabAccessAPI.Machines machineInterface = await _BFFHService.GetMachineInterface();
|
||||||
|
|
||||||
|
List<Machine> list = new List<Machine>();
|
||||||
|
|
||||||
|
IReadOnlyList<FabAccessAPI.Machine> machine_list = await machineInterface.ListMachines();
|
||||||
|
foreach(FabAccessAPI.Machine machine in machine_list)
|
||||||
|
{
|
||||||
|
list.Add(new Machine() { Instance = machine, MInfo = await machine.GetMInfo() });
|
||||||
|
}
|
||||||
|
|
||||||
|
List<MachineListItemViewModel> viewmodel_list = new List<MachineListItemViewModel>();
|
||||||
|
foreach(Machine machine in list)
|
||||||
|
{
|
||||||
|
viewmodel_list.Add(new MachineListItemViewModel(machine));
|
||||||
|
}
|
||||||
|
|
||||||
|
MachineListItemViewModel_List = viewmodel_list;
|
||||||
|
|
||||||
|
return await Task.FromResult(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Properties
|
||||||
|
private List<MachineListItemViewModel> _MachineListItemViewModel_List;
|
||||||
|
public List<MachineListItemViewModel> MachineListItemViewModel_List
|
||||||
|
{
|
||||||
|
get => _MachineListItemViewModel_List;
|
||||||
|
set => SetProperty(ref _MachineListItemViewModel_List, value);
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Commands
|
||||||
|
private ICommand _SelectInstanceCommand;
|
||||||
|
public ICommand SelectInstanceCommand
|
||||||
|
{
|
||||||
|
get => _SelectInstanceCommand;
|
||||||
|
set => SetProperty(ref _SelectInstanceCommand, value);
|
||||||
|
}
|
||||||
|
private async void SelectInstanceCommandExecuted(object obj)
|
||||||
|
{
|
||||||
|
MachineListItemViewModel viewmodel = obj as MachineListItemViewModel;
|
||||||
|
|
||||||
|
NavigationParameters parameters = new NavigationParameters
|
||||||
|
{
|
||||||
|
{ "instance", viewmodel.Instance }
|
||||||
|
};
|
||||||
|
|
||||||
|
INavigationResult result = await _NavigationService.NavigateAsync($"MachinePage", parameters);
|
||||||
|
if (!result.Success)
|
||||||
|
{
|
||||||
|
System.Diagnostics.Debugger.Break();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region INavigationAware
|
||||||
|
public void OnNavigatedFrom(INavigationParameters parameters)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnNavigatedTo(INavigationParameters parameters)
|
||||||
|
{
|
||||||
|
Task.Run(LoadData);
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
@ -1,57 +1,64 @@
|
|||||||
using Borepin.Model;
|
using Borepin.Model;
|
||||||
using Borepin.Service.BFFH;
|
using Prism.Commands;
|
||||||
using Prism.Mvvm;
|
using Prism.Mvvm;
|
||||||
using Prism.Navigation;
|
using Prism.Navigation;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
using Xamarin.Forms;
|
using static FabAccessAPI.Schema.Machine.WriteInterface;
|
||||||
|
|
||||||
namespace Borepin.PageModel
|
namespace Borepin.PageModel
|
||||||
{
|
{
|
||||||
public class MachinePageModel : BindableBase, INavigationAware
|
public class MachinePageModel : BindableBase, INavigationAware
|
||||||
{
|
{
|
||||||
private readonly INavigationService _NavigationService;
|
private readonly INavigationService _NavigationService;
|
||||||
private readonly IBFFHService _BFFHService;
|
|
||||||
|
|
||||||
public MachinePageModel(INavigationService navigationService, IBFFHService bffhService)
|
public MachinePageModel(INavigationService navigationService)
|
||||||
{
|
{
|
||||||
_NavigationService = navigationService;
|
_NavigationService = navigationService;
|
||||||
_BFFHService = bffhService;
|
|
||||||
|
|
||||||
ReserveMachineCommand = new Command(ReserveMachineCommandExecuted);
|
UseMachineCommand = new DelegateCommand(UseMachineCommandExecuted);
|
||||||
UseMachineCommand = new Command(UseMachineCommandExecuted);
|
GiveBackMachineCommand = new DelegateCommand(GiveBackMachineCommandExecuted);
|
||||||
GiveBackMachineCommand = new Command(GiveBackMachineCommandExecuted);
|
|
||||||
BlockMachineCommand = new Command(BlockMachineCommandExecuted);
|
|
||||||
DisableMachineCommand = new Command(DisableMachineCommandExecuted);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Machine _Machine;
|
#region Properties
|
||||||
public Machine Machine
|
|
||||||
|
private Machine _MachineItem;
|
||||||
|
public Machine MachineItem
|
||||||
{
|
{
|
||||||
get => _Machine;
|
get => _MachineItem;
|
||||||
set => SetProperty(ref _Machine, value);
|
set => SetProperty(ref _MachineItem, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool _IsValid = false;
|
private string _Name;
|
||||||
public bool IsValid
|
public string Name
|
||||||
{
|
{
|
||||||
get => _IsValid;
|
get => _Name;
|
||||||
set => SetProperty(ref _IsValid, value);
|
set => SetProperty(ref _Name, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
private ICommand _ReserveMachineCommand;
|
private IGiveBack _GiveBack;
|
||||||
public ICommand ReserveMachineCommand
|
//public IGiveBack GiveBack
|
||||||
|
//{
|
||||||
|
// get => _GiveBack;
|
||||||
|
// set => SetProperty(ref _GiveBack, value);
|
||||||
|
//}
|
||||||
|
|
||||||
|
private bool _CanUse;
|
||||||
|
public bool CanUse
|
||||||
{
|
{
|
||||||
get => _ReserveMachineCommand;
|
get => _CanUse;
|
||||||
set => SetProperty(ref _ReserveMachineCommand, value);
|
set => SetProperty(ref _CanUse, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ReserveMachineCommandExecuted()
|
private bool _CanGiveBack;
|
||||||
|
public bool CanGiveBack
|
||||||
{
|
{
|
||||||
//_BFFHInterface.ReserveMachine(Machine.ID);
|
get => _CanGiveBack;
|
||||||
//UpdateMachine();
|
set => SetProperty(ref _CanGiveBack, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Commands
|
||||||
private ICommand _UseMachineCommand;
|
private ICommand _UseMachineCommand;
|
||||||
public ICommand UseMachineCommand
|
public ICommand UseMachineCommand
|
||||||
{
|
{
|
||||||
@ -59,10 +66,14 @@ namespace Borepin.PageModel
|
|||||||
set => SetProperty(ref _UseMachineCommand, value);
|
set => SetProperty(ref _UseMachineCommand, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UseMachineCommandExecuted()
|
private async void UseMachineCommandExecuted()
|
||||||
{
|
{
|
||||||
//_BFFHInterface.UseMachine(Machine.ID);
|
_GiveBack = await MachineItem.Instance.Use();
|
||||||
//UpdateMachine();
|
CanGiveBack = _GiveBack != null;
|
||||||
|
|
||||||
|
MachineItem.MInfo = await MachineItem.Instance.GetMInfo();
|
||||||
|
|
||||||
|
CanUse = MachineItem.MInfo.State == FabAccessAPI.Schema.State.free;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ICommand _GiveBackMachineCommand;
|
private ICommand _GiveBackMachineCommand;
|
||||||
@ -72,147 +83,21 @@ namespace Borepin.PageModel
|
|||||||
set => SetProperty(ref _GiveBackMachineCommand, value);
|
set => SetProperty(ref _GiveBackMachineCommand, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void GiveBackMachineCommandExecuted()
|
private async void GiveBackMachineCommandExecuted()
|
||||||
{
|
{
|
||||||
//_BFFHInterface.GiveBackMachine(Machine.ID);
|
await _GiveBack.Ret();
|
||||||
//UpdateMachine();
|
|
||||||
|
_GiveBack = null;
|
||||||
|
CanGiveBack = _GiveBack != null;
|
||||||
|
|
||||||
|
MachineItem.MInfo = await MachineItem.Instance.GetMInfo();
|
||||||
|
|
||||||
|
CanUse = MachineItem.MInfo.State == FabAccessAPI.Schema.State.free;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ICommand _DisableMachineCommand;
|
#endregion
|
||||||
public ICommand DisableMachineCommand
|
|
||||||
{
|
|
||||||
get => _DisableMachineCommand;
|
|
||||||
set => SetProperty(ref _DisableMachineCommand, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void DisableMachineCommandExecuted()
|
|
||||||
{
|
|
||||||
//if(Machine.State == MachineStates.Disabled)
|
|
||||||
//{
|
|
||||||
// _BFFHInterface.SetStateForce(Machine.ID, MachineStates.Free);
|
|
||||||
//}
|
|
||||||
//else
|
|
||||||
//{
|
|
||||||
// _BFFHInterface.SetStateForce(Machine.ID, MachineStates.Disabled);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//UpdateMachine();
|
|
||||||
}
|
|
||||||
|
|
||||||
private ICommand _BlockMachineCommand;
|
|
||||||
public ICommand BlockMachineCommand
|
|
||||||
{
|
|
||||||
get => _BlockMachineCommand;
|
|
||||||
set => SetProperty(ref _BlockMachineCommand, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void BlockMachineCommandExecuted()
|
|
||||||
{
|
|
||||||
//if (Machine.State == MachineStates.Blocked)
|
|
||||||
//{
|
|
||||||
// _BFFHInterface.SetStateForce(Machine.ID, MachineStates.Free);
|
|
||||||
//}
|
|
||||||
//else
|
|
||||||
//{
|
|
||||||
// _BFFHInterface.SetStateForce(Machine.ID, MachineStates.Blocked);
|
|
||||||
//}
|
|
||||||
|
|
||||||
//UpdateMachine();
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool CanUse
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
//if(Machine == null)
|
|
||||||
//{
|
|
||||||
// return false;
|
|
||||||
//}
|
|
||||||
|
|
||||||
//if(Machine.State == MachineStates.Free)
|
|
||||||
//{
|
|
||||||
// return true;
|
|
||||||
//}
|
|
||||||
|
|
||||||
//if(Machine.State == MachineStates.Reserved)
|
|
||||||
//{
|
|
||||||
// if(Machine.User == _BFFHInterface.ActiveUser)
|
|
||||||
// {
|
|
||||||
// return true;
|
|
||||||
// }
|
|
||||||
// else if(_BFFHInterface.IsAdmin())
|
|
||||||
// {
|
|
||||||
// return true;
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool CanReserve
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
//if (Machine == null)
|
|
||||||
//{
|
|
||||||
// return false;
|
|
||||||
//}
|
|
||||||
|
|
||||||
//if (Machine.State == MachineStates.Free)
|
|
||||||
//{
|
|
||||||
// return true;
|
|
||||||
//}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool CanGiveBack
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
//if (Machine == null)
|
|
||||||
//{
|
|
||||||
// return false;
|
|
||||||
//}
|
|
||||||
|
|
||||||
//if (Machine.State == MachineStates.InUse && Machine.User == _BFFHInterface.ActiveUser)
|
|
||||||
//{
|
|
||||||
// return true;
|
|
||||||
//}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool IsAdmin
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
//if (_BFFHInterface == null)
|
|
||||||
//{
|
|
||||||
// return false;
|
|
||||||
//}
|
|
||||||
|
|
||||||
//if (_BFFHInterface.IsAdmin())
|
|
||||||
//{
|
|
||||||
// return true;
|
|
||||||
//}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void UpdateMachine()
|
|
||||||
{
|
|
||||||
//Machine = BFFHService_OLD.GetMachine(Machine.ID);
|
|
||||||
|
|
||||||
//OnPropertyChanged(new System.ComponentModel.PropertyChangedEventArgs("CanUse"));
|
|
||||||
//OnPropertyChanged(new System.ComponentModel.PropertyChangedEventArgs("CanReserve"));
|
|
||||||
//OnPropertyChanged(new System.ComponentModel.PropertyChangedEventArgs("CanGiveBack"));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
#region INavigationAware
|
||||||
public void OnNavigatedFrom(INavigationParameters parameters)
|
public void OnNavigatedFrom(INavigationParameters parameters)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -220,25 +105,13 @@ namespace Borepin.PageModel
|
|||||||
|
|
||||||
public void OnNavigatedTo(INavigationParameters parameters)
|
public void OnNavigatedTo(INavigationParameters parameters)
|
||||||
{
|
{
|
||||||
//string machineID = parameters["machineID"] as string;
|
MachineItem = parameters["instance"] as Machine;
|
||||||
|
|
||||||
//if(machineID == null)
|
Name = MachineItem.MInfo.Name;
|
||||||
//{
|
|
||||||
// _IsValid = false;
|
|
||||||
// return;
|
|
||||||
//}
|
|
||||||
|
|
||||||
//try
|
CanUse = MachineItem.MInfo.State == FabAccessAPI.Schema.State.free;
|
||||||
//{
|
CanGiveBack = _GiveBack != null;
|
||||||
// Machine = BFFHService_OLD.GetMachine(machineID);
|
}
|
||||||
// IsValid = true;
|
#endregion
|
||||||
|
|
||||||
// UpdateMachine();
|
|
||||||
//}
|
|
||||||
//catch
|
|
||||||
//{
|
|
||||||
// _IsValid = false;
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,50 +0,0 @@
|
|||||||
using Borepin.Model;
|
|
||||||
using Prism.Mvvm;
|
|
||||||
using Prism.Navigation;
|
|
||||||
using System.Collections.ObjectModel;
|
|
||||||
using System.Windows.Input;
|
|
||||||
using Xamarin.Forms;
|
|
||||||
|
|
||||||
namespace Borepin.PageModel
|
|
||||||
{
|
|
||||||
public class MachinesPageModel : BindableBase
|
|
||||||
{
|
|
||||||
private readonly INavigationService _NavigationService;
|
|
||||||
|
|
||||||
public MachinesPageModel(INavigationService navigationService)
|
|
||||||
{
|
|
||||||
_NavigationService = navigationService;
|
|
||||||
GoToMachineCommand = new Command<object>(GoToMachineCommandExecuted);
|
|
||||||
}
|
|
||||||
|
|
||||||
private ICommand _GoToMachineCommand;
|
|
||||||
public ICommand GoToMachineCommand
|
|
||||||
{
|
|
||||||
get => _GoToMachineCommand;
|
|
||||||
set => SetProperty(ref _GoToMachineCommand, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
private async void GoToMachineCommandExecuted(object obj)
|
|
||||||
{
|
|
||||||
Machine machine = obj as Machine;
|
|
||||||
|
|
||||||
NavigationParameters navigationParams = new NavigationParameters
|
|
||||||
{
|
|
||||||
{ "machineID", machine.ID }
|
|
||||||
};
|
|
||||||
|
|
||||||
INavigationResult result = await _NavigationService.NavigateAsync($"MachinePage", navigationParams);
|
|
||||||
if (!result.Success)
|
|
||||||
{
|
|
||||||
System.Diagnostics.Debugger.Break();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private ObservableCollection<Machine> _MachineList;
|
|
||||||
public ObservableCollection<Machine> MachineList
|
|
||||||
{
|
|
||||||
get => _MachineList;
|
|
||||||
set => SetProperty(ref _MachineList, value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -6,6 +6,7 @@ using Prism.Commands;
|
|||||||
using Prism.Mvvm;
|
using Prism.Mvvm;
|
||||||
using Prism.Navigation;
|
using Prism.Navigation;
|
||||||
using Prism.Services.Dialogs;
|
using Prism.Services.Dialogs;
|
||||||
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
|
|
||||||
namespace Borepin.PageModel
|
namespace Borepin.PageModel
|
||||||
@ -27,7 +28,7 @@ namespace Borepin.PageModel
|
|||||||
_BFFHService = bffhService;
|
_BFFHService = bffhService;
|
||||||
_CredentialService = credentialService;
|
_CredentialService = credentialService;
|
||||||
|
|
||||||
ConnectCommand = new DelegateCommand(ConnectCommandExecuted);
|
ConnectCommand = new DelegateCommand(async () => await ConnectCommandExecuted());
|
||||||
DeleteCommand = new DelegateCommand(DeleteCommandExecuted);
|
DeleteCommand = new DelegateCommand(DeleteCommandExecuted);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,7 +56,7 @@ namespace Borepin.PageModel
|
|||||||
set => SetProperty(ref _ConnectCommand, value);
|
set => SetProperty(ref _ConnectCommand, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void ConnectCommandExecuted()
|
private async Task ConnectCommandExecuted()
|
||||||
{
|
{
|
||||||
if(IsConnected)
|
if(IsConnected)
|
||||||
{
|
{
|
||||||
|
@ -3,12 +3,14 @@ using Borepin.Service.Credentials;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Capnp.Rpc;
|
using Capnp.Rpc;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Threading;
|
||||||
|
using System;
|
||||||
|
|
||||||
namespace Borepin.Service.BFFH
|
namespace Borepin.Service.BFFH
|
||||||
{
|
{
|
||||||
public class BFFHService : IBFFHService
|
public class BFFHService : IBFFHService
|
||||||
{
|
{
|
||||||
private ICredentialService _CredentialService;
|
private readonly ICredentialService _CredentialService;
|
||||||
|
|
||||||
private FabAccessAPI.Connection _Connection;
|
private FabAccessAPI.Connection _Connection;
|
||||||
|
|
||||||
@ -32,13 +34,8 @@ namespace Borepin.Service.BFFH
|
|||||||
|
|
||||||
rpcClient.Connect(connection.Address.Host, connection.Address.Port);
|
rpcClient.Connect(connection.Address.Host, connection.Address.Port);
|
||||||
|
|
||||||
await Task.Run(async () =>
|
// IMPORTANT: without ConfigureAwait(false) every Call for CapnProto Runtime deadlocks on Android
|
||||||
{
|
await rpcClient.WhenConnected.ConfigureAwait(false);
|
||||||
while (rpcClient.State == ConnectionState.Initializing)
|
|
||||||
{
|
|
||||||
await Task.Delay(100);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
FabAccessAPI.Connection connection_test = new FabAccessAPI.Connection(rpcClient);
|
FabAccessAPI.Connection connection_test = new FabAccessAPI.Connection(rpcClient);
|
||||||
|
|
||||||
@ -77,5 +74,10 @@ namespace Borepin.Service.BFFH
|
|||||||
|
|
||||||
return await Task.FromResult(true);
|
return await Task.FromResult(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Task<FabAccessAPI.Machines> GetMachineInterface()
|
||||||
|
{
|
||||||
|
return _Connection.AccessMachines();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -45,5 +45,7 @@ namespace Borepin.Service.BFFH
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="connection">address + username</param>
|
/// <param name="connection">address + username</param>
|
||||||
Task<bool> Authenticate(Connection connection, string password);
|
Task<bool> Authenticate(Connection connection, string password);
|
||||||
|
|
||||||
|
Task<FabAccessAPI.Machines> GetMachineInterface();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
32
Borepin/Borepin/View/MachineListItemView.xaml
Normal file
32
Borepin/Borepin/View/MachineListItemView.xaml
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||||
|
x:Class="Borepin.View.MachineListItemView"
|
||||||
|
xmlns:pagemodel="clr-namespace:Borepin.PageModel"
|
||||||
|
xmlns:converters="clr-namespace:Borepin.Converter">
|
||||||
|
<ContentView.Resources>
|
||||||
|
<ResourceDictionary>
|
||||||
|
<converters:MachineStateColorConverter x:Key="MachineStateColorConverter"/>
|
||||||
|
<converters:MachineStateStringConverter x:Key="MachineStateStringConverter"/>
|
||||||
|
</ResourceDictionary>
|
||||||
|
</ContentView.Resources>
|
||||||
|
<ContentView.Content>
|
||||||
|
<Grid RowSpacing="0">
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="5" />
|
||||||
|
<ColumnDefinition Width="7*" />
|
||||||
|
<ColumnDefinition Width="2*" />
|
||||||
|
<ColumnDefinition Width="1*" />
|
||||||
|
<ColumnDefinition Width="1" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="*"/>
|
||||||
|
<RowDefinition Height="1"/>
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<Label Grid.Row="0" Grid.Column="1" Text="{Binding Name}" Style="{StaticResource LabelStyle_Primary}"/>
|
||||||
|
<Label Grid.Row="0" Grid.Column="2" Text="{Binding State, Converter={StaticResource MachineStateStringConverter}}" TextColor="{Binding State, Converter={StaticResource MachineStateColorConverter}}" Style="{StaticResource LabelStyle_Second}" HorizontalTextAlignment="End" />
|
||||||
|
<Button Grid.Row="0" Grid.Column="3" Margin="0, 3, 0, 3" Text="->" Command="{Binding Source={RelativeSource AncestorType={x:Type pagemodel:MachineListPageModel}}, Path=SelectInstanceCommand}" CommandParameter="{Binding .}" Style="{StaticResource ButtonStyle_Primary}"/>
|
||||||
|
<BoxView Grid.Row="1" Grid.ColumnSpan="5" BackgroundColor="{StaticResource FifthColor}"/>
|
||||||
|
</Grid>
|
||||||
|
</ContentView.Content>
|
||||||
|
</ContentView>
|
15
Borepin/Borepin/View/MachineListItemView.xaml.cs
Normal file
15
Borepin/Borepin/View/MachineListItemView.xaml.cs
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
|
||||||
|
using Xamarin.Forms;
|
||||||
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
namespace Borepin.View
|
||||||
|
{
|
||||||
|
[XamlCompilation(XamlCompilationOptions.Compile)]
|
||||||
|
public partial class MachineListItemView : ContentView
|
||||||
|
{
|
||||||
|
public MachineListItemView()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,9 +1,4 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
using Xamarin.Forms;
|
using Xamarin.Forms;
|
||||||
using Xamarin.Forms.Xaml;
|
using Xamarin.Forms.Xaml;
|
||||||
|
|
||||||
|
28
Borepin/Borepin/ViewModel/MachineListItemViewModel.cs
Normal file
28
Borepin/Borepin/ViewModel/MachineListItemViewModel.cs
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
using Borepin.Model;
|
||||||
|
using Prism.Mvvm;
|
||||||
|
|
||||||
|
namespace Borepin.ViewModel
|
||||||
|
{
|
||||||
|
public class ServerListItemViewModel : BindableBase
|
||||||
|
{
|
||||||
|
public ServerListItemViewModel(Connection instance)
|
||||||
|
{
|
||||||
|
_Instance = instance;
|
||||||
|
Address = instance.Address.ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Connection _Instance;
|
||||||
|
public Connection Instance
|
||||||
|
{
|
||||||
|
get => _Instance;
|
||||||
|
set => SetProperty(ref _Instance, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
private string _Address;
|
||||||
|
public string Address
|
||||||
|
{
|
||||||
|
get => _Address;
|
||||||
|
set => SetProperty(ref _Address, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,28 +1,36 @@
|
|||||||
using Borepin.Model;
|
using Prism.Mvvm;
|
||||||
using Prism.Mvvm;
|
|
||||||
|
|
||||||
namespace Borepin.ViewModel
|
namespace Borepin.ViewModel
|
||||||
{
|
{
|
||||||
public class ServerListItemViewModel : BindableBase
|
public class MachineListItemViewModel : BindableBase
|
||||||
{
|
{
|
||||||
public ServerListItemViewModel(Connection instance)
|
public MachineListItemViewModel(Model.Machine instance)
|
||||||
{
|
{
|
||||||
_Instance = instance;
|
_Instance = instance;
|
||||||
Address = instance.Address.ToString();
|
|
||||||
|
Name = instance.MInfo.Name;
|
||||||
|
State = instance.MInfo.State;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Connection _Instance;
|
private Model.Machine _Instance;
|
||||||
public Connection Instance
|
public Model.Machine Instance
|
||||||
{
|
{
|
||||||
get => _Instance;
|
get => _Instance;
|
||||||
set => SetProperty(ref _Instance, value);
|
set => SetProperty(ref _Instance, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
private string _Address;
|
private string _Name;
|
||||||
public string Address
|
public string Name
|
||||||
{
|
{
|
||||||
get => _Address;
|
get => _Name;
|
||||||
set => SetProperty(ref _Address, value);
|
set => SetProperty(ref _Name, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
private FabAccessAPI.Schema.State _State;
|
||||||
|
public FabAccessAPI.Schema.State State
|
||||||
|
{
|
||||||
|
get => _State;
|
||||||
|
set => SetProperty(ref _State, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,12 @@
|
|||||||
using Capnp;
|
using FabAccessAPI.Schema;
|
||||||
using FabAccessAPI.Schema;
|
|
||||||
using S22.Sasl;
|
using S22.Sasl;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Exception = System.Exception;
|
using Exception = System.Exception;
|
||||||
|
|
||||||
namespace FabAccessAPI {
|
namespace FabAccessAPI
|
||||||
|
{
|
||||||
/// Authentication Identity
|
/// Authentication Identity
|
||||||
///
|
///
|
||||||
/// Under the hood a string because the form depends heavily on the method
|
/// Under the hood a string because the form depends heavily on the method
|
||||||
|
@ -3,14 +3,14 @@ using FabAccessAPI.Schema;
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace FabAccessAPI {
|
namespace FabAccessAPI {
|
||||||
public class Connection {
|
public class Connection {
|
||||||
#region private variables
|
#region private variables
|
||||||
private TcpRpcClient? _rpcClient = null;
|
private readonly TcpRpcClient? _rpcClient = null;
|
||||||
private IBootstrap? _bootstrapCap = null;
|
private readonly IBootstrap? _bootstrapCap = null;
|
||||||
private AuthUser? _authUser = null;
|
|
||||||
private Auth? _auth = null;
|
private Auth? _auth = null;
|
||||||
private Machines? _machines = null;
|
private Machines? _machines = null;
|
||||||
#endregion
|
#endregion
|
||||||
@ -38,18 +38,18 @@ namespace FabAccessAPI {
|
|||||||
/// <param name="mech">The desired authentication mechanism</param>
|
/// <param name="mech">The desired authentication mechanism</param>
|
||||||
/// <param name="kvs">Key-Value data specific to the mechanism</param>
|
/// <param name="kvs">Key-Value data specific to the mechanism</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task Auth(string mech, Dictionary<string, object> kvs) {
|
public async Task Auth(string mech, Dictionary<string, object> kvs, CancellationToken cancellationToken_ = default) {
|
||||||
// _bootstrapCap = await _bootstrapCap.Unwrap();
|
// _bootstrapCap = await _bootstrapCap.Unwrap();
|
||||||
var authCap = await _bootstrapCap.Auth();
|
var authCap = await _bootstrapCap.Auth(cancellationToken_);
|
||||||
_auth = new Auth(authCap);
|
_auth = new Auth(authCap);
|
||||||
var mechs = await _auth.GetMechanisms().ConfigureAwait(false);
|
var mechs = await _auth.GetMechanisms();
|
||||||
_Log.Debug($"The Server supports the following auth mechs: {string.Join(", ", mechs)}");
|
_Log.Debug($"The Server supports the following auth mechs: {string.Join(", ", mechs)}");
|
||||||
|
|
||||||
if (!mechs.Contains(mech)) {
|
if (!mechs.Contains(mech)) {
|
||||||
throw new UnsupportedMechanismException();
|
throw new UnsupportedMechanismException();
|
||||||
}
|
}
|
||||||
|
|
||||||
await _auth.Authenticate(mech, kvs).ConfigureAwait(false);
|
await _auth.Authenticate(mech, kvs);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -57,7 +57,7 @@ namespace FabAccessAPI {
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>A wrapped capability to interact with machines</returns>
|
/// <returns>A wrapped capability to interact with machines</returns>
|
||||||
public async Task<Machines> AccessMachines() {
|
public async Task<Machines> AccessMachines() {
|
||||||
_machines ??= new Machines((await _bootstrapCap.Machines().ConfigureAwait(false)));
|
_machines ??= new Machines(await _bootstrapCap.Machines());
|
||||||
return _machines;
|
return _machines;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
using FabAccessAPI.Schema;
|
using FabAccessAPI.Schema;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace FabAccessAPI {
|
namespace FabAccessAPI
|
||||||
|
{
|
||||||
|
|
||||||
public class MachineException : Exception { }
|
public class MachineException : Exception { }
|
||||||
|
|
||||||
@ -12,12 +12,8 @@ namespace FabAccessAPI {
|
|||||||
/// Wraps a capability for accessing the Machines subsystem of BFFH
|
/// Wraps a capability for accessing the Machines subsystem of BFFH
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Machines {
|
public class Machines {
|
||||||
#region Log
|
|
||||||
private static readonly log4net.ILog _Log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
|
private readonly IMachines _machinesCap;
|
||||||
private IMachines _machinesCap;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Constructs the Wrapper Class from a given capability.
|
/// Constructs the Wrapper Class from a given capability.
|
||||||
@ -31,8 +27,16 @@ namespace FabAccessAPI {
|
|||||||
/// List of all machines that BFFH knows about the user has been granted at least read access on
|
/// List of all machines that BFFH knows about the user has been granted at least read access on
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>ReadOnlyList of available Machines</returns>
|
/// <returns>ReadOnlyList of available Machines</returns>
|
||||||
public async Task<IReadOnlyList<Machine>?> ListMachines() {
|
public async Task<IReadOnlyList<Machine>?> ListMachines()
|
||||||
return (await _machinesCap.ListMachines().ConfigureAwait(false)).Select(x => new Machine(x)) as IReadOnlyList<Machine>;
|
{
|
||||||
|
IReadOnlyList<Schema.Machine>? machineList = await _machinesCap.ListMachines().ConfigureAwait(false);
|
||||||
|
List<Machine> machineList_new = new List<Machine>();
|
||||||
|
foreach(Schema.Machine machine in machineList)
|
||||||
|
{
|
||||||
|
machineList_new.Add(new Machine(machine));
|
||||||
|
}
|
||||||
|
|
||||||
|
return machineList_new;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -63,7 +67,7 @@ namespace FabAccessAPI {
|
|||||||
/// even have `read` set and are unable to even see if the machine is currently in use.
|
/// even have `read` set and are unable to even see if the machine is currently in use.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Machine {
|
public class Machine {
|
||||||
private Schema.Machine _machine;
|
private readonly Schema.Machine _machine;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Constructs the Wrapper Class from a given capability
|
/// Constructs the Wrapper Class from a given capability
|
||||||
|
@ -1,10 +1,6 @@
|
|||||||
using System;
|
//This is where the permissions subsystem will live
|
||||||
using System.Collections.Generic;
|
namespace FabAccessAPI
|
||||||
using System.Text;
|
{
|
||||||
|
|
||||||
|
|
||||||
//This is where the permissions subsystem will live
|
|
||||||
namespace FabAccessAPI {
|
|
||||||
public class Permissions {
|
public class Permissions {
|
||||||
#region Log
|
#region Log
|
||||||
private static readonly log4net.ILog _Log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
private static readonly log4net.ILog _Log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
@ -1,84 +0,0 @@
|
|||||||
using Capnp.Rpc;
|
|
||||||
using NUnit.Framework;
|
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace FabAccessAPI_Test
|
|
||||||
{
|
|
||||||
public class ConnectionTest
|
|
||||||
{
|
|
||||||
[Test, Repeat(10)]
|
|
||||||
public void IPv4()
|
|
||||||
{
|
|
||||||
UriBuilder builder = new UriBuilder();
|
|
||||||
builder.Host = "127.0.0.1";
|
|
||||||
builder.Port = 59661;
|
|
||||||
|
|
||||||
Uri uri = builder.Uri;
|
|
||||||
|
|
||||||
TcpRpcClient rpcClient = new TcpRpcClient();
|
|
||||||
|
|
||||||
rpcClient.Connect(uri.Host, uri.Port);
|
|
||||||
|
|
||||||
while (rpcClient.State == ConnectionState.Initializing);
|
|
||||||
|
|
||||||
FabAccessAPI.Connection connection = new FabAccessAPI.Connection(rpcClient);
|
|
||||||
|
|
||||||
Assert.AreEqual(ConnectionState.Active, connection.RpcClient.State);
|
|
||||||
|
|
||||||
rpcClient.Dispose();
|
|
||||||
Assert.AreEqual(ConnectionState.Down, connection.RpcClient.State);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test, Repeat(10)]
|
|
||||||
public void IPv6()
|
|
||||||
{
|
|
||||||
UriBuilder builder = new UriBuilder();
|
|
||||||
builder.Host = "[::1]";
|
|
||||||
builder.Port = 59661;
|
|
||||||
|
|
||||||
Uri uri = builder.Uri;
|
|
||||||
|
|
||||||
TcpRpcClient rpcClient = new TcpRpcClient();
|
|
||||||
|
|
||||||
rpcClient.Connect(uri.Host, uri.Port);
|
|
||||||
|
|
||||||
while (rpcClient.State == ConnectionState.Initializing) ;
|
|
||||||
|
|
||||||
FabAccessAPI.Connection connection = new FabAccessAPI.Connection(rpcClient);
|
|
||||||
|
|
||||||
Assert.AreEqual(ConnectionState.Active, connection.RpcClient.State);
|
|
||||||
|
|
||||||
rpcClient.Dispose();
|
|
||||||
Assert.AreEqual(ConnectionState.Down, connection.RpcClient.State);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test, Repeat(10)]
|
|
||||||
public void DoubleConnect()
|
|
||||||
{
|
|
||||||
TcpRpcClient rpcClient = new TcpRpcClient();
|
|
||||||
|
|
||||||
rpcClient.Connect("127.0.0.1", 59661);
|
|
||||||
|
|
||||||
while (rpcClient.State == ConnectionState.Initializing) ;
|
|
||||||
|
|
||||||
FabAccessAPI.Connection connection = new FabAccessAPI.Connection(rpcClient);
|
|
||||||
|
|
||||||
Assert.AreEqual(ConnectionState.Active, connection.RpcClient.State);
|
|
||||||
|
|
||||||
rpcClient.Dispose();
|
|
||||||
Assert.AreEqual(ConnectionState.Down, connection.RpcClient.State);
|
|
||||||
|
|
||||||
rpcClient = new TcpRpcClient();
|
|
||||||
|
|
||||||
rpcClient.Connect("127.0.0.1", 59661);
|
|
||||||
|
|
||||||
connection = new FabAccessAPI.Connection(rpcClient);
|
|
||||||
while (rpcClient.State == ConnectionState.Initializing) ;
|
|
||||||
|
|
||||||
Assert.AreEqual(ConnectionState.Active, connection.RpcClient.State);
|
|
||||||
|
|
||||||
rpcClient.Dispose();
|
|
||||||
Assert.AreEqual(ConnectionState.Down, connection.RpcClient.State);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,4 +1,3 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
@ -7,6 +6,7 @@ using Capnp;
|
|||||||
using Capnp.Rpc;
|
using Capnp.Rpc;
|
||||||
using log4net.Config;
|
using log4net.Config;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using static FabAccessAPI.Schema.Machine.WriteInterface;
|
||||||
|
|
||||||
namespace FabAccessAPI_Test {
|
namespace FabAccessAPI_Test {
|
||||||
public class Tests {
|
public class Tests {
|
||||||
@ -31,7 +31,7 @@ namespace FabAccessAPI_Test {
|
|||||||
|
|
||||||
[SetUp]
|
[SetUp]
|
||||||
public void Setup() {
|
public void Setup() {
|
||||||
var rpcClient = new TcpRpcClient();
|
TcpRpcClient rpcClient = new TcpRpcClient();
|
||||||
rpcClient.Connect("[::1]", 59661);
|
rpcClient.Connect("[::1]", 59661);
|
||||||
_connection = new Connection(rpcClient);
|
_connection = new Connection(rpcClient);
|
||||||
}
|
}
|
||||||
@ -53,15 +53,48 @@ namespace FabAccessAPI_Test {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public async Task Machines() {
|
public async Task GetMInfo() {
|
||||||
await _connection.Auth("PLAIN", new Dictionary<string, object>{{"Username", "Testuser"}, {"Password", "secret"}});
|
await _connection.Auth("PLAIN", new Dictionary<string, object>{{"Username", "Testuser"}, {"Password", "secret"}});
|
||||||
var machines = await _connection.AccessMachines();
|
Machines machines = await _connection.AccessMachines();
|
||||||
|
|
||||||
var testmachine = await machines.GetMachine("Testmachine");
|
Machine testmachine = await machines.GetMachine("Testmachine");
|
||||||
Assert.NotNull(testmachine);
|
Assert.NotNull(testmachine);
|
||||||
var minfo = await testmachine.GetMInfo();
|
|
||||||
|
FabAccessAPI.Schema.Machine.MInfo minfo = await testmachine.GetMInfo();
|
||||||
Assert.NotNull(minfo);
|
Assert.NotNull(minfo);
|
||||||
_Log.Info($"Name: {minfo.Name}, Description: {minfo.Description}, State: {minfo.State}");
|
_Log.Info($"Name: {minfo.Name}, Description: {minfo.Description}, State: {minfo.State}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public async Task ListMachines()
|
||||||
|
{
|
||||||
|
await _connection.Auth("PLAIN", new Dictionary<string, object> { { "Username", "Testuser" }, { "Password", "secret" } });
|
||||||
|
Machines machines = await _connection.AccessMachines();
|
||||||
|
|
||||||
|
IReadOnlyList<Machine> machineList = await machines.ListMachines();
|
||||||
|
Assert.NotNull(machineList);
|
||||||
|
Assert.AreNotEqual(0, machineList.Count);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public async Task UseMachine()
|
||||||
|
{
|
||||||
|
await _connection.Auth("PLAIN", new Dictionary<string, object> { { "Username", "Testuser" }, { "Password", "secret" } });
|
||||||
|
Machines machines = await _connection.AccessMachines();
|
||||||
|
|
||||||
|
Machine testmachine = await machines.GetMachine("Testmachine");
|
||||||
|
Assert.NotNull(testmachine);
|
||||||
|
|
||||||
|
await testmachine.Use();
|
||||||
|
|
||||||
|
FabAccessAPI.Schema.Machine.MInfo minfo = await testmachine.GetMInfo();
|
||||||
|
Assert.NotNull(minfo);
|
||||||
|
Assert.AreEqual(FabAccessAPI.Schema.State.inUse, minfo.State);
|
||||||
|
|
||||||
|
//await giveBack.Ret();
|
||||||
|
//minfo = await testmachine.GetMInfo();
|
||||||
|
//Assert.NotNull(minfo);
|
||||||
|
//Assert.AreEqual(FabAccessAPI.Schema.State.free, minfo.State);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -9,8 +9,8 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.Extensions.Logging.Log4Net.AspNetCore" Version="5.0.0" />
|
<PackageReference Include="Microsoft.Extensions.Logging.Log4Net.AspNetCore" Version="5.0.0" />
|
||||||
<PackageReference Include="NUnit" Version="3.12.0" />
|
<PackageReference Include="NUnit" Version="3.12.0" />
|
||||||
<PackageReference Include="NUnit3TestAdapter" Version="3.16.1" />
|
<PackageReference Include="NUnit3TestAdapter" Version="3.17.0" />
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -8,6 +8,6 @@
|
|||||||
<PackageReference Include="log4net" Version="2.0.12" />
|
<PackageReference Include="log4net" Version="2.0.12" />
|
||||||
<PackageReference Include="PCSC" Version="5.0.0" />
|
<PackageReference Include="PCSC" Version="5.0.0" />
|
||||||
<PackageReference Include="PCSC.Iso7816" Version="5.0.0" />
|
<PackageReference Include="PCSC.Iso7816" Version="5.0.0" />
|
||||||
<PackageReference Include="Portable.BouncyCastle" Version="1.8.8" />
|
<PackageReference Include="Portable.BouncyCastle" Version="1.8.9" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -1,7 +1,4 @@
|
|||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace NFC_Unit_Test.Crypto
|
namespace NFC_Unit_Test.Crypto
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user