Beispiel #1
0
        private async Task DeleteSamples(Measure measure)
        {
            if (_suppressed)
            {
                return;
            }

            var predicate = HKQuery.GetPredicateForMetadataKey(
                HKMetadataKey.ExternalUuid,
                new[] { NSObject.FromObject(MetadataKey.GetExternalUUID(measure.Id)) });

            var result = await _healthStore.DeleteObjectsAsync(
                HKQuantityType.Create(HKQuantityTypeIdentifier.BloodGlucose),
                predicate);

            if (!result.Item1)
            {
                _log.Warn($"Can't delete blood glucose data by reason: {result.Item2.LocalizedDescription}");
            }

            result = await _healthStore.DeleteObjectsAsync(
                HKQuantityType.Create(HKQuantityTypeIdentifier.InsulinDelivery),
                predicate);

            if (!result.Item1)
            {
                _log.Warn($"Can't delete insulin data by reason: {result.Item2.LocalizedDescription}");
            }
        }
Beispiel #2
0
        private async Task EditMeasure(Measure measure)
        {
            if (_suppressed)
            {
                return;
            }

            if (!measure.Level.HasValue)
            {
                var predicate = HKQuery.GetPredicateForMetadataKey(
                    HKMetadataKey.ExternalUuid,
                    new[] { NSObject.FromObject(MetadataKey.GetExternalUUID(measure.Id)) });

                await _healthStore.DeleteObjectsAsync(
                    HKQuantityType.Create(HKQuantityTypeIdentifier.BloodGlucose),
                    predicate);
            }

            var samples = GetQuantitySamples(measure);

            await AddSamples(samples);
        }