Files
ZuneShell.dll/ZuneUI/SelectPaymentInstrumentStep.cs
T

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);
}
}
}
}