mirror of
https://gitlab.com/fabinfra/fabaccess/borepin.git
synced 2025-03-13 15:21:45 +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
|
#region Data
|
||||||
public override Task LoadInstance(object instance)
|
public override Task LoadInstance(object instance)
|
||||||
|
{
|
||||||
|
if(instance != null)
|
||||||
{
|
{
|
||||||
if (instance is ConnectionData)
|
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);
|
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;
|
IsBusy = false;
|
||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
@ -103,6 +110,7 @@ namespace Borepin.PageModel
|
|||||||
if(_API.IsConnected)
|
if(_API.IsConnected)
|
||||||
{
|
{
|
||||||
await _API.Disconnect().ConfigureAwait(true);
|
await _API.Disconnect().ConfigureAwait(true);
|
||||||
|
_API.UnbindAllEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
@ -145,6 +153,7 @@ namespace Borepin.PageModel
|
|||||||
public async Task DisonnectCommandExecute()
|
public async Task DisonnectCommandExecute()
|
||||||
{
|
{
|
||||||
await _API.Disconnect().ConfigureAwait(false);
|
await _API.Disconnect().ConfigureAwait(false);
|
||||||
|
_API.UnbindAllEvents();
|
||||||
|
|
||||||
await LoadInstance(Connection_Item).ConfigureAwait(false);
|
await LoadInstance(Connection_Item).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
@ -172,15 +181,18 @@ 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))
|
||||||
{
|
{
|
||||||
ConnectionData connectionData = result.Parameters.GetValue<ConnectionData>("instance");
|
await _API.Disconnect().ConfigureAwait(true);
|
||||||
|
_API.UnbindAllEvents();
|
||||||
await _LoginStorageService.Remove(connectionData).ConfigureAwait(false);
|
await _LoginStorageService.Remove(Connection_Item).ConfigureAwait(false);
|
||||||
|
|
||||||
|
Device.BeginInvokeOnMainThread(async () =>
|
||||||
|
{
|
||||||
INavigationResult result_nav = await _NavigationService.NavigateAsync("/MainPage/NavigationPage/ServerListPage").ConfigureAwait(false);
|
INavigationResult result_nav = await _NavigationService.NavigateAsync("/MainPage/NavigationPage/ServerListPage").ConfigureAwait(false);
|
||||||
if (result_nav.Exception != null)
|
if (result_nav.Exception != null)
|
||||||
{
|
{
|
||||||
Log.Fatal(result.Exception, "Navigating failed");
|
Log.Fatal(result.Exception, "Navigating failed");
|
||||||
}
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -4,7 +4,6 @@ using Newtonsoft.Json;
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Linq;
|
|
||||||
|
|
||||||
namespace Borepin.Service.Storage
|
namespace Borepin.Service.Storage
|
||||||
{
|
{
|
||||||
@ -55,12 +54,12 @@ namespace Borepin.Service.Storage
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<ConnectionData> connectionData_List = new List<ConnectionData>(await _LoadConnectionData().ConfigureAwait(false));
|
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);
|
throw new MissingConnectionException(connectionData);
|
||||||
}
|
}
|
||||||
|
|
||||||
connectionData_List.RemoveAll(x => x.Equals(connectionData));
|
connectionData_List.Remove(connectionData);
|
||||||
await _SaveConnectionData(connectionData_List).ConfigureAwait(false);
|
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));
|
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);
|
throw new MissingConnectionException(connectionData);
|
||||||
}
|
}
|
||||||
|
|
||||||
connectionData.LastTime = DateTime.UtcNow;
|
connectionData.LastTime = DateTime.UtcNow;
|
||||||
|
|
||||||
connectionData_List.RemoveAll(x => x.Equals(connectionData));
|
connectionData_List.Remove(connectionData);
|
||||||
connectionData_List.Add(connectionData);
|
connectionData_List.Add(connectionData);
|
||||||
await _SaveConnectionData(connectionData_List).ConfigureAwait(false);
|
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;
|
_TcpRpcClient = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void UnbindAllEvents()
|
||||||
|
{
|
||||||
|
if(ConnectionStatusChanged != null)
|
||||||
|
{
|
||||||
|
foreach (Delegate d in ConnectionStatusChanged.GetInvocationList())
|
||||||
|
{
|
||||||
|
ConnectionStatusChanged -= (EventHandler<ConnectionStatusChange>)d;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Members
|
#region Members
|
||||||
|
@ -16,13 +16,13 @@ namespace FabAccessAPI
|
|||||||
if(obj is ConnectionData && obj != null)
|
if(obj is ConnectionData && obj != null)
|
||||||
{
|
{
|
||||||
ConnectionData? data = obj as ConnectionData;
|
ConnectionData? data = obj as ConnectionData;
|
||||||
|
|
||||||
return data.Host.Host == Host.Host &&
|
return data.Host.Host == Host.Host &&
|
||||||
data.Host.Port == Host.Port &&
|
data.Host.Port == Host.Port &&
|
||||||
data.Mechanism == Mechanism &&
|
data.Mechanism == Mechanism &&
|
||||||
data.Username == Username &&
|
data.Username == Username;
|
||||||
EqualityComparer<Dictionary<string, object>>.Default.Equals(Properties, data.Properties);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,6 +33,11 @@ namespace FabAccessAPI
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
event EventHandler<ConnectionStatusChange> ConnectionStatusChanged;
|
event EventHandler<ConnectionStatusChange> ConnectionStatusChanged;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Unbind all Events from ConnectionStatus Change
|
||||||
|
/// </summary>
|
||||||
|
void UnbindAllEvents();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Connect to BFFH Server
|
/// Connect to BFFH Server
|
||||||
/// </summary>
|
/// </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