AcManager.Tools.Helpers.TracksLocator.TryToLocateAsync C# (CSharp) Method

TryToLocateAsync() private method

private TryToLocateAsync ( [ address ) : Task
address [
return Task
        public static async Task<GeoTagsEntry> TryToLocateAsync([CanBeNull] string address) {
            if (string.IsNullOrWhiteSpace(address)) return null;

            var key = Key + address;
            if (CacheStorage.Contains(key)) {
                var cache = CacheStorage.GetPointNullable(key);
                return cache.HasValue ? new GeoTagsEntry(cache.Value.X, cache.Value.Y) : null;
            }

            try {
                var result = await YahooApiProvider.LocateAsync(address);
                if (result.LatitudeValue.HasValue && result.LongitudeValue.HasValue) {
                    Logging.Write($"“{address}”, geo tags: ({result})");
                    CacheStorage.Set(key, new Point(result.LatitudeValue.Value, result.LongitudeValue.Value));
                    return result;
                }

                CacheStorage.Set(key, "");
                return null;
            } catch (WebException e) {
                Logging.Warning("TryToLocateAsync(): " + e.Message);
                return null;
            } catch (Exception e) {
                Logging.Warning("TryToLocateAsync(): " + e);
                CacheStorage.Set(key, "");
                return null;
            }
        }

Same methods

TracksLocator::TryToLocateAsync ( [ country, [ city ) : Task
TracksLocator