Files
ZuneShell.dll/ZuneShell/ZuneXml/VideoHistory.cs
T

229 lines
8.5 KiB
C#

// Decompiled with JetBrains decompiler
// Type: ZuneXml.VideoHistory
// 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;
using System.Collections;
using ZuneUI;
namespace ZuneXml
{
internal class VideoHistory : Video
{
private MediaTypeEnum _mediaTypeEnum;
public override void SetProperty(string propertyName, object value)
{
switch (propertyName)
{
case "MediaType":
this._mediaTypeEnum = SchemaHelper.ToMediaTypeEnum((string)value);
break;
}
base.SetProperty(propertyName, value);
}
internal override bool CanSync => false;
internal override bool InCollection => this.GetInCollection();
internal override bool InCollectionShortcut => this.GetInCollectionShortcut();
internal override bool IsDownloading => this.GetIsDownloading();
internal override bool CanPreview => false;
internal override bool CanSubscriptionPlay => false;
internal override int PointsPrice => 0;
internal bool CanDownloadHD
{
get
{
bool flag = false;
if (!this.InCollection && this.MediaInstances != null)
{
foreach (MediaInstance mediaInstance in MediaInstances)
{
if ((mediaInstance.RightEnum == MediaRightsEnum.AlbumPurchase || mediaInstance.RightEnum == MediaRightsEnum.Purchase || (mediaInstance.RightEnum == MediaRightsEnum.SeasonPurchase || mediaInstance.RightEnum == MediaRightsEnum.Rent)) && (mediaInstance.VideoDefinitionEnum == VideoDefinitionEnum.HD && mediaInstance.VideoResolutionEnum == VideoResolutionEnum.VR_720P))
{
flag = mediaInstance.IsDownloadable;
if (!flag)
break;
}
}
}
if (flag && Download.Instance.GetErrorCode(this.Id) == HRESULT._NS_E_MEDIA_DOWNLOAD_MAXIMUM_EXCEEDED.Int)
flag = false;
return flag;
}
}
internal bool CanDownload
{
get
{
bool flag = false;
if (!this.InCollection && this.MediaInstances != null)
{
foreach (MediaInstance mediaInstance in MediaInstances)
{
if ((mediaInstance.RightEnum == MediaRightsEnum.AlbumPurchase || mediaInstance.RightEnum == MediaRightsEnum.Purchase || (mediaInstance.RightEnum == MediaRightsEnum.SeasonPurchase || mediaInstance.RightEnum == MediaRightsEnum.Rent)) && (mediaInstance.VideoDefinitionEnum == VideoDefinitionEnum.XD || mediaInstance.VideoDefinitionEnum == VideoDefinitionEnum.SD || mediaInstance.VideoDefinitionEnum == VideoDefinitionEnum.HD && mediaInstance.VideoResolutionEnum == VideoResolutionEnum.VR_720P))
{
flag = mediaInstance.IsDownloadable;
if (!flag)
break;
}
}
}
if (flag && Download.Instance.GetErrorCode(this.Id) == HRESULT._NS_E_MEDIA_DOWNLOAD_MAXIMUM_EXCEEDED.Int)
flag = false;
return flag;
}
}
internal override bool CanPurchase => !this.CanDownload && this.MediaInstances != null && this.MediaInstances.Count > 0;
internal override bool CanPurchaseAlbumOnly => false;
internal override bool CanRent => !this.CanDownload && this.MediaInstances != null && this.MediaInstances.Count > 0;
internal override DateTime ReleaseDate => DateTime.MinValue;
internal override TimeSpan Duration => TimeSpan.Zero;
internal override double Popularity => 0.0;
internal override bool HasPreview => false;
internal override bool CanPurchaseHD => false;
internal override bool CanPurchaseSD => false;
internal override bool CanPurchaseSeason => false;
internal override bool CanPurchaseSeasonHD => false;
internal override bool CanPurchaseSeasonSD => false;
internal override bool CanRentHD => false;
internal override bool CanRentSD => false;
internal override bool IsParentallyBlocked => false;
internal override Guid ImageId => Guid.Empty;
internal override string SortTitle => string.Empty;
internal override MediaRights Rights => (MediaRights)null;
internal override IList Artists => (IList)null;
internal virtual bool IsTVSeason => this._mediaTypeEnum == MediaTypeEnum.TVSeason;
internal static XmlDataProviderObject ConstructVideoHistoryObject(
DataProviderQuery owner,
object objectTypeCookie)
{
return new VideoHistory(owner, objectTypeCookie);
}
internal VideoHistory(DataProviderQuery owner, object resultTypeCookie)
: base(owner, resultTypeCookie)
{
}
internal DateTime Date => (DateTime)base.GetProperty(nameof(Date));
internal string MediaType => (string)base.GetProperty(nameof(MediaType));
internal string SeasonTitle => (string)base.GetProperty(nameof(SeasonTitle));
internal int SeasonNumber => (int)base.GetProperty(nameof(SeasonNumber));
internal string SeriesTitle => (string)base.GetProperty(nameof(SeriesTitle));
internal IList SeasonEpisodes => (IList)base.GetProperty(nameof(SeasonEpisodes));
internal IList MediaInstances => (IList)base.GetProperty(nameof(MediaInstances));
internal override string Title => (string)base.GetProperty(nameof(Title));
internal override Guid Id => (Guid)base.GetProperty(nameof(Id));
internal override MiniArtist PrimaryArtist => (MiniArtist)base.GetProperty(nameof(PrimaryArtist));
public override object GetProperty(string propertyName)
{
switch (propertyName)
{
case "CanDownload":
return CanDownload;
case "CanDownloadHD":
return CanDownloadHD;
case "IsTVSeason":
return IsTVSeason;
case "ReleaseDate":
return ReleaseDate;
case "Duration":
return Duration;
case "PointsPrice":
return PointsPrice;
case "HasPreview":
return HasPreview;
case "CanPreview":
return CanPreview;
case "CanSubscriptionPlay":
return CanSubscriptionPlay;
case "CanPurchase":
return CanPurchase;
case "CanPurchaseHD":
return CanPurchaseHD;
case "CanPurchaseSD":
return CanPurchaseSD;
case "CanPurchaseSeason":
return CanPurchaseSeason;
case "CanPurchaseSeasonHD":
return CanPurchaseSeasonHD;
case "CanPurchaseSeasonSD":
return CanPurchaseSeasonSD;
case "CanRent":
return CanRent;
case "CanRentHD":
return CanRentHD;
case "CanRentSD":
return CanRentSD;
case "CanPurchaseAlbumOnly":
return CanPurchaseAlbumOnly;
case "CanSync":
return CanSync;
case "InCollection":
return InCollection;
case "InCollectionShortcut":
return InCollectionShortcut;
case "IsDownloading":
return IsDownloading;
case "IsParentallyBlocked":
return IsParentallyBlocked;
case "SortTitle":
return SortTitle;
case "ImageId":
return ImageId;
case "Rights":
return Rights;
case "Artists":
return Artists;
case "Popularity":
return Popularity;
default:
return base.GetProperty(propertyName);
}
}
}
}