コード例 #1
0
        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());
        }