public async Task OnEntry(NotificationResponse response) { var notification = response.Notification; var payload = notification?.Payload; if (payload?.Any() == true && payload.ContainsKey(nameof(CatalogEntry.Id)) && payload.ContainsKey(nameof(CatalogEntry.Version))) { try { var packageId = payload[nameof(CatalogEntry.Id)]; var version = payload[nameof(CatalogEntry.Version)]; await _launcher.TryOpenAsync($"muget://package/{packageId}/{version}"); } catch (Exception ex) { _logger.Error(ex); } } }
public SettingsViewModel( IBrowser browser, ILauncher launcher, IDeviceInfo deviceInfo, IAppInfo appInfo, IVersionTracking versionTracking, IEmail email, IStoreReview storeReview, IMuGetPackageService muGetPackageService, IBvmConstructor bvmConstructor) : base(bvmConstructor) { Title = Resources.Settings; _browser = browser; _launcher = launcher; _deviceInfo = deviceInfo; _appInfo = appInfo; _versionTracking = versionTracking; _email = email; _storeReview = storeReview; _muGetPackageService = muGetPackageService; MuGetPackages = new ObservableRangeCollection <MuGetPackage>(_muGetPackageService.GetPackages()); SettingsItemTappedCommand = new AsyncCommand <SettingItem>(SettingsItemTappedAsync); PackageTappedCommand = new AsyncCommand <MuGetPackage>(async(p) => { if (!string.IsNullOrEmpty(p?.PackageId)) { await _launcher.TryOpenAsync(string.Format(Resources.PackageUrlFormat, p.PackageId)); } }); ResetNotificationsCommand = new Command(ResetNotifications); RunJobsCommand = new AsyncCommand(RunJobsAsync); }
public static Task <bool> TryOpenAsync(this ILauncher launcher, string uri) => launcher.TryOpenAsync(new Uri(uri));