mirror of
https://gitlab.com/fabinfra/fabaccess/borepin.git
synced 2025-03-12 23:01:52 +01:00
New API Class is working
This commit is contained in:
parent
ec48a8b993
commit
14552bf929
@ -37,6 +37,8 @@ namespace Borepin.PageModel
|
||||
|
||||
#region Data
|
||||
public override Task LoadInstance(object instance)
|
||||
{
|
||||
if(instance != null)
|
||||
{
|
||||
if (instance is ConnectionData)
|
||||
{
|
||||
@ -60,6 +62,11 @@ namespace Borepin.PageModel
|
||||
{
|
||||
DisplayAddress = string.Format(CultureInfo.InvariantCulture, "{0}:{1}", _Connection_Item.Host.Host, _Connection_Item.Host.Port);
|
||||
}
|
||||
}
|
||||
if(instance == null && Connection_Item == null)
|
||||
{
|
||||
throw new InstanceIncorrectException();
|
||||
}
|
||||
|
||||
IsBusy = false;
|
||||
return Task.CompletedTask;
|
||||
@ -103,6 +110,7 @@ namespace Borepin.PageModel
|
||||
if(_API.IsConnected)
|
||||
{
|
||||
await _API.Disconnect().ConfigureAwait(true);
|
||||
_API.UnbindAllEvents();
|
||||
}
|
||||
|
||||
try
|
||||
@ -145,6 +153,7 @@ namespace Borepin.PageModel
|
||||
public async Task DisonnectCommandExecute()
|
||||
{
|
||||
await _API.Disconnect().ConfigureAwait(false);
|
||||
_API.UnbindAllEvents();
|
||||
|
||||
await LoadInstance(Connection_Item).ConfigureAwait(false);
|
||||
}
|
||||
@ -172,15 +181,18 @@ namespace Borepin.PageModel
|
||||
{
|
||||
if(string.Equals(result.Parameters.GetValue<string>("result"), "confirm", StringComparison.Ordinal))
|
||||
{
|
||||
ConnectionData connectionData = result.Parameters.GetValue<ConnectionData>("instance");
|
||||
|
||||
await _LoginStorageService.Remove(connectionData).ConfigureAwait(false);
|
||||
await _API.Disconnect().ConfigureAwait(true);
|
||||
_API.UnbindAllEvents();
|
||||
await _LoginStorageService.Remove(Connection_Item).ConfigureAwait(false);
|
||||
|
||||
Device.BeginInvokeOnMainThread(async () =>
|
||||
{
|
||||
INavigationResult result_nav = await _NavigationService.NavigateAsync("/MainPage/NavigationPage/ServerListPage").ConfigureAwait(false);
|
||||
if (result_nav.Exception != null)
|
||||
{
|
||||
Log.Fatal(result.Exception, "Navigating failed");
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
@ -4,7 +4,6 @@ using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using System.Linq;
|
||||
|
||||
namespace Borepin.Service.Storage
|
||||
{
|
||||
@ -55,12 +54,12 @@ namespace Borepin.Service.Storage
|
||||
}
|
||||
|
||||
List<ConnectionData> connectionData_List = new List<ConnectionData>(await _LoadConnectionData().ConfigureAwait(false));
|
||||
if (connectionData_List.Contains(connectionData))
|
||||
if (!connectionData_List.Contains(connectionData))
|
||||
{
|
||||
throw new MissingConnectionException(connectionData);
|
||||
}
|
||||
|
||||
connectionData_List.RemoveAll(x => x.Equals(connectionData));
|
||||
connectionData_List.Remove(connectionData);
|
||||
await _SaveConnectionData(connectionData_List).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
@ -72,14 +71,14 @@ namespace Borepin.Service.Storage
|
||||
}
|
||||
|
||||
List<ConnectionData> connectionData_List = new List<ConnectionData>(await _LoadConnectionData().ConfigureAwait(false));
|
||||
if (connectionData_List.Contains(connectionData))
|
||||
if (! connectionData_List.Contains(connectionData))
|
||||
{
|
||||
throw new MissingConnectionException(connectionData);
|
||||
}
|
||||
|
||||
connectionData.LastTime = DateTime.UtcNow;
|
||||
|
||||
connectionData_List.RemoveAll(x => x.Equals(connectionData));
|
||||
connectionData_List.Remove(connectionData);
|
||||
connectionData_List.Add(connectionData);
|
||||
await _SaveConnectionData(connectionData_List).ConfigureAwait(false);
|
||||
}
|
||||
|
@ -1,30 +0,0 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using NUnit.Framework;
|
||||
using Borepin.Service.Storage;
|
||||
using NSubstitute;
|
||||
using Borepin.Service.BFFH;
|
||||
using Borepin.Model;
|
||||
|
||||
namespace Borepin_Test
|
||||
{
|
||||
public class BFFHService_Test
|
||||
{
|
||||
[Test, Explicit]
|
||||
public async Task Connect()
|
||||
{
|
||||
IPreferenceStorageService preferenceStorageService = Substitute.For<IPreferenceStorageService>();
|
||||
ISecretStorageService secretStorageService = Substitute.For<ISecretStorageService>();
|
||||
|
||||
IBFFHService bffhService = new BFFHService(preferenceStorageService, secretStorageService);
|
||||
|
||||
Connection connection = new Connection()
|
||||
{
|
||||
Address = new Uri("fabaccess://127.0.0.1:59661"),
|
||||
Username = "Testuser"
|
||||
};
|
||||
|
||||
await bffhService.Connect(connection, "secret");
|
||||
}
|
||||
}
|
||||
}
|
@ -55,6 +55,17 @@ namespace FabAccessAPI
|
||||
_TcpRpcClient = null;
|
||||
}
|
||||
}
|
||||
|
||||
public void UnbindAllEvents()
|
||||
{
|
||||
if(ConnectionStatusChanged != null)
|
||||
{
|
||||
foreach (Delegate d in ConnectionStatusChanged.GetInvocationList())
|
||||
{
|
||||
ConnectionStatusChanged -= (EventHandler<ConnectionStatusChange>)d;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Members
|
||||
|
@ -16,13 +16,13 @@ namespace FabAccessAPI
|
||||
if(obj is ConnectionData && obj != null)
|
||||
{
|
||||
ConnectionData? data = obj as ConnectionData;
|
||||
|
||||
return data.Host.Host == Host.Host &&
|
||||
data.Host.Port == Host.Port &&
|
||||
data.Mechanism == Mechanism &&
|
||||
data.Username == Username &&
|
||||
EqualityComparer<Dictionary<string, object>>.Default.Equals(Properties, data.Properties);
|
||||
|
||||
data.Username == Username;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -33,6 +33,11 @@ namespace FabAccessAPI
|
||||
/// </summary>
|
||||
event EventHandler<ConnectionStatusChange> ConnectionStatusChanged;
|
||||
|
||||
/// <summary>
|
||||
/// Unbind all Events from ConnectionStatus Change
|
||||
/// </summary>
|
||||
void UnbindAllEvents();
|
||||
|
||||
/// <summary>
|
||||
/// Connect to BFFH Server
|
||||
/// </summary>
|
||||
|
2
external/capnproto-dotnetcore
vendored
2
external/capnproto-dotnetcore
vendored
@ -1 +1 @@
|
||||
Subproject commit 086bbc2497785d2cc63e9252df6f6d3ee7599579
|
||||
Subproject commit 0176a503c8d0b0be66e0212e04200c8324e11fd9
|
Loading…
x
Reference in New Issue
Block a user