/// <summary> /// Private helper to fire <see cref="ForgetRequested"/>. /// </summary> private Task FireForgetRequested() { RequestForgetDescriptorEventArgs args = new RequestForgetDescriptorEventArgs(this); ForgetRequested?.Invoke(this, args); return(args.DeferAsync()); }
/// <summary> /// Intended to be registered as a handler for <see cref="StoredFileDescriptor.ForgetRequested"/>. /// </summary> /// <param name="sender">The descriptor being deleted.</param> /// <param name="e">Unused.</param> private async void ForgetRequestedHandler(StoredFileDescriptor sender, RequestForgetDescriptorEventArgs args) { // Ask the user whether they consent/understand the deletion if (!sender.IsAppOwned || await this.deletePrompter.PromptYesNoAsync()) { // Delete from access list if appropriate if (this.accessList.ContainsItem(sender.Token)) { this.accessList.Remove(sender.Token); } // Update ViewModel's data list this.data.Remove(sender); // If this represents a proxy, delete it if (sender.IsAppOwned) { // Delete the proxy await this.proxyProvider.TryDeleteProxyAsync(sender.Metadata); } } }