Files

101 lines
4.0 KiB
C#

// Decompiled with JetBrains decompiler
// Type: ZuneXml.App
// 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 System;
namespace ZuneXml
{
internal class App : MiniMedia
{
internal double Price
{
get
{
Right right = this.SelectBestOfferRight();
return right == null ? 0.0 : right.CurrencyPrice;
}
}
internal string DisplayPrice => this.SelectBestOfferRight()?.DisplayPrice;
internal string DisplayPriceFull => this.Rights.GetOfferRight(MediaRightsEnum.Purchase, ClientTypeEnum.WindowsPhone, PriceTypeEnum.Currency)?.DisplayPrice;
internal string DisplayPriceTrial => this.Rights.GetOfferRight(MediaRightsEnum.PurchaseTrial, ClientTypeEnum.WindowsPhone, PriceTypeEnum.Currency)?.DisplayPrice;
internal bool CanDownload => this.Rights.HasRights(MediaRightsEnum.Purchase, ClientTypeEnum.Zune) || this.Rights.HasRights(MediaRightsEnum.Download, ClientTypeEnum.Zune);
internal bool CanPurchase => this.CanPurchaseFull || this.CanPurchaseTrial;
internal bool CanPurchaseFull => this.Rights.HasOfferRights(MediaRightsEnum.Purchase, ClientTypeEnum.WindowsPhone, PriceTypeEnum.Currency);
internal bool CanPurchaseTrial => this.Rights.HasOfferRights(MediaRightsEnum.PurchaseTrial, ClientTypeEnum.WindowsPhone, PriceTypeEnum.Currency);
private Right SelectBestOfferRight() => this.Rights.GetOfferRight(MediaRightsEnum.Purchase, ClientTypeEnum.WindowsPhone, PriceTypeEnum.Currency) ?? this.Rights.GetOfferRight(MediaRightsEnum.PurchaseTrial, ClientTypeEnum.WindowsPhone, PriceTypeEnum.Currency);
internal static XmlDataProviderObject ConstructAppObject(
DataProviderQuery owner,
object objectTypeCookie)
{
return new App(owner, objectTypeCookie);
}
internal App(DataProviderQuery owner, object resultTypeCookie)
: base(owner, resultTypeCookie)
{
}
internal string SortTitle => (string)base.GetProperty(nameof(SortTitle));
internal Guid ImageId => (Guid)base.GetProperty(nameof(ImageId));
internal DateTime ReleaseDate => (DateTime)base.GetProperty(nameof(ReleaseDate));
internal string GenreName => (string)base.GetProperty(nameof(GenreName));
internal string Version => (string)base.GetProperty(nameof(Version));
internal string Author => (string)base.GetProperty(nameof(Author));
internal string Publisher => (string)base.GetProperty(nameof(Publisher));
internal string ShortDescription => (string)base.GetProperty(nameof(ShortDescription));
internal float AverageRating => (float)base.GetProperty(nameof(AverageRating));
internal AppMediaRights Rights => (AppMediaRights)base.GetProperty(nameof(Rights));
internal override Guid Id => (Guid)base.GetProperty(nameof(Id));
internal override string Title => (string)base.GetProperty(nameof(Title));
public override object GetProperty(string propertyName)
{
switch (propertyName)
{
case "Price":
return Price;
case "DisplayPrice":
return DisplayPrice;
case "DisplayPriceFull":
return DisplayPriceFull;
case "DisplayPriceTrial":
return DisplayPriceTrial;
case "CanPurchase":
return CanPurchase;
case "CanPurchaseFull":
return CanPurchaseFull;
case "CanPurchaseTrial":
return CanPurchaseTrial;
case "CanDownload":
return CanDownload;
default:
return base.GetProperty(propertyName);
}
}
}
}