Skip to content

Commit ec3b5b9

Browse files
Fix Wait error (#73)
1 parent 945e13f commit ec3b5b9

6 files changed

Lines changed: 29 additions & 28 deletions

File tree

src/ByteSync.Client/Repositories/CloudSessionConnectionRepository.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
using System.Reactive.Linq;
22
using System.Reactive.Subjects;
33
using System.Threading;
4-
using System.Threading.Tasks;
54
using ByteSync.Business.Sessions;
65
using ByteSync.Business.Sessions.Connecting;
76
using ByteSync.Business.Sessions.RunSessionInfos;
8-
using ByteSync.Common.Business.Sessions.Cloud.Connections;
97
using ByteSync.Common.Controls;
10-
using ByteSync.Common.Helpers;
118
using ByteSync.Interfaces.Repositories;
129

1310
namespace ByteSync.Repositories;
@@ -18,7 +15,8 @@ public class CloudSessionConnectionRepository : BaseRepository<CloudSessionConne
1815
private readonly BehaviorSubject<CreateSessionError?> _createSessionError;
1916
private readonly BehaviorSubject<JoinSessionError?> _joinSessionError;
2017

21-
public CloudSessionConnectionRepository()
18+
public CloudSessionConnectionRepository(ILogger<CloudSessionConnectionRepository> logger) :
19+
base(logger)
2220
{
2321
_connectionStatus = new BehaviorSubject<SessionConnectionStatus>(SessionConnectionStatus.NoSession);
2422
_createSessionError = new BehaviorSubject<CreateSessionError?>(null);

src/ByteSync.Client/Services/Communications/DigitalSignaturesRepository.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
11
using System.Threading;
2-
using System.Threading.Tasks;
32
using ByteSync.Business.Communications;
43
using ByteSync.Common.Business.Sessions.Cloud;
54
using ByteSync.Common.Business.Sessions.Cloud.Connections;
65
using ByteSync.Common.Controls;
7-
using ByteSync.Common.Helpers;
86
using ByteSync.Interfaces.Controls.Communications;
97

108
namespace ByteSync.Services.Communications;
119

1210
public class DigitalSignaturesRepository : BaseRepository<DigitalSignaturesData>, IDigitalSignaturesRepository
1311
{
12+
public DigitalSignaturesRepository(ILogger<DigitalSignaturesRepository> logger)
13+
: base(logger)
14+
{
15+
}
16+
1417
public async Task Start(string sessionId)
1518
{
1619
await ResetDataAsync(sessionId);

src/ByteSync.Client/Services/Communications/TrustProcessPublicKeysRepository.cs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using System.Collections.ObjectModel;
22
using System.Threading;
3-
using System.Threading.Tasks;
43
using ByteSync.Business.Communications.PublicKeysTrusting;
54
using ByteSync.Common.Business.EndPoints;
65
using ByteSync.Common.Business.Sessions.Cloud.Connections;
@@ -12,11 +11,10 @@ namespace ByteSync.Services.Communications;
1211

1312
public class TrustProcessPublicKeysRepository : BaseRepository<TrustProcessPublicKeysData>, ITrustProcessPublicKeysRepository
1413
{
15-
private readonly IConnectionService _connectionService;
16-
17-
public TrustProcessPublicKeysRepository(IConnectionService connectionService)
14+
public TrustProcessPublicKeysRepository(ILogger<TrustProcessPublicKeysRepository> logger)
15+
: base(logger)
1816
{
19-
_connectionService = connectionService;
17+
2018
}
2119

2220
public async Task Start(string sessionId)
@@ -26,9 +24,6 @@ public async Task Start(string sessionId)
2624

2725
public async Task SetExpectedPublicKeyCheckDataCount(string sessionId, List<string> cloudSessionMembersIds)
2826
{
29-
// var clone = cloudSessionMembersIds.ToList();
30-
// clone.RemoveAll(i => i.Equals(_connectionService.FullId));
31-
//
3227
await RunAsync(sessionId, data => data.JoinerTrustProcessData.SetExpectedPublicKeyCheckDataCount(cloudSessionMembersIds));
3328
}
3429

src/ByteSync.Client/Services/Lobbies/LobbyRepository.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
using ByteSync.Interfaces.Lobbies;
1515
using ByteSync.ViewModels.Lobbies;
1616
using Prism.Events;
17-
using Serilog;
1817
using Splat;
1918

2019
namespace ByteSync.Services.Lobbies;
@@ -31,7 +30,8 @@ public class LobbyRepository : BaseRepository<LobbyDetails>, ILobbyRepository
3130
internal const string LOCAL_LOBBY_PREFIX = "Local_Lobby_";
3231

3332
public LobbyRepository(ILobbyMemberViewModelFactory lobbyMemberViewModelFactory, IEventAggregator eventAggregator, ICloudProxy connectionManager,
34-
IPublicKeysManager publicKeysManager, IUIHelper uiHelper, ILobbyApiClient lobbyApiClient)
33+
IPublicKeysManager publicKeysManager, IUIHelper uiHelper, ILobbyApiClient lobbyApiClient, ILogger<LobbyRepository> logger) :
34+
base(logger)
3535
{
3636
_lobbyMemberViewModelFactory = lobbyMemberViewModelFactory;
3737

@@ -352,7 +352,7 @@ await RunAsync(lobbyId, details =>
352352
}
353353
catch (Exception ex)
354354
{
355-
Log.Error(ex, "UpdateLobbyMemberStatus");
355+
_logger.LogError(ex, "UpdateLobbyMemberStatus");
356356
}
357357
});
358358
}
@@ -454,7 +454,7 @@ protected override ManualResetEvent GetEndEvent(LobbyDetails data)
454454
private async Task HandleError(Exception exception, string? lobbyId, [CallerMemberName] string caller = "")
455455
{
456456
// ReSharper disable once TemplateIsNotCompileTimeConstantProblem
457-
Log.Error(exception, caller);
457+
_logger.LogError(exception, caller);
458458

459459
if (exception is ArgumentOutOfRangeException && exception.Message.Contains("dataId is not expected", StringComparison.InvariantCultureIgnoreCase))
460460
{
@@ -471,7 +471,7 @@ private async Task HandleError(Exception exception, string? lobbyId, [CallerMemb
471471
}
472472
catch (Exception ex2)
473473
{
474-
Log.Error(ex2, "RunSecurityCheck // LobbyEndedEvent.Set()");
474+
_logger.LogError(ex2, "RunSecurityCheck // LobbyEndedEvent.Set()");
475475
}
476476

477477
try
@@ -480,7 +480,7 @@ private async Task HandleError(Exception exception, string? lobbyId, [CallerMemb
480480
}
481481
catch (Exception ex2)
482482
{
483-
Log.Error(ex2, "RunSecurityCheck // UpdateLobbyMemberStatus");
483+
_logger.LogError(ex2, "RunSecurityCheck // UpdateLobbyMemberStatus");
484484
}
485485
}
486486
}

src/ByteSync.Common/ByteSync.Common.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
</ItemGroup>
1515

1616
<ItemGroup>
17+
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.3" />
1718
<PackageReference Include="Serilog" Version="4.2.0" />
1819
<PackageReference Include="System.IO.Abstractions" Version="21.3.1" />
1920
</ItemGroup>

src/ByteSync.Common/Controls/BaseRepository.cs

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
using System.Threading.Tasks;
55
using ByteSync.Common.Helpers;
66
using ByteSync.Common.Interfaces;
7-
using Serilog;
7+
using Microsoft.Extensions.Logging;
88

99
// ReSharper disable UnusedType.Global
1010
// ReSharper disable UnusedMember.Global
@@ -13,8 +13,12 @@ namespace ByteSync.Common.Controls;
1313

1414
public abstract class BaseRepository<T> : IRepository<T>
1515
{
16-
protected BaseRepository()
16+
protected readonly ILogger<BaseRepository<T>> _logger;
17+
18+
protected BaseRepository(ILogger<BaseRepository<T>> logger)
1719
{
20+
_logger = logger;
21+
1822
SyncRoot = new object();
1923

2024
IsDataSetEvent = new ManualResetEvent(false);
@@ -63,7 +67,7 @@ await Task.Run(() =>
6367
Data = (T) Activator.CreateInstance(typeof(T), newDataId);
6468
IsDataSetEvent.Set();
6569

66-
Log.Debug("{HolderType}.ResetDataAsync, DataId:{DataId}", GetType().Name, GetDataId(Data));
70+
_logger.LogDebug("{HolderType}.ResetDataAsync, DataId:{DataId}", GetType().Name, GetDataId(Data));
6771

6872
if (func != null)
6973
{
@@ -203,19 +207,19 @@ public bool Wait(string dataId, Func<T, EventWaitHandle> func, Func<T, TimeSpan?
203207
{
204208
return true;
205209
}
206-
if (waitHandles[index] == endEvent)
210+
if (index < waitHandles.Count && waitHandles[index] == endEvent)
207211
{
208-
Log.Error("Wait: Process has ended");
212+
_logger.LogError("Wait: Process has ended");
209213
return false;
210214
}
211-
if (waitHandles[index] == cancellationToken.WaitHandle)
215+
if (index < waitHandles.Count && waitHandles[index] == cancellationToken.WaitHandle)
212216
{
213217
if (cancellationToken.IsCancellationRequested)
214218
{
215219
return true;
216220
}
217221
}
218-
Log.Error("Wait: timeout has occured");
222+
_logger.LogError("Wait: timeout has occured");
219223
return false;
220224
}
221225

@@ -239,7 +243,7 @@ private T2 CheckAndRun<T2>(string? dataId, Func<T, T2> func)
239243
{
240244
if (dataId != null && !CheckDataId(dataId, Data))
241245
{
242-
Log.Debug("dataId is not expected. Current DataId:{CurrentDataId}, Incoming dataId:{IncomingDataId}", GetDataId(Data), dataId);
246+
_logger.LogDebug("dataId is not expected. Current DataId:{CurrentDataId}, Incoming dataId:{IncomingDataId}", GetDataId(Data), dataId);
243247
throw new ArgumentOutOfRangeException(nameof(dataId), "dataId is not expected");
244248
}
245249

0 commit comments

Comments
 (0)