示例#1
0
        /// <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);
                }
            }
        }