async Task <IEnumerable <NetworkEndpoint> > RefreshStaleEndpoints(IEnumerable <NetworkEndpoint> stale) { var refreshing = stale.Select(async(NetworkEndpoint oldState) => { var newState = oldState; try { newState = await refresher.Refresh(oldState); log.LogInformation("Refreshed NetworkEndpoint. Endpoint:{@Endpoint}", newState); cache.Put(newState); await endpointService.UpdateAsync(newState); log.LogInformation("Updated NetworkEndpoint. Old:{@{Old} New:{@New}", oldState, newState); } catch (HttpRequestException hre) { log.LogError("Could not refresh NetworkEndpoint. Endpoint:{@Endpoint} Error:{Error}", oldState, hre.Message); } catch (SqlException se) { log.LogError("Could not update NetworkEndpoint. Old:{@Old} New:{@New} Error:{Error}", oldState, newState, se.Message); } return(newState); }); return(await Task.WhenAll(refreshing)); }
async Task <IEnumerable <NetworkEndpoint> > RefreshStaleEndpoints(IEnumerable <NetworkEndpoint> stale) { var refreshing = stale.Select(async(NetworkEndpoint oldState) => { var newState = oldState; try { newState = await refresher.Refresh(oldState); log.LogInformation("Refreshed NetworkEndpoint. Endpoint:{@Endpoint}", newState); var updated = await endpointManager.UpdateEndpointAsync(newState); newState = updated; if (newState != null) { cache.Put(newState); } log.LogInformation("Updated NetworkEndpoint. Old:{@{Old} New:{@New}", oldState, newState); } catch (HttpRequestException hre) { log.LogError("Failed to refresh NetworkEndpoint. Endpoint:{@Endpoint} Error:{Error}", oldState, hre.Message); } catch (DbException se) { log.LogError("Failed to update NetworkEndpoint. Old:{@Old} New:{@New} Error:{Error}", oldState, newState, se.Message); cache.PopOrDefault(oldState.Issuer); } return(newState); }); return(await Task.WhenAll(refreshing)); }