Merge branch 'feature/iOSQR' into 'main'

QR Scanning on iOS

See merge request fabinfra/fabaccess/borepin!46
This commit is contained in:
TheJoKlLa 2022-04-20 18:49:26 +00:00
commit a7faf50575
24 changed files with 365 additions and 224 deletions

View File

@ -67,8 +67,8 @@
<PackageReference Include="Prism.DryIoc.Forms">
<Version>8.1.97</Version>
</PackageReference>
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2291" />
<PackageReference Include="Xamarin.Essentials" Version="1.7.0" />
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2401" />
<PackageReference Include="Xamarin.Essentials" Version="1.7.2" />
</ItemGroup>
<ItemGroup>
<Compile Include="MainActivity.cs" />

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\..\packages\Xamarin.Forms.5.0.0.2291\build\Xamarin.Forms.props" Condition="Exists('..\..\packages\Xamarin.Forms.5.0.0.2291\build\Xamarin.Forms.props')" />
<Import Project="..\..\packages\Xamarin.Forms.5.0.0.2401\build\Xamarin.Forms.props" Condition="Exists('..\..\packages\Xamarin.Forms.5.0.0.2401\build\Xamarin.Forms.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@ -42,8 +42,8 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\GtkSharp\2.12\lib\gtk-sharp-2.0\atk-sharp.dll</HintPath>
</Reference>
<Reference Include="DryIoc, Version=4.8.4.0, Culture=neutral, PublicKeyToken=dfbf2bd50fcf7768, processorArchitecture=MSIL">
<HintPath>..\..\packages\DryIoc.dll.4.8.4\lib\net45\DryIoc.dll</HintPath>
<Reference Include="DryIoc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=dfbf2bd50fcf7768, processorArchitecture=MSIL">
<HintPath>..\..\packages\DryIoc.dll.5.0.0\lib\net45\DryIoc.dll</HintPath>
</Reference>
<Reference Include="gdk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
@ -83,6 +83,9 @@
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
@ -90,19 +93,19 @@
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
<Reference Include="webkit-sharp, Version=1.1.15.0, Culture=neutral, PublicKeyToken=eaa1d335d2e19745, processorArchitecture=MSIL">
<HintPath>..\..\packages\Xamarin.Forms.Platform.GTK.5.0.0.2291\lib\net45\webkit-sharp.dll</HintPath>
<HintPath>..\..\packages\Xamarin.Forms.Platform.GTK.5.0.0.2401\lib\net45\webkit-sharp.dll</HintPath>
</Reference>
<Reference Include="Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\Xamarin.Forms.5.0.0.2291\lib\netstandard2.0\Xamarin.Forms.Core.dll</HintPath>
<HintPath>..\..\packages\Xamarin.Forms.5.0.0.2401\lib\netstandard2.0\Xamarin.Forms.Core.dll</HintPath>
</Reference>
<Reference Include="Xamarin.Forms.Platform, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\Xamarin.Forms.5.0.0.2291\lib\netstandard2.0\Xamarin.Forms.Platform.dll</HintPath>
<HintPath>..\..\packages\Xamarin.Forms.5.0.0.2401\lib\netstandard2.0\Xamarin.Forms.Platform.dll</HintPath>
</Reference>
<Reference Include="Xamarin.Forms.Platform.GTK, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\Xamarin.Forms.Platform.GTK.5.0.0.2291\lib\net45\Xamarin.Forms.Platform.GTK.dll</HintPath>
<HintPath>..\..\packages\Xamarin.Forms.Platform.GTK.5.0.0.2401\lib\net45\Xamarin.Forms.Platform.GTK.dll</HintPath>
</Reference>
<Reference Include="Xamarin.Forms.Xaml, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\Xamarin.Forms.5.0.0.2291\lib\netstandard2.0\Xamarin.Forms.Xaml.dll</HintPath>
<HintPath>..\..\packages\Xamarin.Forms.5.0.0.2401\lib\netstandard2.0\Xamarin.Forms.Xaml.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
@ -129,10 +132,10 @@
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<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>
<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>
</PropertyGroup>
<Error Condition="!Exists('..\..\packages\Xamarin.Forms.5.0.0.2291\build\Xamarin.Forms.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.5.0.0.2291\build\Xamarin.Forms.props'))" />
<Error Condition="!Exists('..\..\packages\Xamarin.Forms.5.0.0.2291\build\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.5.0.0.2291\build\Xamarin.Forms.targets'))" />
<Error Condition="!Exists('..\..\packages\Xamarin.Forms.5.0.0.2401\build\Xamarin.Forms.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.5.0.0.2401\build\Xamarin.Forms.props'))" />
<Error Condition="!Exists('..\..\packages\Xamarin.Forms.5.0.0.2401\build\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.5.0.0.2401\build\Xamarin.Forms.targets'))" />
</Target>
<Import Project="..\..\packages\Xamarin.Forms.5.0.0.2291\build\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.5.0.0.2291\build\Xamarin.Forms.targets')" />
<Import Project="..\..\packages\Xamarin.Forms.5.0.0.2401\build\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.5.0.0.2401\build\Xamarin.Forms.targets')" />
</Project>

View File

@ -12,7 +12,7 @@
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="DryIoc" publicKeyToken="dfbf2bd50fcf7768" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.8.4.0" newVersion="4.8.4.0" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>

View File

@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="DryIoc.dll" version="4.8.4" targetFramework="net48" />
<package id="DryIoc.dll" version="5.0.0" targetFramework="net48" />
<package id="OpenTK" version="3.2" targetFramework="net48" />
<package id="Prism.Core" version="8.1.97" targetFramework="net48" />
<package id="Prism.DryIoc.Forms" version="8.1.97" targetFramework="net48" />
<package id="Prism.Forms" version="8.1.97" targetFramework="net48" />
<package id="Xamarin.Forms" version="5.0.0.2291" targetFramework="net48" />
<package id="Xamarin.Forms.Platform.GTK" version="5.0.0.2291" targetFramework="net48" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net48" />
<package id="Xamarin.Forms" version="5.0.0.2401" targetFramework="net48" />
<package id="Xamarin.Forms.Platform.GTK" version="5.0.0.2401" targetFramework="net48" />
</packages>

View File

@ -179,9 +179,9 @@
<PackageReference Include="Prism.DryIoc.Forms">
<Version>8.1.97</Version>
</PackageReference>
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2291" />
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2401" />
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform" Version="6.2.13" />
<PackageReference Include="Xamarin.Essentials" Version="1.7.0" />
<PackageReference Include="Xamarin.Essentials" Version="1.7.2" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Borepin\Borepin.csproj">

View File

@ -50,7 +50,7 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<MtouchArch>ARM64</MtouchArch>
<MtouchDebug>true</MtouchDebug>
<MtouchDebug>false</MtouchDebug>
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
<MtouchLink>None</MtouchLink>
<MtouchInterpreter>
@ -185,9 +185,9 @@
<PackageReference Include="Prism.DryIoc.Forms">
<Version>8.1.97</Version>
</PackageReference>
<PackageReference Include="Xamarin.Essentials" Version="1.7.0" />
<PackageReference Include="Xamarin.Essentials" Version="1.7.2" />
<PackageReference Include="Xamarin.Forms">
<Version>5.0.0.2291</Version>
<Version>5.0.0.2401</Version>
</PackageReference>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\..\packages\Xamarin.Forms.5.0.0.2291\build\Xamarin.Forms.props" Condition="Exists('..\..\packages\Xamarin.Forms.5.0.0.2291\build\Xamarin.Forms.props')" />
<Import Project="..\..\packages\Xamarin.Forms.5.0.0.2401\build\Xamarin.Forms.props" Condition="Exists('..\..\packages\Xamarin.Forms.5.0.0.2401\build\Xamarin.Forms.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@ -59,6 +59,9 @@
</XamMacArch>
</PropertyGroup>
<ItemGroup>
<Reference Include="DryIoc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=dfbf2bd50fcf7768, processorArchitecture=MSIL">
<HintPath>..\..\packages\DryIoc.dll.5.0.0\lib\netstandard2.1\DryIoc.dll</HintPath>
</Reference>
<Reference Include="Prism, Version=8.1.97.5141, Culture=neutral, PublicKeyToken=40ee6c3a2184dc59, processorArchitecture=MSIL">
<HintPath>..\..\packages\Prism.Core.8.1.97\lib\netstandard2.0\Prism.dll</HintPath>
</Reference>
@ -71,16 +74,16 @@
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="Xamarin.Forms.Core, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\Xamarin.Forms.5.0.0.2291\lib\Xamarin.Mac\Xamarin.Forms.Core.dll</HintPath>
<HintPath>..\..\packages\Xamarin.Forms.5.0.0.2401\lib\Xamarin.Mac\Xamarin.Forms.Core.dll</HintPath>
</Reference>
<Reference Include="Xamarin.Forms.Platform, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\Xamarin.Forms.5.0.0.2291\lib\Xamarin.Mac\Xamarin.Forms.Platform.dll</HintPath>
<HintPath>..\..\packages\Xamarin.Forms.5.0.0.2401\lib\Xamarin.Mac\Xamarin.Forms.Platform.dll</HintPath>
</Reference>
<Reference Include="Xamarin.Forms.Platform.macOS, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\Xamarin.Forms.5.0.0.2291\lib\Xamarin.Mac\Xamarin.Forms.Platform.macOS.dll</HintPath>
<HintPath>..\..\packages\Xamarin.Forms.5.0.0.2401\lib\Xamarin.Mac\Xamarin.Forms.Platform.macOS.dll</HintPath>
</Reference>
<Reference Include="Xamarin.Forms.Xaml, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\Xamarin.Forms.5.0.0.2291\lib\Xamarin.Mac\Xamarin.Forms.Xaml.dll</HintPath>
<HintPath>..\..\packages\Xamarin.Forms.5.0.0.2401\lib\Xamarin.Mac\Xamarin.Forms.Xaml.dll</HintPath>
</Reference>
<Reference Include="Xamarin.Mac" />
</ItemGroup>
@ -128,10 +131,10 @@
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Mac\Xamarin.Mac.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<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>
<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>
</PropertyGroup>
<Error Condition="!Exists('..\..\packages\Xamarin.Forms.5.0.0.2291\build\Xamarin.Forms.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.5.0.0.2291\build\Xamarin.Forms.props'))" />
<Error Condition="!Exists('..\..\packages\Xamarin.Forms.5.0.0.2291\build\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.5.0.0.2291\build\Xamarin.Forms.targets'))" />
<Error Condition="!Exists('..\..\packages\Xamarin.Forms.5.0.0.2401\build\Xamarin.Forms.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.5.0.0.2401\build\Xamarin.Forms.props'))" />
<Error Condition="!Exists('..\..\packages\Xamarin.Forms.5.0.0.2401\build\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.5.0.0.2401\build\Xamarin.Forms.targets'))" />
</Target>
<Import Project="..\..\packages\Xamarin.Forms.5.0.0.2291\build\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.5.0.0.2291\build\Xamarin.Forms.targets')" />
<Import Project="..\..\packages\Xamarin.Forms.5.0.0.2401\build\Xamarin.Forms.targets" Condition="Exists('..\..\packages\Xamarin.Forms.5.0.0.2401\build\Xamarin.Forms.targets')" />
</Project>

View File

@ -8,7 +8,7 @@
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="DryIoc" publicKeyToken="dfbf2bd50fcf7768" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.8.1.0" newVersion="4.8.1.0" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="DryIoc.dll" version="4.8.4" targetFramework="xamarinmac20" />
<package id="DryIoc.dll" version="5.0.0" targetFramework="xamarinmac20" />
<package id="Prism.Core" version="8.1.97" targetFramework="xamarinmac20" />
<package id="Prism.DryIoc.Forms" version="8.1.97" targetFramework="xamarinmac20" />
<package id="Prism.Forms" version="8.1.97" targetFramework="xamarinmac20" />
<package id="System.Reflection.Emit.Lightweight" version="4.7.0" targetFramework="xamarinmac20" />
<package id="Xamarin.Forms" version="5.0.0.2291" targetFramework="xamarinmac20" />
<package id="Xamarin.Forms" version="5.0.0.2401" targetFramework="xamarinmac20" />
</packages>

View File

@ -11,6 +11,7 @@ using Borepin.PageModel.SetUpProcess;
using Borepin.Page.AddServerProcess;
using Borepin.PageModel.AddServerProcess;
using System;
using Prism.Navigation;
namespace Borepin
{
@ -25,6 +26,11 @@ namespace Borepin
{
InitializeComponent();
INavigationParameters parameters = new NavigationParameters()
{
{ "instance", 0 },
};
await NavigationService.NavigateAsync(new Uri("https://borepin.fab-access.org/StartPage")).ConfigureAwait(false);
}
@ -41,12 +47,12 @@ namespace Borepin
containerRegistry.RegisterForNavigation<MachineListPage, MachineListPageModel>();
containerRegistry.RegisterForNavigation<ServerListPage, ServerListPageModel>();
containerRegistry.RegisterForNavigation<ServerPage, ServerPageModel>();
containerRegistry.RegisterForNavigation<ScannerPage>();
containerRegistry.RegisterForNavigation<ScanPage, ScanPageModel>("ScanPage");
containerRegistry.RegisterForNavigation<ScanPage, ScanURNPageModel>("ScanURNPage");
#endregion
#region Register Sequence Navigation
containerRegistry.RegisterForNavigation<WelcomePage, WelcomePageModel>("SetUpProcess_WelcomePage");
//containerRegistry.RegisterForNavigation<ScanPage, ScanPageModel>("SetUpProcess_ScanPage");
containerRegistry.RegisterForNavigation<AuthPlainPage, AuthPlainPageModel>("AddServerProcess_AuthPlainPage");
containerRegistry.RegisterForNavigation<SelectServerPage, SelectServerPageModel>("AddServerProcess_SelectServerPage");

View File

@ -25,7 +25,7 @@
<None Remove="Behaviour\**" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Meziantou.Analyzer" Version="1.0.681">
<PackageReference Include="Meziantou.Analyzer" Version="1.0.700">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
@ -33,7 +33,7 @@
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="Plugin.Multilingual" Version="1.0.2" />
<PackageReference Include="Prism.DryIoc.Forms" Version="8.1.97" />
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2291" />
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2401" />
<PackageReference Include="System.Numerics.Vectors" Version="4.5.0" />
<PackageReference Include="ZXing.Net.MobileX.Forms" Version="3.0.1" />
</ItemGroup>
@ -101,7 +101,7 @@
<EmbeddedResource Update="Page\MainPage.xaml">
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
</EmbeddedResource>
<EmbeddedResource Update="Page\ScannerPage.xaml">
<EmbeddedResource Update="Page\ScanPage.xaml">
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
</EmbeddedResource>
<EmbeddedResource Update="Page\ServerListPage.xaml">

View File

@ -24,7 +24,7 @@
<Button Text="Scan QR-Code" Command="{Binding ScanCodeCommand}" Style="{StaticResource Style_Button_Primary}">
<Button.IsVisible>
<OnPlatform x:TypeArguments="x:Boolean"
iOS="False"
iOS="True"
Android="True"/>
</Button.IsVisible>
</Button>

View File

@ -0,0 +1,12 @@
<?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:zxing="clr-namespace:ZXing.Net.Mobile.Forms;assembly=ZXing.Net.Mobile.Forms"
x:Class="Borepin.Page.ScanPage">
<ContentPage.Content>
<StackLayout IsVisible="{Binding IsVisible}">
<zxing:ZXingScannerView Result="{Binding ScanResult, Mode=TwoWay}" ScanResultCommand="{Binding ScannedCommand}" IsScanning="{Binding IsScanning}" WidthRequest="300" HeightRequest="500" VerticalOptions="CenterAndExpand" HorizontalOptions="CenterAndExpand"/>
<Button Text="Abort" Command="{Binding AbortCommand}"/>
</StackLayout>
</ContentPage.Content>
</ContentPage>

View File

@ -0,0 +1,20 @@
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 ScanPage : ContentPage
{
public ScanPage()
{
InitializeComponent();
}
}
}

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<zxing:ZXingScannerPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Borepin.Page.ScannerPage"
xmlns:zxing="clr-namespace:ZXing.Net.Mobile.Forms;assembly=ZXing.Net.Mobile.Forms"
Title="Full screen"
OnScanResult="Handle_OnScanResult"
IsScanning="true">
</zxing:ZXingScannerPage>

View File

@ -1,44 +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;
using ZXing;
using ZXing.Net.Mobile.Forms;
namespace Borepin.Page
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class ScannerPage : ZXingScannerPage
{
public ScannerPage()
{
InitializeComponent();
}
public void Handle_OnScanResult(Result result)
{
Device.BeginInvokeOnMainThread(async () =>
{
await DisplayAlert("Scanned result", result.Text, "OK").ConfigureAwait(false);
});
}
protected override void OnAppearing()
{
base.OnAppearing();
IsScanning = true;
}
protected override void OnDisappearing()
{
base.OnDisappearing();
IsScanning = false;
}
}
}

View File

@ -1,16 +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.SetUpProcess.ScanPage"
xmlns:i18n="clr-namespace:Borepin.Helpers"
xmlns:views="clr-namespace:Borepin.View"
Title="FabAccess">
<ContentPage.Content>
<ScrollView>
<StackLayout Style="{StaticResource Style_StackLayout_Content}">
<Label Text="{i18n:Translate SetUp_ScanPage_Text}" Style="{StaticResource Style_Label_Text_Center}"/>
<Button Text="{i18n:Translate SetUp_ScanPage_Button}" Command="{Binding NextCommand}" Style="{StaticResource Style_Button_Primary}"/>
</StackLayout>
</ScrollView>
</ContentPage.Content>
</ContentPage>

View File

@ -9,7 +9,6 @@ using Borepin.Base;
using FabAccessAPI.Schema;
using Prism.Services.Dialogs;
using Prism.Services;
using Prism.AppModel;
using static FabAccessAPI.Schema.Machine;
using System;
using NaturalSort.Extension;
@ -17,7 +16,7 @@ using System.Linq;
namespace Borepin.PageModel
{
public class MachineListPageModel : ConnectionModelBase, IPageLifecycleAware
public class MachineListPageModel : ConnectionModelBase
{
#region Private Fields
private readonly IDialogService _DialogService;
@ -31,7 +30,7 @@ namespace Borepin.PageModel
_DialogService = dialogService;
SelectInstanceCommand = new DelegateCommand<object>(SelectInstanceCommandExecute);
ScanCodeCommand = new DelegateCommand(ScanCodeCommandExecute);
ScanCodeCommand = new DelegateCommand(async () => await ScanCodeCommandExecute().ConfigureAwait(false));
RefreshCommand = new DelegateCommand(async ()=> await RefreshCommandExecute().ConfigureAwait(true));
}
#endregion
@ -138,60 +137,11 @@ namespace Borepin.PageModel
get => _ScanCodeCommand;
set => SetProperty(ref _ScanCodeCommand, value);
}
public void ScanCodeCommandExecute()
public async Task ScanCodeCommandExecute()
{
IsBusy = true;
_DialogService.ShowDialog("ScanDialog", ScanCodeCommandExecute_Dialog);
}
public async void ScanCodeCommandExecute_Dialog(IDialogResult result)
{
if (string.Equals(result.Parameters.GetValue<string>("result"), "scanned", System.StringComparison.Ordinal))
{
if (! _BFFHService.IsConnected)
{
IsConnected = false;
IsBusy = false;
return;
}
IMachineSystem machineInterface = (await _BFFHService.GetSession().ConfigureAwait(false)).MachineSystem;
MachineSystem.IInfoInterface infoInterface = await machineInterface.Info().ConfigureAwait(false);
Machine machine = await infoInterface.GetMachineURN(result.Parameters.GetValue<string>("value")).ConfigureAwait(false);
if(machine == null)
{
IsBusy = false;
return;
}
_NextMachine = machine;
IsBusy = false;
}
}
#endregion
#region IPageLifecycleAware
public async void OnAppearing()
{
if(_NextMachine != null)
{
NavigationParameters parameters = new NavigationParameters
{
{ "id", _NextMachine.Id},
};
_NextMachine = null;
await _NavigationService.NavigateAsync("MachinePage", parameters).ConfigureAwait(false);
}
}
public void OnDisappearing()
{
await _NavigationService.NavigateAsync("ScanURNPage").ConfigureAwait(false);
}
#endregion
@ -204,6 +154,7 @@ namespace Borepin.PageModel
public override async void OnNavigatedTo(INavigationParameters parameters)
{
IsBusy = true;
await LoadData().ConfigureAwait(false);
}
#endregion

View File

@ -0,0 +1,120 @@
using Borepin.Base;
using Prism.Commands;
using Prism.Navigation;
using System;
using System.Threading.Tasks;
using System.Windows.Input;
using Xamarin.Forms;
using ZXing;
namespace Borepin.PageModel
{
class ScanPageModel : PageModelBase
{
#region Private Fields
private object _Instance;
private readonly INavigationService _NavigationService;
#endregion
#region Contructors
public ScanPageModel(INavigationService navigationService) : base(navigationService)
{
_NavigationService = navigationService;
AbortCommand = new DelegateCommand(async () => await AbortCommandExecute().ConfigureAwait(true));
ScannedCommand = new DelegateCommand(ScannedCommandExecute);
IsVisible = true;
IsScanning = true;
}
#endregion
#region Data
public override async Task LoadData()
{
}
#endregion
#region Fields
private Result _ScanResult;
public Result ScanResult
{
get => _ScanResult;
set => SetProperty(ref _ScanResult, value);
}
private bool _IsScanning;
public bool IsScanning
{
get => _IsScanning;
set => SetProperty(ref _IsScanning, value);
}
private bool _IsVisible;
public bool IsVisible
{
get => _IsVisible;
set => SetProperty(ref _IsVisible, value);
}
#endregion
#region Commands
private ICommand _ScannedCommand;
public ICommand ScannedCommand
{
get => _ScannedCommand;
set => SetProperty(ref _ScannedCommand, value);
}
public void ScannedCommandExecute()
{
IsScanning = false;
IsVisible = false;
INavigationParameters parameters = new NavigationParameters()
{
{ "result", "scanned" },
{ "value", ScanResult.Text },
{ "instance", _Instance }
};
Device.BeginInvokeOnMainThread(async () =>
{
INavigationResult result = await _NavigationService.GoBackAsync(parameters).ConfigureAwait(false);
});
}
private ICommand _AbortCommand;
public ICommand AbortCommand
{
get => _AbortCommand;
set => SetProperty(ref _AbortCommand, value);
}
public async Task AbortCommandExecute()
{
IsScanning = false;
IsVisible = false;
INavigationParameters parameters = new NavigationParameters()
{
{ "result", "abort" },
{ "instance", _Instance }
};
await _NavigationService.GoBackAsync(parameters).ConfigureAwait(false);
}
#endregion
#region INavigationService
public override void OnNavigatedFrom(INavigationParameters parameters)
{
}
public override void OnNavigatedTo(INavigationParameters parameters)
{
_Instance = parameters.GetValue<object>("instance");
}
#endregion
}
}

View File

@ -0,0 +1,144 @@
using Borepin.Base;
using Borepin.Service.BFFH;
using FabAccessAPI.Schema;
using Prism.Commands;
using Prism.Navigation;
using Prism.Services;
using System;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Input;
using Xamarin.Forms;
using ZXing;
namespace Borepin.PageModel
{
class ScanURNPageModel : ConnectionModelBase
{
#region Private Fields
private object _Instance;
#endregion
#region Contructors
public ScanURNPageModel(INavigationService navigationService, IPageDialogService pageDialogService, IBFFHService bffhService) : base(navigationService, pageDialogService, bffhService)
{
AbortCommand = new DelegateCommand(async () => await AbortCommandExecute().ConfigureAwait(true));
ScannedCommand = new DelegateCommand(async () => await ScannedCommandExecuteAsync().ConfigureAwait(false));
IsVisible = true;
IsScanning = true;
}
#endregion
#region Data
public override async Task LoadData()
{
}
#endregion
#region Fields
private Result _ScanResult;
public Result ScanResult
{
get => _ScanResult;
set => SetProperty(ref _ScanResult, value);
}
private bool _IsScanning;
public bool IsScanning
{
get => _IsScanning;
set => SetProperty(ref _IsScanning, value);
}
private bool _IsVisible;
public bool IsVisible
{
get => _IsVisible;
set => SetProperty(ref _IsVisible, value);
}
#endregion
#region Commands
private ICommand _ScannedCommand;
public ICommand ScannedCommand
{
get => _ScannedCommand;
set => SetProperty(ref _ScannedCommand, value);
}
public async Task ScannedCommandExecuteAsync()
{
IsScanning = false;
string id = await QRToID(ScanResult.Text).ConfigureAwait(false);
if (id != null)
{
NavigationParameters parameters = new NavigationParameters
{
{ "id", id },
};
Device.BeginInvokeOnMainThread(async () =>
{
INavigationResult result = await _NavigationService.NavigateAsync("/MainPage/NavigationPage/MachineListPage/MachinePage", parameters).ConfigureAwait(false);
});
}
Thread.Sleep(500);
IsScanning = true;
}
public async Task<string> QRToID(string value)
{
if (!_BFFHService.IsConnected)
{
IsConnected = false;
return null;
}
IMachineSystem machineInterface = (await _BFFHService.GetSession().ConfigureAwait(false)).MachineSystem;
MachineSystem.IInfoInterface infoInterface = await machineInterface.Info().ConfigureAwait(false);
Machine machine = await infoInterface.GetMachineURN(value).ConfigureAwait(false);
if (machine == null)
{
return null;
}
return machine.Id;
}
private ICommand _AbortCommand;
public ICommand AbortCommand
{
get => _AbortCommand;
set => SetProperty(ref _AbortCommand, value);
}
public async Task AbortCommandExecute()
{
IsScanning = false;
IsVisible = false;
await _NavigationService.GoBackAsync().ConfigureAwait(false);
}
#endregion
#region INavigationService
public override void OnNavigatedFrom(INavigationParameters parameters)
{
}
public override void OnNavigatedTo(INavigationParameters parameters)
{
}
#endregion
}
}

View File

@ -1,50 +0,0 @@
using Borepin.Base;
using Prism.Commands;
using Prism.Navigation;
using System.Threading.Tasks;
using System.Windows.Input;
namespace Borepin.PageModel.SetUpProcess
{
public class ScanPageModel : PageModelBase
{
#region Constructors
public ScanPageModel(INavigationService navigationService) : base(navigationService)
{
NextCommand = new DelegateCommand<object>(NextCommandCommandExecute);
}
#endregion
#region Data
public override Task LoadData()
{
return Task.CompletedTask;
}
#endregion
#region Commands
private ICommand _NextCommand;
public ICommand NextCommand
{
get => _NextCommand;
set => SetProperty(ref _NextCommand, value);
}
public async void NextCommandCommandExecute(object obj)
{
await _NavigationService.NavigateAsync("AddServerProcess_HostSelectPage").ConfigureAwait(false);
}
#endregion
#region INavigationAware
public override void OnNavigatedFrom(INavigationParameters parameters)
{
}
public override void OnNavigatedTo(INavigationParameters parameters)
{
}
#endregion
}
}

View File

@ -5,10 +5,10 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
<PackageReference Include="NSubstitute" Version="4.2.2" />
<PackageReference Include="NUnit" Version="3.13.2" />
<PackageReference Include="NUnit3TestAdapter" Version="4.1.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
<PackageReference Include="NSubstitute" Version="4.3.0" />
<PackageReference Include="NUnit" Version="3.13.3" />
<PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />
</ItemGroup>
<ItemGroup>

View File

@ -12,8 +12,8 @@
<ItemGroup>
<PackageReference Include="CapnpC.CSharp.MsBuild.Generation" Version="1.3.118" />
<PackageReference Include="log4net" Version="2.0.13" />
<PackageReference Include="Microsoft.Extensions.Logging.Log4Net.AspNetCore" Version="6.0.0" />
<PackageReference Include="log4net" Version="2.0.14" />
<PackageReference Include="Microsoft.Extensions.Logging.Log4Net.AspNetCore" Version="6.1.0" />
</ItemGroup>
<ItemGroup>

View File

@ -7,10 +7,10 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Log4Net.AspNetCore" Version="6.0.0" />
<PackageReference Include="NUnit" Version="3.13.2" />
<PackageReference Include="NUnit3TestAdapter" Version="4.1.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Log4Net.AspNetCore" Version="6.1.0" />
<PackageReference Include="NUnit" Version="3.13.3" />
<PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" />
</ItemGroup>
<ItemGroup>