Skip to content

Commit 759142c

Browse files
committed
Debug EDSM errors, reduce use of .ConfigureAwait(false)
1 parent 637cf4b commit 759142c

15 files changed

Lines changed: 92 additions & 88 deletions

DataProviderService/DataProviderService.cs

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public DataProviderService ( StarMapService edsmService = null,
4040

4141
public async Task<List<string>> GetTypeAheadSystemsAsync ( string systemName, CancellationToken cancellationToken )
4242
{
43-
return await spanshService.GetTypeAheadSystemNamesAsync( systemName, cancellationToken ).ConfigureAwait(false);
43+
return await spanshService.GetTypeAheadSystemNamesAsync( systemName, cancellationToken );
4444
}
4545

4646
[NotNull]
@@ -61,7 +61,7 @@ Dictionary<ulong, string> missingSystems () => requestedSystems
6161
.Where( k => results.All( s => s.systemAddress != k.Key ) )
6262
.ToDictionary( k => k.Key, v => v.Value );
6363

64-
results = await GetOrFetchStarSystemsAsync( missingSystems().Keys.ToArray(), fetchIfMissing, refreshIfOutdated, showMarketDetails, fetchEdsmVisitsAndComments ).ConfigureAwait(false) ?? new List<StarSystem>();
64+
results = await GetOrFetchStarSystemsAsync( missingSystems().Keys.ToArray(), fetchIfMissing, refreshIfOutdated, showMarketDetails, fetchEdsmVisitsAndComments ) ?? new List<StarSystem>();
6565

6666
// Create a new system object for each name that isn't in the database and couldn't be fetched from a server
6767
var createdStarSystems = missingSystems()
@@ -77,7 +77,7 @@ public async Task<StarSystem> GetOrFetchStarSystemAsync ( ulong systemAddress, b
7777
if ( systemAddress <= 0 ) { return null; }
7878

7979
var starSystems = await GetOrFetchStarSystemsAsync( new[] { systemAddress }, fetchIfMissing,
80-
refreshIfOutdated, showMarketDetails, fetchEdsmVisitsAndComments ).ConfigureAwait( false );
80+
refreshIfOutdated, showMarketDetails, fetchEdsmVisitsAndComments );
8181
return starSystems?.FirstOrDefault();
8282
}
8383

@@ -108,11 +108,11 @@ public async Task<StarSystem> GetOrFetchStarSystemAsync ( string systemName, boo
108108
}
109109

110110
// Fetch from external data sources (when so instructed)
111-
var fetchedWaypoint = await GetOrFetchSystemWaypointAsync( systemName ).ConfigureAwait(false);
111+
var fetchedWaypoint = await GetOrFetchSystemWaypointAsync( systemName );
112112
if ( fetchedWaypoint is null ) { return null; }
113113

114114
var starSystems = await GetOrFetchStarSystemsAsync( new[] { fetchedWaypoint.systemAddress }, fetchIfMissing,
115-
refreshIfOutdated, showMarketDetails, fetchEdsmVisitsAndComments ).ConfigureAwait(false);
115+
refreshIfOutdated, showMarketDetails, fetchEdsmVisitsAndComments );
116116
return starSystems?.FirstOrDefault();
117117
}
118118

@@ -132,13 +132,13 @@ public async Task<List<StarSystem>> GetOrFetchStarSystemsAsync ( ulong[] systemA
132132
// Fetch from external data providers (when so instructed)
133133
if ( missingSystems().Any() && fetchIfMissing )
134134
{
135-
var fetchedSystems = await FetchSystemsDataAsync( missingSystems(), showMarketDetails ).ConfigureAwait(false) ?? new List<StarSystem>();
135+
var fetchedSystems = await FetchSystemsDataAsync( missingSystems(), showMarketDetails ) ?? new List<StarSystem>();
136136
if ( fetchedSystems.Count > 0 )
137137
{
138138
if ( fetchEdsmVisitsAndComments )
139139
{
140140
// Synchronize EDSM visits and comments
141-
fetchedSystems = await SyncFromStarMapServiceAsync( fetchedSystems ).ConfigureAwait(false);
141+
fetchedSystems = await SyncFromStarMapServiceAsync( fetchedSystems );
142142
}
143143

144144
// Update properties that aren't synced from the server and that we want to preserve
@@ -187,7 +187,7 @@ public async Task<List<StarSystem>> GetOrFetchQuickStarSystemsAsync ( ulong[] sy
187187
if ( missingSystems().Any() && fetchIfMissing )
188188
{
189189
// Add the external data to our results
190-
results.AddRange( await spanshService.GetQuickStarSystemsAsync( missingSystems(), CancellationToken.None ).ConfigureAwait(false) );
190+
results.AddRange( await spanshService.GetQuickStarSystemsAsync( missingSystems(), CancellationToken.None ) );
191191
}
192192

193193
if ( missingSystems().Any() )
@@ -200,16 +200,16 @@ public async Task<List<StarSystem>> GetOrFetchQuickStarSystemsAsync ( ulong[] sy
200200

201201
public async Task<List<StarSystem>> GetOrFetchQuickStarSystemsAsync ( string[] systemNames, bool fetchIfMissing = true )
202202
{
203-
var waypointTasks = systemNames.AsParallel().Select( async s => await GetOrFetchSystemWaypointAsync( s ).ConfigureAwait( false ) );
204-
var waypoints = await Task.WhenAll(waypointTasks).ConfigureAwait(false);
203+
var waypointTasks = systemNames.AsParallel().Select( async s => await GetOrFetchSystemWaypointAsync( s ) );
204+
var waypoints = await Task.WhenAll(waypointTasks);
205205
var systemAddresses = waypoints.Where( wp => wp != null ).Select( wp => wp.systemAddress ).ToArray();
206-
return await GetOrFetchQuickStarSystemsAsync( systemAddresses.ToArray(), fetchIfMissing ).ConfigureAwait( false );
206+
return await GetOrFetchQuickStarSystemsAsync( systemAddresses.ToArray(), fetchIfMissing );
207207
}
208208

209209
public async Task<NavWaypoint> GetOrFetchSystemWaypointAsync ( string systemName )
210210
{
211211
if ( string.IsNullOrEmpty(systemName) ) { return null; }
212-
var wp = await GetOrFetchSystemWaypointsAsync( new[] { systemName } ).ConfigureAwait( false );
212+
var wp = await GetOrFetchSystemWaypointsAsync( new[] { systemName } );
213213
return wp.FirstOrDefault();
214214
}
215215

@@ -226,7 +226,7 @@ public async Task<List<NavWaypoint>> GetOrFetchSystemWaypointsAsync ( string[] s
226226
// Fetch from Spansh
227227
var waypoints = missingSystems().AsParallel().Select( async systemName =>
228228
{
229-
var wp = await spanshService.GetWaypointsBySystemNameAsync( systemName.Trim(), CancellationToken.None ).ConfigureAwait( false );
229+
var wp = await spanshService.GetWaypointsBySystemNameAsync( systemName.Trim(), CancellationToken.None );
230230
return wp.FirstOrDefault( s => s.systemName.Equals( systemName, StringComparison.InvariantCultureIgnoreCase ) );
231231
} ).ToList();
232232
results.AddRange( await Task.WhenAll( waypoints ) );
@@ -256,7 +256,7 @@ public async Task<NavWaypoint> GetOrFetchStationWaypointAsync ( ulong fromSystem
256256
}
257257
}
258258

259-
var system = await GetOrFetchQuickStarSystemAsync( fromSystemAddress ).ConfigureAwait(false);
259+
var system = await GetOrFetchQuickStarSystemAsync( fromSystemAddress );
260260
var station = system?.stations.FirstOrDefault( s => s.marketId == fromMarketId );
261261
if ( station != null )
262262
{
@@ -293,11 +293,11 @@ public async Task<NavWaypoint> GetOrFetchStationWaypointAsync ( string fromSyste
293293
}
294294

295295
// Fetch from Spansh
296-
var wp = await GetOrFetchSystemWaypointAsync( fromSystemName ).ConfigureAwait(false);
296+
var wp = await GetOrFetchSystemWaypointAsync( fromSystemName );
297297
if ( wp?.systemAddress != null )
298298
{
299299

300-
var system = await GetOrFetchQuickStarSystemAsync( wp.systemAddress ).ConfigureAwait(false);
300+
var system = await GetOrFetchQuickStarSystemAsync( wp.systemAddress );
301301
var station = system?.stations.FirstOrDefault( s => s.marketId == fromMarketId );
302302
return new NavWaypoint( system )
303303
{
@@ -506,21 +506,21 @@ public async Task<NavWaypointCollection> FetchCarrierRouteAsync ( string current
506506
bool calculateTotalFuelRequired = true, string[] refuelDestinations = null, bool fromUIquery = false )
507507
{
508508
return await spanshService.GetCarrierRouteAsync( currentSystem, targetSystems, usedCarrierCapacity,
509-
calculateTotalFuelRequired, refuelDestinations, fromUIquery ).ConfigureAwait( false );
509+
calculateTotalFuelRequired, refuelDestinations, fromUIquery );
510510
}
511511

512512
public async Task<NavWaypointCollection> FetchGalaxyRouteAsync ( string currentSystem, string targetSystem, Ship ship,
513513
int? cargoCarriedTons = null, bool isSupercharged = false, bool useSupercharge = true,
514514
bool useInjections = false, bool excludeSecondary = false, bool fromUIquery = false )
515515
{
516516
return await spanshService.GetGalaxyRouteAsync( currentSystem, targetSystem, ship, cargoCarriedTons, isSupercharged,
517-
useSupercharge, useInjections, excludeSecondary, fromUIquery ).ConfigureAwait( false );
517+
useSupercharge, useInjections, excludeSecondary, fromUIquery );
518518
}
519519

520520
internal async Task<IList<StarSystem>> FetchSystemsDataAsync ( ulong[] systemAddresses, bool showMarketDetails )
521521
{
522522
if ( systemAddresses == null || systemAddresses.Length == 0 ) { return new List<StarSystem>(); }
523-
return await spanshService.GetStarSystemsAsync( systemAddresses, showMarketDetails, CancellationToken.None ).ConfigureAwait(false);
523+
return await spanshService.GetStarSystemsAsync( systemAddresses, showMarketDetails, CancellationToken.None );
524524
}
525525

526526
/// <summary>
@@ -533,7 +533,7 @@ internal async Task<IList<StarSystem>> FetchSystemsDataAsync ( ulong[] systemAdd
533533
/// <returns></returns>
534534
public async Task<NavWaypoint> FetchStationWaypointAsync ( decimal fromX, decimal fromY, decimal fromZ, Dictionary<string, object> filters )
535535
{
536-
var data = await spanshService.DistanceOrderedQueryAsync( SpanshService.QueryGroup.stations, fromX, fromY, fromZ, filters, CancellationToken.None ).ConfigureAwait(false);
536+
var data = await spanshService.DistanceOrderedQueryAsync( SpanshService.QueryGroup.stations, fromX, fromY, fromZ, filters, CancellationToken.None );
537537
if ( data?[ "error" ] != null )
538538
{
539539
Logging.Warn( "Spansh API responded with: " + data[ "error" ] );
@@ -552,7 +552,7 @@ public async Task<NavWaypoint> FetchStationWaypointAsync ( decimal fromX, decima
552552
/// <returns></returns>
553553
public async Task<NavWaypoint> FetchBodyWaypointAsync ( decimal fromX, decimal fromY, decimal fromZ, Dictionary<string, object> filters )
554554
{
555-
var data = await spanshService.DistanceOrderedQueryAsync( SpanshService.QueryGroup.bodies, fromX, fromY, fromZ, filters, CancellationToken.None ).ConfigureAwait(false);
555+
var data = await spanshService.DistanceOrderedQueryAsync( SpanshService.QueryGroup.bodies, fromX, fromY, fromZ, filters, CancellationToken.None );
556556
if ( data?[ "error" ] != null )
557557
{
558558
Logging.Warn( "Spansh API responded with: " + data[ "error" ] );
@@ -604,21 +604,21 @@ public async Task<Faction> FetchFactionByNameAsync ( string factionName, string
604604
public async Task<Traffic> GetSystemTrafficAsync ( string systemName, long? edsmId = null )
605605
{
606606
if (string.IsNullOrEmpty(systemName)) { return null; }
607-
return await edsmService.GetStarMapTrafficAsync(systemName, edsmId).ConfigureAwait(false) ?? new Traffic();
607+
return await edsmService.GetStarMapTrafficAsync(systemName, edsmId) ?? new Traffic();
608608
}
609609

610610
[CanBeNull]
611611
public async Task<Traffic> GetSystemDeathsAsync ( string systemName, long? edsmId = null )
612612
{
613613
if (string.IsNullOrEmpty(systemName)) { return null; }
614-
return await edsmService.GetStarMapDeathsAsync(systemName, edsmId).ConfigureAwait( false ) ?? new Traffic();
614+
return await edsmService.GetStarMapDeathsAsync(systemName, edsmId) ?? new Traffic();
615615
}
616616

617617
[CanBeNull]
618618
public async Task<Traffic> GetSystemHostilityAsync( string systemName, long? edsmId = null )
619619
{
620620
if (string.IsNullOrEmpty(systemName)) { return null; }
621-
return await edsmService.GetStarMapHostilityAsync(systemName, edsmId).ConfigureAwait( false ) ?? new Traffic();
621+
return await edsmService.GetStarMapHostilityAsync(systemName, edsmId) ?? new Traffic();
622622
}
623623

624624
// EDSM Journal Synchronization
@@ -633,7 +633,7 @@ public async Task StopEdsmJournalAsync ()
633633
{
634634
if ( edsmService != null )
635635
{
636-
await edsmService.StopJournalAsync().ConfigureAwait( false );
636+
await edsmService.StopJournalAsync();
637637
}
638638
}
639639

@@ -653,22 +653,22 @@ public async Task SyncFromStarMapServiceAsync ( DateTime? lastSync = null )
653653
{
654654
Logging.Info( "Syncing all flight logs from EDSM" );
655655

656-
var flightLogs = await edsmService.getStarMapLogAsync(lastSync).ConfigureAwait(false);
656+
var flightLogs = await edsmService.getStarMapLogAsync(lastSync);
657657
if ( flightLogs == null || flightLogs.Count == 0 )
658658
{
659659
Logging.Debug( "EDSM flight logs are already synchronized; no new flight logs since last sync." );
660660
return;
661661
}
662662

663-
var comments = await edsmService.getStarMapCommentsAsync().ConfigureAwait(false);
663+
var comments = await edsmService.getStarMapCommentsAsync();
664664

665665
// Process in batches
666666
var total = flightLogs.Count;
667667
for ( var i = 0; i < total; i += StarMapService.syncBatchSize )
668668
{
669669
var batchSize = Math.Min(StarMapService.syncBatchSize, total - i);
670670
var batch = flightLogs.GetRange(i, batchSize);
671-
await SyncEdsmLogBatchAsync( batch, comments ).ConfigureAwait(false);
671+
await SyncEdsmLogBatchAsync( batch, comments );
672672
}
673673

674674
Logging.Info( "EDSM flight logs synchronized" );
@@ -691,8 +691,8 @@ public async Task<IList<StarSystem>> SyncFromStarMapServiceAsync(IList<StarSyste
691691
try
692692
{
693693
Logging.Debug( $"Syncing flight logs from EDSM for {starSystems.Count} system(s)." );
694-
var flightLogs = await edsmService.getStarMapLogAsync(null, starSystems.Select(s => s.systemAddress).ToArray()).ConfigureAwait(false);
695-
var comments = await edsmService.getStarMapCommentsAsync().ConfigureAwait(false);
694+
var flightLogs = await edsmService.getStarMapLogAsync(null, starSystems.Select(s => s.systemAddress).ToArray());
695+
var comments = await edsmService.getStarMapCommentsAsync();
696696

697697
if (flightLogs?.Count > 0)
698698
{
@@ -740,7 +740,7 @@ public async Task SyncEdsmLogBatchAsync ( List<StarMapResponseLogEntry> flightLo
740740
.Select( f => f.systemId64 )
741741
.Distinct()
742742
.ToArray();
743-
var batchSystems = await GetOrFetchStarSystemsAsync( uniqueAddresses, refreshIfOutdated: false, fetchEdsmVisitsAndComments: false ).ConfigureAwait(false);
743+
var batchSystems = await GetOrFetchStarSystemsAsync( uniqueAddresses, refreshIfOutdated: false, fetchEdsmVisitsAndComments: false );
744744
var lookup = batchSystems.ToDictionary(s => s.systemAddress);
745745
var groupedLogs = flightLogBatch.GroupBy(f => f.systemId64);
746746

EddiSpanshService/CarrierRouter.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ public async Task<NavWaypointCollection> GetCarrierRouteAsync(string currentSyst
1818
if (!fromUIquery)
1919
{
2020
// The Spansh Carrier Plotter uses case sensitive system names. Use the TypeAhead API to normalize casing.
21-
var wp = await GetWaypointsBySystemNameAsync(currentSystem, CancellationToken.None).ConfigureAwait(false);
21+
var wp = await GetWaypointsBySystemNameAsync(currentSystem, CancellationToken.None);
2222
currentSystem = wp.FirstOrDefault()?.systemName;
2323

2424
for (var i = 0; i < targetSystems.Length; i++)
2525
{
26-
wp = await GetWaypointsBySystemNameAsync( targetSystems[ i ], CancellationToken.None ).ConfigureAwait( false );
26+
wp = await GetWaypointsBySystemNameAsync( targetSystems[ i ], CancellationToken.None );
2727
targetSystems[i] = wp.FirstOrDefault()?.systemName;
2828
}
2929
}
@@ -37,9 +37,9 @@ public async Task<NavWaypointCollection> GetCarrierRouteAsync(string currentSyst
3737
try
3838
{
3939
var requestUri = CarrierRouteRequest(currentSystem, targetSystems, usedCarrierCapacity, calculateTotalFuelRequired, refuel_destinations);
40-
var initialResponse = await spanshHttpClient.GetAsync( requestUri, CancellationToken.None ).ConfigureAwait( false );
40+
var initialResponse = await spanshHttpClient.GetAsync( requestUri, CancellationToken.None );
4141
initialResponse.EnsureSuccessStatusCode();
42-
var responseJson = await initialResponse.Content.ReadAsStringAsync().ConfigureAwait( false );
42+
var responseJson = await initialResponse.Content.ReadAsStringAsync();
4343

4444
if ( string.IsNullOrEmpty( responseJson ) )
4545
{
@@ -49,7 +49,7 @@ public async Task<NavWaypointCollection> GetCarrierRouteAsync(string currentSyst
4949

5050
if ( JObject.Parse( responseJson ).TryGetValue( "job", StringComparison.OrdinalIgnoreCase, out var value ) && value.ToString() is string jobId )
5151
{
52-
var result = await GetRouteResponseAsync( jobId, CancellationToken.None ).ConfigureAwait( false );
52+
var result = await GetRouteResponseAsync( jobId, CancellationToken.None );
5353
if ( result is null )
5454
{
5555
Logging.Warn( $"Spansh API returned no route to system {targetSystems.LastOrDefault()}." );

0 commit comments

Comments
 (0)