public async Task <GeofenceRequest[]> GetNewGeofencesForActiveNavigations(string userId, FocusManageResult manageResult, DateTimeOffset now) { var geofences = manageResult.ActiveItems.Where(v => null != v.DirectionsMetadata && null == v.DirectionsMetadata.Error) .Where(v => v.Directions.Routes[v.DirectionsMetadata.PeferredRoute].DepatureTime - now < FocusConstants.DeparturePending) .SelectMany(item => GetGeofences(item)); return((await Task.WhenAll(geofences.Select(async gfr => new { gfr, exists = await _locationStore.Exists(userId, gfr) }))) .Where(v => !v.exists).Select(v => v.gfr).ToArray()); }