Skip to content

Commit bf971df

Browse files
committed
Refactor identity assignment and sorting logic
ConstructIdentitiesAsync now uses _identitiesTags directly, bypassing ReadIdentitiesAsync. SortIdentitiesAsync performs an async batch read of identity keys and uses LastValue directly for sorting, removing synchronous calls for improved performance. Minor formatting change to DuplicateIdentityException.
1 parent 2d86c65 commit bf971df

1 file changed

Lines changed: 6 additions & 5 deletions

File tree

src/AXSharp.connectors/src/AXSharp.Connector/Identity/TwinIdentityProvider.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// AXSharp.Connector
1+
// AXSharp.Connector
22
// Copyright (c) 2023 MTS spol. s r.o., and Contributors. All Rights Reserved.
33
// Contributors: https://github.com/inxton/axsharp/graphs/contributors
44
// See the LICENSE file in the repository root for more information.
@@ -238,7 +238,7 @@ public async Task WriteIdentities(IEnumerable<OnlinerULInt> identitiesToWrite)
238238
/// </summary>
239239
public async Task ConstructIdentitiesAsync(Func<OnlinerULInt, ulong> identityProvider = null)
240240
{
241-
await WriteIdentities(AssignIdentities(await ReadIdentitiesAsync(), identityProvider));
241+
await WriteIdentities(AssignIdentities(_identitiesTags, identityProvider));
242242
await SortIdentitiesAsync();
243243
}
244244

@@ -247,13 +247,14 @@ public async Task ConstructIdentitiesAsync(Func<OnlinerULInt, ulong> identityPro
247247
/// </summary>
248248
internal async Task SortIdentitiesAsync()
249249
{
250-
await Task.Run(() =>
250+
await Task.Run(async () =>
251251
{
252252
_connector?.Logger.Information("Sorting identities...");
253+
await _connector?.ReadBatchAsync(_identities.Select(p => p.Key), eAccessPriority.High);
253254
_sortedIdentities.Clear();
254255
foreach (var identity in _identities)
255256
{
256-
var key = identity.Key.LastValue == 0 ? identity.Key.GetAsync().Result : identity.Key.LastValue;
257+
var key = identity.Key.LastValue;
257258
if (!_sortedIdentities.ContainsKey(key))
258259
{
259260
_sortedIdentities.Add(key, identity.Value);
@@ -280,4 +281,4 @@ public class DuplicateIdentityException : Exception
280281
public DuplicateIdentityException(string message) : base(message)
281282
{
282283
}
283-
}
284+
}

0 commit comments

Comments
 (0)