Move to new API Class and start debugging

This commit is contained in:
TheJoKlLa 2022-05-17 12:57:32 +02:00
parent 0ee3dc8497
commit 3cf84220bf
28 changed files with 188 additions and 268 deletions

View File

@ -68,7 +68,7 @@
<Version>8.1.97</Version> <Version>8.1.97</Version>
</PackageReference> </PackageReference>
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2401" /> <PackageReference Include="Xamarin.Forms" Version="5.0.0.2401" />
<PackageReference Include="Xamarin.Essentials" Version="1.7.2" /> <PackageReference Include="Xamarin.Essentials" Version="1.7.3" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="MainActivity.cs" /> <Compile Include="MainActivity.cs" />

View File

@ -42,8 +42,8 @@
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\GtkSharp\2.12\lib\gtk-sharp-2.0\atk-sharp.dll</HintPath> <HintPath>..\..\..\..\..\..\..\Program Files (x86)\GtkSharp\2.12\lib\gtk-sharp-2.0\atk-sharp.dll</HintPath>
</Reference> </Reference>
<Reference Include="DryIoc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=dfbf2bd50fcf7768, processorArchitecture=MSIL"> <Reference Include="DryIoc, Version=5.0.2.0, Culture=neutral, PublicKeyToken=dfbf2bd50fcf7768, processorArchitecture=MSIL">
<HintPath>..\..\packages\DryIoc.dll.5.0.0\lib\net45\DryIoc.dll</HintPath> <HintPath>..\..\packages\DryIoc.dll.5.0.2\lib\net45\DryIoc.dll</HintPath>
</Reference> </Reference>
<Reference Include="gdk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f, processorArchitecture=MSIL"> <Reference Include="gdk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>

View File

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

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="DryIoc.dll" version="5.0.0" targetFramework="net48" /> <package id="DryIoc.dll" version="5.0.2" targetFramework="net48" />
<package id="OpenTK" version="3.2" targetFramework="net48" /> <package id="OpenTK" version="3.2" targetFramework="net48" />
<package id="Prism.Core" version="8.1.97" 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.DryIoc.Forms" version="8.1.97" targetFramework="net48" />

View File

@ -182,9 +182,13 @@
</PackageReference> </PackageReference>
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2401" /> <PackageReference Include="Xamarin.Forms" Version="5.0.0.2401" />
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform" Version="6.2.13" /> <PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform" Version="6.2.13" />
<PackageReference Include="Xamarin.Essentials" Version="1.7.2" /> <PackageReference Include="Xamarin.Essentials" Version="1.7.3" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\external\capnproto-dotnetcore\Capnp.Net.Runtime\Capnp.Net.Runtime.csproj">
<Project>{c587aac3-50a7-4871-a50d-7880b6f24ef6}</Project>
<Name>Capnp.Net.Runtime</Name>
</ProjectReference>
<ProjectReference Include="..\..\FabAccessAPI\FabAccessAPI.csproj"> <ProjectReference Include="..\..\FabAccessAPI\FabAccessAPI.csproj">
<Project>{3251FCE9-FEA3-4662-8BEB-636BE6732D48}</Project> <Project>{3251FCE9-FEA3-4662-8BEB-636BE6732D48}</Project>
<Name>FabAccessAPI</Name> <Name>FabAccessAPI</Name>

View File

@ -186,7 +186,7 @@
<PackageReference Include="Prism.DryIoc.Forms"> <PackageReference Include="Prism.DryIoc.Forms">
<Version>8.1.97</Version> <Version>8.1.97</Version>
</PackageReference> </PackageReference>
<PackageReference Include="Xamarin.Essentials" Version="1.7.2" /> <PackageReference Include="Xamarin.Essentials" Version="1.7.3" />
<PackageReference Include="Xamarin.Forms"> <PackageReference Include="Xamarin.Forms">
<Version>5.0.0.2401</Version> <Version>5.0.0.2401</Version>
</PackageReference> </PackageReference>

View File

@ -59,8 +59,8 @@
</XamMacArch> </XamMacArch>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="DryIoc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=dfbf2bd50fcf7768, processorArchitecture=MSIL"> <Reference Include="DryIoc, Version=5.0.2.0, Culture=neutral, PublicKeyToken=dfbf2bd50fcf7768, processorArchitecture=MSIL">
<HintPath>..\..\packages\DryIoc.dll.5.0.0\lib\netstandard2.1\DryIoc.dll</HintPath> <HintPath>..\..\packages\DryIoc.dll.5.0.2\lib\netstandard2.1\DryIoc.dll</HintPath>
</Reference> </Reference>
<Reference Include="Prism, Version=8.1.97.5141, Culture=neutral, PublicKeyToken=40ee6c3a2184dc59, processorArchitecture=MSIL"> <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> <HintPath>..\..\packages\Prism.Core.8.1.97\lib\netstandard2.0\Prism.dll</HintPath>

View File

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

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="DryIoc.dll" version="5.0.0" targetFramework="xamarinmac20" /> <package id="DryIoc.dll" version="5.0.2" targetFramework="xamarinmac20" />
<package id="Prism.Core" version="8.1.97" 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.DryIoc.Forms" version="8.1.97" targetFramework="xamarinmac20" />
<package id="Prism.Forms" version="8.1.97" targetFramework="xamarinmac20" /> <package id="Prism.Forms" version="8.1.97" targetFramework="xamarinmac20" />

View File

@ -12,14 +12,12 @@ namespace Borepin.Base
public abstract class ConnectionModelBase : PageModelBase public abstract class ConnectionModelBase : PageModelBase
{ {
#region Private Fields #region Private Fields
protected readonly IPageDialogService _PageDialogService;
protected readonly IAPI _API; protected readonly IAPI _API;
#endregion #endregion
#region Constructors #region Constructors
protected ConnectionModelBase(INavigationService navigationService, IPageDialogService pageDialogService, IAPIService apiService) : base(navigationService) protected ConnectionModelBase(INavigationService navigationService, IPageDialogService pageDialogService, IAPIService apiService) : base(navigationService, pageDialogService)
{ {
_PageDialogService = pageDialogService;
_API = apiService.GetAPI(); _API = apiService.GetAPI();
_API.ConnectionStatusChanged += OnConnectionStatusChanged; _API.ConnectionStatusChanged += OnConnectionStatusChanged;
@ -54,16 +52,6 @@ namespace Borepin.Base
{ {
return Task.CompletedTask; return Task.CompletedTask;
} }
public virtual Task LoadInstance(object instance)
{
return Task.CompletedTask;
}
public virtual Task<object> CreateInstance()
{
return Task.FromResult<object>(null);
}
#endregion #endregion
#region Fields #region Fields
@ -79,30 +67,13 @@ namespace Borepin.Base
#endregion #endregion
#region INavigationAware #region INavigationAware
public override void OnNavigatedTo(INavigationParameters parameters) public override async Task OnNavigatedToVirtual(INavigationParameters parameters)
{ {
if(parameters.ContainsKey("instance")) await base.OnNavigatedToVirtual(parameters).ConfigureAwait(false);
{
LoadInstance(parameters.GetValue<object>("instance"));
}
else
{
Log.Trace("No instance");
LoadInstance(null);
}
if(_API.IsConnected) if(_API.IsConnected)
{ {
LoadAPIData(); await LoadAPIData().ConfigureAwait(false);
}
}
public override void OnNavigatedFrom(INavigationParameters parameters)
{
object instance = CreateInstance();
if(instance != null)
{
parameters.Add("instance", instance);
} }
} }
#endregion #endregion

View File

@ -1,6 +1,8 @@
using NLog; using NLog;
using Prism.Mvvm; using Prism.Mvvm;
using Prism.Navigation; using Prism.Navigation;
using Prism.Services;
using System.Threading.Tasks;
namespace Borepin.Base namespace Borepin.Base
{ {
@ -15,10 +17,12 @@ namespace Borepin.Base
#region Private Fields #region Private Fields
protected readonly INavigationService _NavigationService; protected readonly INavigationService _NavigationService;
protected readonly IPageDialogService _PageDialogService;
protected PageModelBase(INavigationService navigationService) protected PageModelBase(INavigationService navigationService, IPageDialogService pageDialogService)
{ {
_NavigationService = navigationService; _NavigationService = navigationService;
_PageDialogService = pageDialogService;
} }
#endregion #endregion
@ -34,9 +38,49 @@ namespace Borepin.Base
} }
#endregion #endregion
#region Mehtods
public virtual Task LoadInstance(object instance)
{
return Task.CompletedTask;
}
public virtual Task<object> CreateInstance()
{
return Task.FromResult<object>(null);
}
#endregion
#region INavigationAware #region INavigationAware
public abstract void OnNavigatedTo(INavigationParameters parameters); public async void OnNavigatedTo(INavigationParameters parameters)
public abstract void OnNavigatedFrom(INavigationParameters parameters); {
await OnNavigatedToVirtual(parameters).ConfigureAwait(false);
IsBusy = false;
}
public async void OnNavigatedFrom(INavigationParameters parameters)
{
await OnNavigatedFromVirtual(parameters).ConfigureAwait(false);
}
public virtual async Task OnNavigatedToVirtual(INavigationParameters parameters)
{
if (parameters.ContainsKey("instance"))
{
await LoadInstance(parameters.GetValue<object>("instance")).ConfigureAwait(false);
}
else
{
Log.Trace("No instance");
await LoadInstance(null).ConfigureAwait(false);
}
}
public virtual async Task OnNavigatedFromVirtual(INavigationParameters parameters)
{
object instance = await CreateInstance().ConfigureAwait(false);
if (instance != null)
{
parameters.Add("instance", instance);
}
}
#endregion #endregion
} }
} }

View File

@ -25,13 +25,13 @@
<None Remove="Behaviour\**" /> <None Remove="Behaviour\**" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Meziantou.Analyzer" Version="1.0.700"> <PackageReference Include="Meziantou.Analyzer" Version="1.0.702">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="NaturalSort.Extension" Version="3.2.0" /> <PackageReference Include="NaturalSort.Extension" Version="3.2.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="NLog" Version="4.7.15" /> <PackageReference Include="NLog" Version="5.0.0" />
<PackageReference Include="Plugin.Multilingual" Version="1.0.2" /> <PackageReference Include="Plugin.Multilingual" Version="1.0.2" />
<PackageReference Include="Prism.DryIoc.Forms" Version="8.1.97" /> <PackageReference Include="Prism.DryIoc.Forms" Version="8.1.97" />
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2401" /> <PackageReference Include="Xamarin.Forms" Version="5.0.0.2401" />

View File

@ -78,7 +78,7 @@ namespace Borepin.PageModel.AddServerProcess
Properties = new Dictionary<string, object>(StringComparer.Ordinal) Properties = new Dictionary<string, object>(StringComparer.Ordinal)
{ {
{ "username", Username }, { "username", Username },
{ "password", Password } { "password", Password },
}, },
}; };

View File

@ -1,6 +1,8 @@
using Borepin.Base; using Borepin.Base;
using Borepin.Model; using Borepin.Base.Exceptions;
using FabAccessAPI;
using Prism.Navigation; using Prism.Navigation;
using Prism.Services;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Input; using System.Windows.Input;
using Xamarin.Forms; using Xamarin.Forms;
@ -10,23 +12,34 @@ namespace Borepin.PageModel.AddServerProcess
public class ChooseAuthTypePageModel : PageModelBase public class ChooseAuthTypePageModel : PageModelBase
{ {
#region Private Fields #region Private Fields
private Connection _Connection; private ConnectionData _ConnectionData;
#endregion #endregion
#region Contructors #region Contructors
public ChooseAuthTypePageModel(INavigationService navigationService) : base(navigationService) public ChooseAuthTypePageModel(INavigationService navigationService, IPageDialogService pageDialogService) : base(navigationService, pageDialogService)
{ {
AuthPlainCommand = new Command(AuthPlainCommandExecute); AuthPlainCommand = new Command(AuthPlainCommandExecute);
} }
#endregion #endregion
#region LoadData #region LoadData
public override Task LoadData() public override Task LoadInstance(object instance)
{ {
IsBusy = false; if(instance is ConnectionData)
{
_ConnectionData = instance as ConnectionData;
}
else
{
throw new InstanceIncorrectException();
}
return Task.CompletedTask; return Task.CompletedTask;
} }
public override Task<object> CreateInstance()
{
return Task.FromResult<object>(_ConnectionData);
}
#endregion #endregion
#region Commands #region Commands
@ -38,37 +51,12 @@ namespace Borepin.PageModel.AddServerProcess
} }
public async void AuthPlainCommandExecute() public async void AuthPlainCommandExecute()
{ {
_Connection.AuthenticationTyp = AuthenticationTyp.PLAIN; _ConnectionData.Mechanism = Mechanism.PLAIN;
INavigationParameters parameters = new NavigationParameters() INavigationResult result = await _NavigationService.NavigateAsync("AddServerProcess_AuthPlainPage").ConfigureAwait(false);
if(result.Exception != null)
{ {
{"instance", _Connection }, Log.Fatal(result.Exception, "Navigating failed");
};
await _NavigationService.NavigateAsync("AddServerProcess_AuthPlainPage", parameters).ConfigureAwait(false);
}
#endregion
#region INavigationAware
public override void OnNavigatedTo(INavigationParameters parameters)
{
if (parameters.ContainsKey("instance") && parameters["instance"] is Connection)
{
_Connection = parameters["instance"] as Connection;
}
else
{
_Connection = new Connection();
}
LoadData();
}
public override void OnNavigatedFrom(INavigationParameters parameters)
{
if (parameters.GetNavigationMode() == NavigationMode.Back)
{
parameters.Add("instance", _Connection);
} }
} }
#endregion #endregion

View File

@ -12,14 +12,14 @@ using System.Windows.Input;
namespace Borepin.PageModel.AddServerProcess namespace Borepin.PageModel.AddServerProcess
{ {
public class SelectServerPageModel : ConnectionModelBase public class SelectServerPageModel : PageModelBase
{ {
#region Private Fields #region Private Fields
private ConnectionData _ConnectionData; private ConnectionData _ConnectionData;
#endregion #endregion
#region Constructors #region Constructors
public SelectServerPageModel(INavigationService navigationService, IPageDialogService pageDialogService, IAPIService apiService) : base(navigationService, pageDialogService, apiService) public SelectServerPageModel(INavigationService navigationService, IPageDialogService pageDialogService) : base(navigationService, pageDialogService)
{ {
ConnectToServerCommand = new DelegateCommand(async () => await ConnectToServerExecute().ConfigureAwait(false)); ConnectToServerCommand = new DelegateCommand(async () => await ConnectToServerExecute().ConfigureAwait(false));
DetectLocalServerCommand = new DelegateCommand(DetectHostCommandExecute); DetectLocalServerCommand = new DelegateCommand(DetectHostCommandExecute);
@ -98,7 +98,8 @@ namespace Borepin.PageModel.AddServerProcess
try try
{ {
await _API.TestConnection(_ConnectionData).ConfigureAwait(true); API api = new API();
await api.TestConnection(_ConnectionData).ConfigureAwait(true);
} }
catch(ConnectingFailedException) catch(ConnectingFailedException)
{ {

View File

@ -31,23 +31,11 @@ namespace Borepin.PageModel
#endregion #endregion
#region Data #region Data
public override async Task LoadData() public override async Task LoadAPIData()
{ {
if (! await CheckConnection().ConfigureAwait(false)) User user_self = await _API.Session.UserSystem.Info.GetUserSelf().ConfigureAwait(false);
{
IsConnected = false;
IsBusy = false; IReadOnlyList<Machine> machine_list = await _API.Session.MachineSystem.Info.GetMachineList().ConfigureAwait(false);
return;
}
IsConnected = true;
MachineSystem machineSystem = (await _BFFHService.GetSession().ConfigureAwait(false)).MachineSystem;
UserSystem userSystem = (await _BFFHService.GetSession().ConfigureAwait(false)).UserSystem;
User user_self = await userSystem.Info.GetUserSelf().ConfigureAwait(false);
IReadOnlyList<Machine> machine_list = await machineSystem.Info.GetMachineList().ConfigureAwait(false);
List<MachineListItemViewModel> viewmodel_list_user_assigned = new List<MachineListItemViewModel>(); List<MachineListItemViewModel> viewmodel_list_user_assigned = new List<MachineListItemViewModel>();
List<MachineListItemViewModel> viewmodel_list_not_user_assigned = new List<MachineListItemViewModel>(); List<MachineListItemViewModel> viewmodel_list_not_user_assigned = new List<MachineListItemViewModel>();
@ -71,8 +59,6 @@ namespace Borepin.PageModel
viewmodel_list_sorted.AddRange(viewmodel_list_user_assigned.OrderBy(x => x.Name, StringComparison.OrdinalIgnoreCase.WithNaturalSort())); viewmodel_list_sorted.AddRange(viewmodel_list_user_assigned.OrderBy(x => x.Name, StringComparison.OrdinalIgnoreCase.WithNaturalSort()));
viewmodel_list_sorted.AddRange(viewmodel_list_not_user_assigned.OrderBy(x => x.Name, StringComparison.OrdinalIgnoreCase.WithNaturalSort())); viewmodel_list_sorted.AddRange(viewmodel_list_not_user_assigned.OrderBy(x => x.Name, StringComparison.OrdinalIgnoreCase.WithNaturalSort()));
MachineListItemViewModel_List = viewmodel_list_sorted; MachineListItemViewModel_List = viewmodel_list_sorted;
IsBusy = false;
} }
#endregion #endregion
@ -101,7 +87,11 @@ namespace Borepin.PageModel
} }
public async Task RefreshCommandExecute() public async Task RefreshCommandExecute()
{ {
await LoadData().ConfigureAwait(true); if(_API.IsConnected)
{
await LoadAPIData().ConfigureAwait(true);
}
IsRefreshing = false; IsRefreshing = false;
} }
@ -143,16 +133,14 @@ namespace Borepin.PageModel
public async void ScanCode_Result(string value) public async void ScanCode_Result(string value)
{ {
if (! _BFFHService.IsConnected) if (! _API.IsConnected)
{ {
IsConnected = false; IsConnected = false;
IsBusy = false; IsBusy = false;
return; return;
} }
MachineSystem machineInterface = (await _BFFHService.GetSession().ConfigureAwait(false)).MachineSystem; Machine machine = (await _API.Session.MachineSystem.Info.GetMachineURN(value).ConfigureAwait(false)).Just;
Machine machine = (await machineInterface.Info.GetMachineURN(value).ConfigureAwait(false)).Just;
if(machine == null) if(machine == null)
{ {
@ -186,19 +174,5 @@ namespace Borepin.PageModel
} }
#endregion #endregion
#region INavigationAware
public override void OnNavigatedFrom(INavigationParameters parameters)
{
}
public override async void OnNavigatedTo(INavigationParameters parameters)
{
IsBusy = true;
await LoadData().ConfigureAwait(false);
}
#endregion
} }
} }

View File

@ -30,8 +30,6 @@ namespace Borepin.PageModel
#region Data #region Data
public override Task LoadInstance(object instance) public override Task LoadInstance(object instance)
{ {
IsBusy = true;
if(instance is string) if(instance is string)
{ {
_ID = instance as string; _ID = instance as string;
@ -41,8 +39,6 @@ namespace Borepin.PageModel
throw new InstanceIncorrectException(); throw new InstanceIncorrectException();
} }
IsBusy = false;
return Task.CompletedTask; return Task.CompletedTask;
} }

View File

@ -1,9 +1,8 @@
using System; using System.Windows.Input;
using System.Threading.Tasks;
using System.Windows.Input;
using Borepin.Base; using Borepin.Base;
using Borepin.Service.Versioning; using Borepin.Service.Versioning;
using Prism.Navigation; using Prism.Navigation;
using Prism.Services;
using Xamarin.Forms; using Xamarin.Forms;
namespace Borepin.PageModel namespace Borepin.PageModel
@ -15,21 +14,13 @@ namespace Borepin.PageModel
#endregion #endregion
#region Constructors #region Constructors
public MainPageModel(INavigationService navigationService, IVersioningService versioningService) : base(navigationService) public MainPageModel(INavigationService navigationService, IPageDialogService pageDialogService, IVersioningService versioningService) : base(navigationService, pageDialogService)
{ {
_VersioningService = versioningService; _VersioningService = versioningService;
NavigateCommand = new Command<string>(NavigateCommandExecute);
}
#endregion
#region LoadData
public override Task LoadData()
{
CurrentVersion = _VersioningService.CurrentVersion; CurrentVersion = _VersioningService.CurrentVersion;
CurrentBuild = _VersioningService.CurrentBuild; CurrentBuild = _VersioningService.CurrentBuild;
return Task.CompletedTask; NavigateCommand = new Command<string>(NavigateCommandExecute);
} }
#endregion #endregion
@ -58,19 +49,11 @@ namespace Borepin.PageModel
} }
public async void NavigateCommandExecute(string view) public async void NavigateCommandExecute(string view)
{ {
await _NavigationService.NavigateAsync($"NavigationPage/{ view }").ConfigureAwait(false); INavigationResult result = await _NavigationService.NavigateAsync($"NavigationPage/{ view }").ConfigureAwait(false);
} if(result.Exception != null)
#endregion {
Log.Fatal(result.Exception, "Navigating failed");
#region INavigationAware }
public override void OnNavigatedFrom(INavigationParameters parameters)
{
}
public override async void OnNavigatedTo(INavigationParameters parameters)
{
await LoadData().ConfigureAwait(false);
} }
#endregion #endregion
} }

View File

@ -1,6 +1,7 @@
using Borepin.Base; using Borepin.Base;
using Prism.Commands; using Prism.Commands;
using Prism.Navigation; using Prism.Navigation;
using Prism.Services;
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Input; using System.Windows.Input;
@ -16,7 +17,7 @@ namespace Borepin.PageModel
#endregion #endregion
#region Contructors #region Contructors
public ScanPageModel(INavigationService navigationService) : base(navigationService) public ScanPageModel(INavigationService navigationService, IPageDialogService pageDialogService) : base(navigationService, pageDialogService)
{ {
AbortCommand = new DelegateCommand(async () => await AbortCommandExecute().ConfigureAwait(true)); AbortCommand = new DelegateCommand(async () => await AbortCommandExecute().ConfigureAwait(true));
ScannedCommand = new DelegateCommand(ScannedCommandExecute); ScannedCommand = new DelegateCommand(ScannedCommandExecute);
@ -27,9 +28,15 @@ namespace Borepin.PageModel
#endregion #endregion
#region Data #region Data
public override async Task LoadData() public override Task LoadInstance(object instance)
{ {
await Task.CompletedTask.ConfigureAwait(false); _Instance = instance;
return Task.CompletedTask;
}
public override Task<object> CreateInstance()
{
return Task.FromResult(_Instance);
} }
#endregion #endregion
@ -73,7 +80,6 @@ namespace Borepin.PageModel
{ {
{ "result", "scanned" }, { "result", "scanned" },
{ "value", ScanResult.Text }, { "value", ScanResult.Text },
{ "instance", _Instance },
}; };
Device.BeginInvokeOnMainThread(async () => Device.BeginInvokeOnMainThread(async () =>
@ -96,22 +102,9 @@ namespace Borepin.PageModel
INavigationParameters parameters = new NavigationParameters() INavigationParameters parameters = new NavigationParameters()
{ {
{ "result", "abort" }, { "result", "abort" },
{ "instance", _Instance },
}; };
await _NavigationService.GoBackAsync(parameters).ConfigureAwait(false); await _NavigationService.GoBackAsync(parameters).ConfigureAwait(false);
} }
#endregion #endregion
#region INavigationService
public override void OnNavigatedFrom(INavigationParameters parameters)
{
}
public override void OnNavigatedTo(INavigationParameters parameters)
{
_Instance = parameters.GetValue<object>("instance");
}
#endregion
} }
} }

View File

@ -9,6 +9,7 @@ using Borepin.Base;
using Borepin.Service.Storage; using Borepin.Service.Storage;
using FabAccessAPI; using FabAccessAPI;
using Borepin.Service; using Borepin.Service;
using Prism.Services;
namespace Borepin.PageModel namespace Borepin.PageModel
{ {
@ -20,7 +21,7 @@ namespace Borepin.PageModel
#endregion #endregion
#region Constructors #region Constructors
public ServerListPageModel(INavigationService navigationService, ILoginStorageService loginStorageService, IAPIService apiService) : base(navigationService) public ServerListPageModel(INavigationService navigationService, IPageDialogService pageDialogService, ILoginStorageService loginStorageService, IAPIService apiService) : base(navigationService, pageDialogService)
{ {
_LoginStorageService = loginStorageService; _LoginStorageService = loginStorageService;
_API = apiService.GetAPI(); _API = apiService.GetAPI();
@ -106,17 +107,5 @@ namespace Borepin.PageModel
await _NavigationService.NavigateAsync("AddServerProcess_SelectServerPage").ConfigureAwait(false); await _NavigationService.NavigateAsync("AddServerProcess_SelectServerPage").ConfigureAwait(false);
} }
#endregion #endregion
#region INavigationAware
public override void OnNavigatedFrom(INavigationParameters parameters)
{
}
public override async void OnNavigatedTo(INavigationParameters parameters)
{
await LoadData().ConfigureAwait(false);
}
#endregion
} }
} }

View File

@ -1,5 +1,7 @@
using Borepin.Base; using Borepin.Base;
using Borepin.Base.Exceptions;
using Borepin.Service; using Borepin.Service;
using Borepin.Service.Storage;
using FabAccessAPI; using FabAccessAPI;
using FabAccessAPI.Exceptions; using FabAccessAPI.Exceptions;
using Prism.Commands; using Prism.Commands;
@ -17,12 +19,14 @@ namespace Borepin.PageModel
{ {
#region Private Fields #region Private Fields
private readonly IDialogService _DialogService; private readonly IDialogService _DialogService;
private readonly ILoginStorageService _LoginStorageService;
#endregion #endregion
#region Constructors #region Constructors
public ServerPageModel(INavigationService navigationService, IPageDialogService pageDialogService, IAPIService apiService, IDialogService dialogService,) : base(navigationService, pageDialogService, apiService) public ServerPageModel(INavigationService navigationService, IPageDialogService pageDialogService, IAPIService apiService, IDialogService dialogService, ILoginStorageService loginStorageService) : base(navigationService, pageDialogService, apiService)
{ {
_DialogService = dialogService; _DialogService = dialogService;
_LoginStorageService = loginStorageService;
ConnectCommand = new DelegateCommand(async () => await ConnectCommandExecute().ConfigureAwait(false)); ConnectCommand = new DelegateCommand(async () => await ConnectCommandExecute().ConfigureAwait(false));
DisconnectCommand = new DelegateCommand(async () => await DisonnectCommandExecute().ConfigureAwait(false)); DisconnectCommand = new DelegateCommand(async () => await DisonnectCommandExecute().ConfigureAwait(false));
@ -31,20 +35,29 @@ namespace Borepin.PageModel
#endregion #endregion
#region Data #region Data
public override Task LoadData() public override Task LoadInstance(object instance)
{ {
if (_BFFHService.CurrentConnection != null && Connection_Item != null) if(instance is ConnectionData)
{ {
InstanceIsActiveConnection = Connection_Item.Equals(_BFFHService.CurrentConnection); Connection_Item = instance as ConnectionData;
}
else
{
throw new InstanceIncorrectException();
}
if (_API.ConnectionData != null && Connection_Item != null)
{
InstanceIsActiveConnection = Connection_Item.Equals(_API.ConnectionData);
} }
else else
{ {
InstanceIsActiveConnection = false; InstanceIsActiveConnection = false;
} }
if(_Connection_Item != null && _Connection_Item.Address != null) if(_Connection_Item != null && _Connection_Item.Host != null)
{ {
DisplayAddress = string.Format(CultureInfo.InvariantCulture, "{0}:{1}", _Connection_Item.Address.Host, _Connection_Item.Address.Port); DisplayAddress = string.Format(CultureInfo.InvariantCulture, "{0}:{1}", _Connection_Item.Host.Host, _Connection_Item.Host.Port);
} }
IsBusy = false; IsBusy = false;
@ -110,7 +123,11 @@ namespace Borepin.PageModel
return; return;
} }
await _NavigationService.NavigateAsync("/MainPage/NavigationPage/MachineListPage").ConfigureAwait(false); INavigationResult result = await _NavigationService.NavigateAsync("/MainPage/NavigationPage/MachineListPage").ConfigureAwait(false);
if(result.Exception != null)
{
Log.Fatal(result.Exception, "Navigating failed");
}
} }
private ICommand _DisconnectCommand; private ICommand _DisconnectCommand;
@ -123,7 +140,7 @@ namespace Borepin.PageModel
{ {
await _API.Disconnect().ConfigureAwait(false); await _API.Disconnect().ConfigureAwait(false);
await LoadData().ConfigureAwait(false); await LoadInstance(Connection_Item).ConfigureAwait(false);
} }
private ICommand _DeleteCommand; private ICommand _DeleteCommand;
@ -149,11 +166,15 @@ namespace Borepin.PageModel
{ {
if(string.Equals(result.Parameters.GetValue<string>("result"), "confirm", StringComparison.Ordinal)) if(string.Equals(result.Parameters.GetValue<string>("result"), "confirm", StringComparison.Ordinal))
{ {
Connection connection = result.Parameters.GetValue<Connection>("instance"); ConnectionData connectionData = result.Parameters.GetValue<ConnectionData>("instance");
await _BFFHService.RemoveConnection(connection).ConfigureAwait(false); await _LoginStorageService.Remove(connectionData).ConfigureAwait(false);
await _NavigationService.NavigateAsync("/MainPage/NavigationPage/ServerListPage").ConfigureAwait(false); INavigationResult result_nav = await _NavigationService.NavigateAsync("/MainPage/NavigationPage/ServerListPage").ConfigureAwait(false);
if(result_nav.Exception != null)
{
Log.Fatal(result.Exception, "Navigating failed");
}
} }
} }
#endregion #endregion

View File

@ -1,7 +1,7 @@
using Borepin.Base; using Borepin.Base;
using Prism.Commands; using Prism.Commands;
using Prism.Navigation; using Prism.Navigation;
using System; using Prism.Services;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Input; using System.Windows.Input;
@ -10,19 +10,12 @@ namespace Borepin.PageModel.SetUpProcess
public class WelcomePageModel : PageModelBase public class WelcomePageModel : PageModelBase
{ {
#region Constructors #region Constructors
public WelcomePageModel(INavigationService navigationService) : base(navigationService) public WelcomePageModel(INavigationService navigationService, IPageDialogService pageDialogService) : base(navigationService, pageDialogService)
{ {
NextCommand = new DelegateCommand<object>(NextCommandCommandExecute); NextCommand = new DelegateCommand<object>(NextCommandCommandExecute);
} }
#endregion #endregion
#region Data
public override Task LoadData()
{
return Task.CompletedTask;
}
#endregion
#region Commands #region Commands
private ICommand _NextCommand; private ICommand _NextCommand;
public ICommand NextCommand public ICommand NextCommand
@ -35,17 +28,5 @@ namespace Borepin.PageModel.SetUpProcess
await _NavigationService.NavigateAsync("AddServerProcess_SelectServerPage").ConfigureAwait(false); await _NavigationService.NavigateAsync("AddServerProcess_SelectServerPage").ConfigureAwait(false);
} }
#endregion #endregion
#region INavigationAware
public override void OnNavigatedFrom(INavigationParameters parameters)
{
}
public override void OnNavigatedTo(INavigationParameters parameters)
{
}
#endregion
} }
} }

View File

@ -1,51 +1,45 @@
using Borepin.Base; using Borepin.Base;
using Borepin.Model; using Borepin.Service.Storage;
using Borepin.Service.BFFH; using FabAccessAPI;
using Prism.AppModel; using Prism.AppModel;
using Prism.Navigation; using Prism.Navigation;
using Prism.Services;
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading.Tasks;
namespace Borepin.PageModel namespace Borepin.PageModel
{ {
public class StartPageModel : PageModelBase, IPageLifecycleAware, IInitialize public class StartPageModel : PageModelBase, IPageLifecycleAware
{ {
#region Private Fields #region Private Fields
private readonly IBFFHService _BFFHService; private readonly ILoginStorageService _LoginStorageService;
#endregion #endregion
#region Constructors #region Constructors
public StartPageModel(INavigationService navigationService, IBFFHService bffhService) : base(navigationService) public StartPageModel(INavigationService navigationService, IPageDialogService pageDialogService, ILoginStorageService loginStorageService) : base(navigationService, pageDialogService)
{ {
_BFFHService = bffhService; _LoginStorageService = loginStorageService;
}
#endregion
#region LoadData
public override Task LoadData()
{
return Task.CompletedTask;
}
#endregion
#region IInitialize
public void Initialize(INavigationParameters parameters)
{
} }
#endregion #endregion
#region IPageLifecycleAware #region IPageLifecycleAware
public async void OnAppearing() public async void OnAppearing()
{ {
IList<Connection> connection_list = await _BFFHService.GetConnections().ConfigureAwait(false); IList<ConnectionData> connectionData_List = await _LoginStorageService.GetList().ConfigureAwait(false);
if (connection_list.Count == 0) if (connectionData_List.Count == 0)
{ {
await _NavigationService.NavigateAsync("/MainPage/NavigationPage/SetUpProcess_WelcomePage").ConfigureAwait(false); INavigationResult result = await _NavigationService.NavigateAsync("/MainPage/NavigationPage/SetUpProcess_WelcomePage").ConfigureAwait(false);
if (result.Exception != null)
{
Log.Fatal(result.Exception, "Navigating failed");
}
} }
else else
{ {
await _NavigationService.NavigateAsync("/MainPage/NavigationPage/ServerListPage").ConfigureAwait(false); INavigationResult result = await _NavigationService.NavigateAsync("/MainPage/NavigationPage/ServerListPage").ConfigureAwait(false);
if (result.Exception != null)
{
Log.Fatal(result.Exception, "Navigating failed");
}
} }
} }
@ -54,17 +48,5 @@ namespace Borepin.PageModel
} }
#endregion #endregion
#region INavigationAware
public override void OnNavigatedFrom(INavigationParameters parameters)
{
}
public override void OnNavigatedTo(INavigationParameters parameters)
{
}
#endregion
} }
} }

View File

@ -5,7 +5,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.2.0" />
<PackageReference Include="NSubstitute" Version="4.3.0" /> <PackageReference Include="NSubstitute" Version="4.3.0" />
<PackageReference Include="NUnit" Version="3.13.3" /> <PackageReference Include="NUnit" Version="3.13.3" />
<PackageReference Include="NUnit3TestAdapter" Version="4.2.1" /> <PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />

View File

@ -13,7 +13,7 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="CapnpC.CSharp.MsBuild.Generation" Version="1.3.118" /> <PackageReference Include="CapnpC.CSharp.MsBuild.Generation" Version="1.3.118" />
<PackageReference Include="Microsoft.Extensions.Logging.Log4Net.AspNetCore" Version="6.1.0" /> <PackageReference Include="Microsoft.Extensions.Logging.Log4Net.AspNetCore" Version="6.1.0" />
<PackageReference Include="NLog" Version="4.7.15" /> <PackageReference Include="NLog" Version="5.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -1,5 +1,4 @@
 using Capnp.Rpc;
using Capnp.Rpc;
using FabAccessAPI; using FabAccessAPI;
using FabAccessAPI.Exceptions; using FabAccessAPI.Exceptions;
using NUnit.Framework; using NUnit.Framework;
@ -24,10 +23,7 @@ namespace FabAccessAPI_Test
Username = "UnkownUser", Username = "UnkownUser",
Properties = new Dictionary<string, object>() Properties = new Dictionary<string, object>()
{ {
{ "Username", "UnkownUser" } { "Username", "UnkownUser" },
},
SecretProperties = new Dictionary<string, object>()
{
{ "Password", TestEnv.PASSWORD } { "Password", TestEnv.PASSWORD }
} }
}; };

View File

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework> <TargetFramework>netcoreapp3.1</TargetFramework>
@ -10,7 +10,7 @@
<PackageReference Include="Microsoft.Extensions.Logging.Log4Net.AspNetCore" Version="6.1.0" /> <PackageReference Include="Microsoft.Extensions.Logging.Log4Net.AspNetCore" Version="6.1.0" />
<PackageReference Include="NUnit" Version="3.13.3" /> <PackageReference Include="NUnit" Version="3.13.3" />
<PackageReference Include="NUnit3TestAdapter" Version="4.2.1" /> <PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.1.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.2.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -20,12 +20,9 @@ namespace FabAccessAPI_Test
Username = username, Username = username,
Properties = new Dictionary<string, object>() Properties = new Dictionary<string, object>()
{ {
{ "Username", username } { "Username", username },
{ "Password", TestEnv.PASSWORD },
}, },
SecretProperties = new Dictionary<string, object>()
{
{ "Password", TestEnv.PASSWORD }
}
}; };
return connectionData; return connectionData;