public async Task <LocationResponse> LocationUpdateReceivedAsync(string userId, Location location, DateTimeOffset now, FocusManageResult focusManageResult)
        {
            await pushSyncService.SetLocationRequestDone(userId);

            await locationStore.UpdateLocationAsync(userId, location);

            //if (location.RequestSupport.HasValue && !location.RequestSupport.Value)
            //{
            //    return new LocationResponse();
            //}
            var response = new LocationResponse()
            {
                NextUpdateRequiredAt = await RequestLocationForItems(userId, focusManageResult, now, location.Timestamp),
                Geofences            = await locationStore.GetActiveGeofenceRequests(userId, now)
            };

            if (response.NextUpdateRequiredAt.HasValue)
            {
                await pushSyncService.SetLocationRequestedExternal(userId, response.NextUpdateRequiredAt.Value);
            }
            return(response);
        }