mirror of
https://github.com/ZuneDev/ZuneShell.dll.git
synced 2026-07-27 13:11:51 -07:00
113 lines
4.2 KiB
C#
113 lines
4.2 KiB
C#
// Decompiled with JetBrains decompiler
|
|
// Type: ZuneUI.SelectPaymentInstrumentStep
|
|
// 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.Zune.Service;
|
|
using System.Collections;
|
|
using System.ComponentModel;
|
|
|
|
namespace ZuneUI
|
|
{
|
|
public class SelectPaymentInstrumentStep : AccountManagementStep
|
|
{
|
|
private PaymentInstrumentHelper _helper;
|
|
private bool _loadedCreditCards;
|
|
private CreditCard _committedCreditCard;
|
|
|
|
public SelectPaymentInstrumentStep(
|
|
Wizard owner,
|
|
AccountManagementWizardState state,
|
|
bool parent)
|
|
: base(owner, state, parent)
|
|
{
|
|
this.Description = Shell.LoadString(StringId.IDS_BILLING_EDIT_CC_EDIT_HEADER);
|
|
this._helper = new PaymentInstrumentHelper();
|
|
this._helper.PropertyChanged += new PropertyChangedEventHandler(this.HelperPropertyChanged);
|
|
this.RequireSignIn = true;
|
|
}
|
|
|
|
protected override void OnDispose(bool disposing)
|
|
{
|
|
base.OnDispose(disposing);
|
|
if (this._helper == null || !disposing)
|
|
return;
|
|
this._helper.PropertyChanged -= new PropertyChangedEventHandler(this.HelperPropertyChanged);
|
|
this._helper.Dispose();
|
|
this._helper = null;
|
|
}
|
|
|
|
public override string UI => "res://ZuneShellResources!AccountInfo.uix#SelectPaymentInstrumentStep";
|
|
|
|
public override bool IsEnabled
|
|
{
|
|
get
|
|
{
|
|
bool flag = base.IsEnabled;
|
|
if (flag)
|
|
flag = this._owner.CurrentPage == this ? this._loadedCreditCards : !this._loadedCreditCards || this.CreditCards != null && this.CreditCards.Count > 0;
|
|
return flag;
|
|
}
|
|
}
|
|
|
|
public CreditCard CommittedCreditCard
|
|
{
|
|
get => this._committedCreditCard;
|
|
set
|
|
{
|
|
if (this._committedCreditCard == value)
|
|
return;
|
|
this._committedCreditCard = value;
|
|
this.ResetNextTextOverride();
|
|
this.FirePropertyChanged(nameof(CommittedCreditCard));
|
|
}
|
|
}
|
|
|
|
protected virtual void ResetNextTextOverride()
|
|
{
|
|
if (this._committedCreditCard != null && this.State.SelectBillingOfferStep.SubscriptionsOnly && !this.State.IsPurchaseConfirmationNeeded)
|
|
this.NextTextOverride = Shell.LoadString(StringId.IDS_BILLING_SIGN_UP);
|
|
else if (this._committedCreditCard != null && this.State.SelectBillingOfferStep.PointsOffersOnly)
|
|
this.NextTextOverride = Shell.LoadString(StringId.IDS_BILLING_BUY_BTN);
|
|
else
|
|
this.NextTextOverride = null;
|
|
}
|
|
|
|
public IList CreditCards => this._helper.CreditCards;
|
|
|
|
protected override void OnActivate()
|
|
{
|
|
base.OnActivate();
|
|
if (this._loadedCreditCards || this.CreditCards != null && this.CreditCards.Count != 0)
|
|
return;
|
|
this._helper.GetPaymentInstruments();
|
|
}
|
|
|
|
private void HelperPropertyChanged(object sender, PropertyChangedEventArgs args)
|
|
{
|
|
if (this.IsDisposed || this._helper == null)
|
|
return;
|
|
if (args.PropertyName == "CreditCards")
|
|
{
|
|
this._loadedCreditCards = true;
|
|
this.FirePropertyChanged("PaymentInstruments");
|
|
this.FirePropertyChanged("IsEnabled");
|
|
if (this._helper.CreditCards != null && this._helper.CreditCards.Count != 0)
|
|
return;
|
|
this._owner.MoveNext();
|
|
}
|
|
else if (args.PropertyName == "Default")
|
|
{
|
|
this.CommittedCreditCard = this._helper.Default as CreditCard;
|
|
}
|
|
else
|
|
{
|
|
if (!(args.PropertyName == "ErrorCode") || !this._helper.ErrorCode.IsError)
|
|
return;
|
|
this.SetError(this._helper.ErrorCode, null);
|
|
}
|
|
}
|
|
}
|
|
}
|