Files
ZuneShell.dll/ZuneShell/ZuneUI/DeleteSubscriptionDownloadsDialog.cs

81 lines
3.1 KiB
C#

// Decompiled with JetBrains decompiler
// Type: ZuneUI.DeleteSubscriptionDownloadsDialog
// Assembly: ZuneShell, Version=4.7.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
// MVID: FC8028F3-A47B-4FB4-B35B-11D1752D8264
// Assembly location: C:\Program Files\Zune\ZuneShell.dll
using Microsoft.Iris;
using Microsoft.Zune.Shell;
using Microsoft.Zune.Util;
using System;
using UIXControls;
namespace ZuneUI
{
public class DeleteSubscriptionDownloadsDialog : DialogHelper
{
private Command m_delete;
private string m_title;
private bool m_enabled;
public static void ShowDialog()
{
string subscriptionDirectory = ZuneApplication.Service2.GetSubscriptionDirectory();
if (string.IsNullOrEmpty(subscriptionDirectory))
MessageBox.Show(Shell.LoadString(StringId.IDS_ACCOUNT_CLEAR_SUB_FAIL_TITLE), Shell.LoadString(StringId.IDS_ACCOUNT_CLEAR_SUB_NO_DIRECTORY), null);
else
new DeleteSubscriptionDownloadsDialog(subscriptionDirectory).Show();
}
public Command Delete => this.m_delete;
public bool Enabled
{
get => this.m_enabled;
private set
{
if (this.m_enabled == value)
return;
this.Delete.Available = value;
this.Cancel.Available = value;
this.m_enabled = value;
this.FirePropertyChanged(nameof(Enabled));
}
}
public string Title => this.m_title;
protected DeleteSubscriptionDownloadsDialog(string subscriptionDirectory)
: base("res://ZuneShellResources!ManagementAccount.uix#DeleteSubscriptionDownloadsDialogContentUI")
{
this.m_enabled = true;
this.m_title = Shell.LoadString(StringId.IDS_ACCOUNT_CLEAR_SUBSCRIPTION_TITLE);
this.Description = string.Format(Shell.LoadString(StringId.IDS_ACCOUNT_CLEAR_SUBSCRIPTION_CONFIRM), subscriptionDirectory);
this.m_delete = new Command(this, Shell.LoadString(StringId.IDS_DIALOG_OK), new EventHandler(this.OnDeleteInvoked));
this.Cancel.Invoked += new EventHandler(this.OnCancel);
}
private void OnCancel(object sender, EventArgs args) => this.Hide();
private void OnDeleteInvoked(object sender, EventArgs args)
{
if (!this.Enabled)
return;
this.Enabled = false;
ZuneApplication.Service2.DeleteSubscriptionDownloads(new AsyncCompleteHandler(this.OnDeleteComplete));
}
private void OnDeleteComplete(HRESULT hr) => Application.DeferredInvoke(new DeferredInvokeHandler(this.DeferredDeleteCompleteEvent), hr);
private void DeferredDeleteCompleteEvent(object arg)
{
this.Enabled = true;
HRESULT hresult = (HRESULT)arg;
this.Hide();
if (!hresult.IsError)
return;
Shell.ShowErrorDialog(hresult.Int, StringId.IDS_ACCOUNT_CLEAR_SUB_FAIL_TITLE, StringId.IDS_ACCOUNT_CLEAR_SUB_FAIL_MESSAGE);
}
}
}