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>
</PackageReference>
<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>
<Compile Include="MainActivity.cs" />

View File

@ -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=5.0.0.0, Culture=neutral, PublicKeyToken=dfbf2bd50fcf7768, processorArchitecture=MSIL">
<HintPath>..\..\packages\DryIoc.dll.5.0.0\lib\net45\DryIoc.dll</HintPath>
<Reference Include="DryIoc, Version=5.0.2.0, Culture=neutral, PublicKeyToken=dfbf2bd50fcf7768, processorArchitecture=MSIL">
<HintPath>..\..\packages\DryIoc.dll.5.0.2\lib\net45\DryIoc.dll</HintPath>
</Reference>
<Reference Include="gdk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>

View File

@ -12,7 +12,7 @@
</dependentAssembly>
<dependentAssembly>
<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>
</assemblyBinding>
</runtime>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<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="Prism.Core" 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 Include="Xamarin.Forms" Version="5.0.0.2401" />
<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>
<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">
<Project>{3251FCE9-FEA3-4662-8BEB-636BE6732D48}</Project>
<Name>FabAccessAPI</Name>

View File

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

View File

@ -59,8 +59,8 @@
</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 Include="DryIoc, Version=5.0.2.0, Culture=neutral, PublicKeyToken=dfbf2bd50fcf7768, processorArchitecture=MSIL">
<HintPath>..\..\packages\DryIoc.dll.5.0.2\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>

View File

@ -8,7 +8,7 @@
</dependentAssembly>
<dependentAssembly>
<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>
</assemblyBinding>
</runtime>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<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.DryIoc.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
{
#region Private Fields
protected readonly IPageDialogService _PageDialogService;
protected readonly IAPI _API;
#endregion
#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.ConnectionStatusChanged += OnConnectionStatusChanged;
@ -54,16 +52,6 @@ namespace Borepin.Base
{
return Task.CompletedTask;
}
public virtual Task LoadInstance(object instance)
{
return Task.CompletedTask;
}
public virtual Task<object> CreateInstance()
{
return Task.FromResult<object>(null);
}
#endregion
#region Fields
@ -79,30 +67,13 @@ namespace Borepin.Base
#endregion
#region INavigationAware
public override void OnNavigatedTo(INavigationParameters parameters)
public override async Task OnNavigatedToVirtual(INavigationParameters parameters)
{
if(parameters.ContainsKey("instance"))
{
LoadInstance(parameters.GetValue<object>("instance"));
}
else
{
Log.Trace("No instance");
LoadInstance(null);
}
await base.OnNavigatedToVirtual(parameters).ConfigureAwait(false);
if(_API.IsConnected)
{
LoadAPIData();
}
}
public override void OnNavigatedFrom(INavigationParameters parameters)
{
object instance = CreateInstance();
if(instance != null)
{
parameters.Add("instance", instance);
await LoadAPIData().ConfigureAwait(false);
}
}
#endregion

View File

@ -1,6 +1,8 @@
using NLog;
using Prism.Mvvm;
using Prism.Navigation;
using Prism.Services;
using System.Threading.Tasks;
namespace Borepin.Base
{
@ -15,10 +17,12 @@ namespace Borepin.Base
#region Private Fields
protected readonly INavigationService _NavigationService;
protected readonly IPageDialogService _PageDialogService;
protected PageModelBase(INavigationService navigationService)
protected PageModelBase(INavigationService navigationService, IPageDialogService pageDialogService)
{
_NavigationService = navigationService;
_PageDialogService = pageDialogService;
}
#endregion
@ -34,9 +38,49 @@ namespace Borepin.Base
}
#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
public abstract void OnNavigatedTo(INavigationParameters parameters);
public abstract void OnNavigatedFrom(INavigationParameters parameters);
public async void OnNavigatedTo(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
}
}

View File

@ -25,13 +25,13 @@
<None Remove="Behaviour\**" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Meziantou.Analyzer" Version="1.0.700">
<PackageReference Include="Meziantou.Analyzer" Version="1.0.702">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="NaturalSort.Extension" Version="3.2.0" />
<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="Prism.DryIoc.Forms" Version="8.1.97" />
<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)
{
{ "username", Username },
{ "password", Password }
{ "password", Password },
},
};

View File

@ -1,6 +1,8 @@
using Borepin.Base;
using Borepin.Model;
using Borepin.Base.Exceptions;
using FabAccessAPI;
using Prism.Navigation;
using Prism.Services;
using System.Threading.Tasks;
using System.Windows.Input;
using Xamarin.Forms;
@ -10,23 +12,34 @@ namespace Borepin.PageModel.AddServerProcess
public class ChooseAuthTypePageModel : PageModelBase
{
#region Private Fields
private Connection _Connection;
private ConnectionData _ConnectionData;
#endregion
#region Contructors
public ChooseAuthTypePageModel(INavigationService navigationService) : base(navigationService)
public ChooseAuthTypePageModel(INavigationService navigationService, IPageDialogService pageDialogService) : base(navigationService, pageDialogService)
{
AuthPlainCommand = new Command(AuthPlainCommandExecute);
}
#endregion
#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;
}
public override Task<object> CreateInstance()
{
return Task.FromResult<object>(_ConnectionData);
}
#endregion
#region Commands
@ -38,37 +51,12 @@ namespace Borepin.PageModel.AddServerProcess
}
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 },
};
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);
Log.Fatal(result.Exception, "Navigating failed");
}
}
#endregion

View File

@ -12,14 +12,14 @@ using System.Windows.Input;
namespace Borepin.PageModel.AddServerProcess
{
public class SelectServerPageModel : ConnectionModelBase
public class SelectServerPageModel : PageModelBase
{
#region Private Fields
private ConnectionData _ConnectionData;
#endregion
#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));
DetectLocalServerCommand = new DelegateCommand(DetectHostCommandExecute);
@ -98,7 +98,8 @@ namespace Borepin.PageModel.AddServerProcess
try
{
await _API.TestConnection(_ConnectionData).ConfigureAwait(true);
API api = new API();
await api.TestConnection(_ConnectionData).ConfigureAwait(true);
}
catch(ConnectingFailedException)
{

View File

@ -31,23 +31,11 @@ namespace Borepin.PageModel
#endregion
#region Data
public override async Task LoadData()
public override async Task LoadAPIData()
{
if (! await CheckConnection().ConfigureAwait(false))
{
IsConnected = false;
User user_self = await _API.Session.UserSystem.Info.GetUserSelf().ConfigureAwait(false);
IsBusy = 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);
IReadOnlyList<Machine> machine_list = await _API.Session.MachineSystem.Info.GetMachineList().ConfigureAwait(false);
List<MachineListItemViewModel> viewmodel_list_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_not_user_assigned.OrderBy(x => x.Name, StringComparison.OrdinalIgnoreCase.WithNaturalSort()));
MachineListItemViewModel_List = viewmodel_list_sorted;
IsBusy = false;
}
#endregion
@ -101,7 +87,11 @@ namespace Borepin.PageModel
}
public async Task RefreshCommandExecute()
{
await LoadData().ConfigureAwait(true);
if(_API.IsConnected)
{
await LoadAPIData().ConfigureAwait(true);
}
IsRefreshing = false;
}
@ -143,16 +133,14 @@ namespace Borepin.PageModel
public async void ScanCode_Result(string value)
{
if (! _BFFHService.IsConnected)
if (! _API.IsConnected)
{
IsConnected = false;
IsBusy = false;
return;
}
MachineSystem machineInterface = (await _BFFHService.GetSession().ConfigureAwait(false)).MachineSystem;
Machine machine = (await machineInterface.Info.GetMachineURN(value).ConfigureAwait(false)).Just;
Machine machine = (await _API.Session.MachineSystem.Info.GetMachineURN(value).ConfigureAwait(false)).Just;
if(machine == null)
{
@ -186,19 +174,5 @@ namespace Borepin.PageModel
}
#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
public override Task LoadInstance(object instance)
{
IsBusy = true;
if(instance is string)
{
_ID = instance as string;
@ -41,8 +39,6 @@ namespace Borepin.PageModel
throw new InstanceIncorrectException();
}
IsBusy = false;
return Task.CompletedTask;
}

View File

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

View File

@ -1,6 +1,7 @@
using Borepin.Base;
using Prism.Commands;
using Prism.Navigation;
using Prism.Services;
using System;
using System.Threading.Tasks;
using System.Windows.Input;
@ -16,7 +17,7 @@ namespace Borepin.PageModel
#endregion
#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));
ScannedCommand = new DelegateCommand(ScannedCommandExecute);
@ -27,9 +28,15 @@ namespace Borepin.PageModel
#endregion
#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
@ -73,7 +80,6 @@ namespace Borepin.PageModel
{
{ "result", "scanned" },
{ "value", ScanResult.Text },
{ "instance", _Instance },
};
Device.BeginInvokeOnMainThread(async () =>
@ -96,22 +102,9 @@ namespace Borepin.PageModel
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

@ -9,6 +9,7 @@ using Borepin.Base;
using Borepin.Service.Storage;
using FabAccessAPI;
using Borepin.Service;
using Prism.Services;
namespace Borepin.PageModel
{
@ -20,7 +21,7 @@ namespace Borepin.PageModel
#endregion
#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;
_API = apiService.GetAPI();
@ -106,17 +107,5 @@ namespace Borepin.PageModel
await _NavigationService.NavigateAsync("AddServerProcess_SelectServerPage").ConfigureAwait(false);
}
#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.Exceptions;
using Borepin.Service;
using Borepin.Service.Storage;
using FabAccessAPI;
using FabAccessAPI.Exceptions;
using Prism.Commands;
@ -17,12 +19,14 @@ namespace Borepin.PageModel
{
#region Private Fields
private readonly IDialogService _DialogService;
private readonly ILoginStorageService _LoginStorageService;
#endregion
#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;
_LoginStorageService = loginStorageService;
ConnectCommand = new DelegateCommand(async () => await ConnectCommandExecute().ConfigureAwait(false));
DisconnectCommand = new DelegateCommand(async () => await DisonnectCommandExecute().ConfigureAwait(false));
@ -31,20 +35,29 @@ namespace Borepin.PageModel
#endregion
#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
{
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;
@ -110,7 +123,11 @@ namespace Borepin.PageModel
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;
@ -123,7 +140,7 @@ namespace Borepin.PageModel
{
await _API.Disconnect().ConfigureAwait(false);
await LoadData().ConfigureAwait(false);
await LoadInstance(Connection_Item).ConfigureAwait(false);
}
private ICommand _DeleteCommand;
@ -149,11 +166,15 @@ namespace Borepin.PageModel
{
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

View File

@ -1,7 +1,7 @@
using Borepin.Base;
using Prism.Commands;
using Prism.Navigation;
using System;
using Prism.Services;
using System.Threading.Tasks;
using System.Windows.Input;
@ -10,19 +10,12 @@ namespace Borepin.PageModel.SetUpProcess
public class WelcomePageModel : PageModelBase
{
#region Constructors
public WelcomePageModel(INavigationService navigationService) : base(navigationService)
public WelcomePageModel(INavigationService navigationService, IPageDialogService pageDialogService) : base(navigationService, pageDialogService)
{
NextCommand = new DelegateCommand<object>(NextCommandCommandExecute);
}
#endregion
#region Data
public override Task LoadData()
{
return Task.CompletedTask;
}
#endregion
#region Commands
private ICommand _NextCommand;
public ICommand NextCommand
@ -35,17 +28,5 @@ namespace Borepin.PageModel.SetUpProcess
await _NavigationService.NavigateAsync("AddServerProcess_SelectServerPage").ConfigureAwait(false);
}
#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.Model;
using Borepin.Service.BFFH;
using Borepin.Service.Storage;
using FabAccessAPI;
using Prism.AppModel;
using Prism.Navigation;
using Prism.Services;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Borepin.PageModel
{
public class StartPageModel : PageModelBase, IPageLifecycleAware, IInitialize
public class StartPageModel : PageModelBase, IPageLifecycleAware
{
#region Private Fields
private readonly IBFFHService _BFFHService;
private readonly ILoginStorageService _LoginStorageService;
#endregion
#region Constructors
public StartPageModel(INavigationService navigationService, IBFFHService bffhService) : base(navigationService)
public StartPageModel(INavigationService navigationService, IPageDialogService pageDialogService, ILoginStorageService loginStorageService) : base(navigationService, pageDialogService)
{
_BFFHService = bffhService;
}
#endregion
#region LoadData
public override Task LoadData()
{
return Task.CompletedTask;
}
#endregion
#region IInitialize
public void Initialize(INavigationParameters parameters)
{
_LoginStorageService = loginStorageService;
}
#endregion
#region IPageLifecycleAware
public async void OnAppearing()
{
IList<Connection> connection_list = await _BFFHService.GetConnections().ConfigureAwait(false);
if (connection_list.Count == 0)
IList<ConnectionData> connectionData_List = await _LoginStorageService.GetList().ConfigureAwait(false);
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
{
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
#region INavigationAware
public override void OnNavigatedFrom(INavigationParameters parameters)
{
}
public override void OnNavigatedTo(INavigationParameters parameters)
{
}
#endregion
}
}

View File

@ -5,7 +5,7 @@
</PropertyGroup>
<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="NUnit" Version="3.13.3" />
<PackageReference Include="NUnit3TestAdapter" Version="4.2.1" />

View File

@ -13,7 +13,7 @@
<ItemGroup>
<PackageReference Include="CapnpC.CSharp.MsBuild.Generation" Version="1.3.118" />
<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>

View File

@ -1,5 +1,4 @@

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

View File

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
@ -10,7 +10,7 @@
<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" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.2.0" />
</ItemGroup>
<ItemGroup>

View File

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