2021-02-21 21:52:41 -06:00
|
|
|
// Decompiled with JetBrains decompiler
|
|
|
|
|
// Type: ZuneXml.ZuneServiceQuery
|
|
|
|
|
// 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.Collections.Generic;
|
|
|
|
|
|
|
|
|
|
namespace ZuneXml
|
|
|
|
|
{
|
|
|
|
|
internal class ZuneServiceQuery : XmlDataProviderQuery
|
|
|
|
|
{
|
2021-02-21 22:59:09 -06:00
|
|
|
private static IDictionary<string, ConstructQueryHelper> _queryTypeToHelper;
|
2021-02-21 21:52:41 -06:00
|
|
|
private ZuneServiceQueryHelper _helper;
|
|
|
|
|
|
|
|
|
|
private static void RegisterZuneServiceQueryConstructors(
|
2021-02-21 22:59:09 -06:00
|
|
|
IDictionary<string, ConstructQueryHelper> queryTypeToHelper)
|
2021-02-21 21:52:41 -06:00
|
|
|
{
|
2021-02-21 22:59:09 -06:00
|
|
|
queryTypeToHelper.Add("Marketplace", new ConstructQueryHelper(CatalogServiceQueryHelper.ConstructMusicCatalogQueryHelper));
|
|
|
|
|
queryTypeToHelper.Add("MarketplaceSearch", new ConstructQueryHelper(CatalogSearchQueryHelper.ConstructSearchQueryHelper));
|
|
|
|
|
queryTypeToHelper.Add("Messaging", new ConstructQueryHelper(MessagingQueryHelper.ConstructMessagingQueryHelper));
|
|
|
|
|
queryTypeToHelper.Add("PodcastMarketplace", new ConstructQueryHelper(PodcastCatalogServiceQueryHelper.ConstructPodcastCatalogQueryHelper));
|
|
|
|
|
queryTypeToHelper.Add("PodcastMarketplaceSearch", new ConstructQueryHelper(CatalogSearchQueryHelper.ConstructSearchQueryHelper));
|
|
|
|
|
queryTypeToHelper.Add("PrefixSearch", new ConstructQueryHelper(CatalogPrefixSearchQueryHelper.ConstructPrefixSearchQueryHelper));
|
|
|
|
|
queryTypeToHelper.Add("Recommendations", new ConstructQueryHelper(RecommendationsQueryHelper.ConstructRecommendationsQueryHelper));
|
|
|
|
|
queryTypeToHelper.Add("Social", new ConstructQueryHelper(SocialQueryHelper.ConstructSocialQueryHelper));
|
|
|
|
|
queryTypeToHelper.Add("TopListeners", new ConstructQueryHelper(TopListenersQueryHelper.ConstructTopListenersQueryHelper));
|
|
|
|
|
queryTypeToHelper.Add("UriResource", new ConstructQueryHelper(ZuneServiceQueryHelper.ConstructZuneServiceQueryHelper));
|
|
|
|
|
queryTypeToHelper.Add("VideoMarketplace", new ConstructQueryHelper(VideoCatalogServiceQueryHelper.ConstructVideoCatalogQuery));
|
|
|
|
|
queryTypeToHelper.Add("VideoMarketplaceSearch", new ConstructQueryHelper(CatalogSearchQueryHelper.ConstructSearchQueryHelper));
|
|
|
|
|
queryTypeToHelper.Add("AppDetails", new ConstructQueryHelper(AppDetailsQueryHelper.ConstructAppDetailsQueryHelper));
|
|
|
|
|
queryTypeToHelper.Add("AppGenres", new ConstructQueryHelper(AppGenresQueryHelper.ConstructAppGenresQueryHelper));
|
|
|
|
|
queryTypeToHelper.Add("Reviews", new ConstructQueryHelper(ReviewsQueryHelper.ConstructReviewsQueryHelper));
|
|
|
|
|
queryTypeToHelper.Add("SubscriptionHistory", new ConstructQueryHelper(SubscriptionHistoryQueryHelper.ConstructSubscriptionHistoryQueryHelper));
|
|
|
|
|
queryTypeToHelper.Add("PurchaseHistory", new ConstructQueryHelper(PurchaseHistoryQueryHelper.ConstructPurchaseHistoryQueryHelper));
|
2021-02-21 21:52:41 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
internal static DataProviderQuery ConstructZuneServiceQuery(
|
|
|
|
|
object queryTypeCookie)
|
|
|
|
|
{
|
2021-02-21 22:59:09 -06:00
|
|
|
return new ZuneServiceQuery(queryTypeCookie);
|
2021-02-21 21:52:41 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
internal ZuneServiceQuery(object queryTypeCookie)
|
|
|
|
|
: base(queryTypeCookie)
|
|
|
|
|
=> this._acceptGZipEncoding = true;
|
|
|
|
|
|
|
|
|
|
internal ZuneServiceQueryHelper Helper
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
if (this._helper == null)
|
|
|
|
|
{
|
2021-02-21 22:59:09 -06:00
|
|
|
if (_queryTypeToHelper == null)
|
2021-02-21 21:52:41 -06:00
|
|
|
{
|
2021-02-21 22:59:09 -06:00
|
|
|
_queryTypeToHelper = new Dictionary<string, ConstructQueryHelper>(17);
|
|
|
|
|
RegisterZuneServiceQueryConstructors(_queryTypeToHelper);
|
2021-02-21 21:52:41 -06:00
|
|
|
}
|
|
|
|
|
string property = base.GetProperty("QueryType") as string;
|
2021-02-21 22:59:09 -06:00
|
|
|
this._helper = _queryTypeToHelper[property](this);
|
2021-02-21 21:52:41 -06:00
|
|
|
}
|
|
|
|
|
return this._helper;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override object GetProperty(string propertyName) => this.Helper.GetComputedProperty(propertyName) ?? base.GetProperty(propertyName);
|
|
|
|
|
|
|
|
|
|
protected override string GetResourceUri() => this.Helper.GetResourceUri();
|
|
|
|
|
|
|
|
|
|
protected override string GetPostBody() => this.Helper.GetQueryPostBody();
|
|
|
|
|
|
|
|
|
|
protected override void BeginExecute()
|
|
|
|
|
{
|
|
|
|
|
if (this.Helper.HandleQueryBeginExecute())
|
|
|
|
|
return;
|
|
|
|
|
base.BeginExecute();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
internal override bool FilterDataProviderObject(XmlDataProviderObject dataObject) => this.Helper.OnQueryFilterDataProviderObject(dataObject);
|
|
|
|
|
|
|
|
|
|
protected override void OnPropertyChanged(string propertyName)
|
|
|
|
|
{
|
|
|
|
|
if (!this.Initialized)
|
|
|
|
|
return;
|
|
|
|
|
base.OnPropertyChanged(propertyName);
|
|
|
|
|
this.Helper.OnQueryPropertyChanged(propertyName);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private delegate ZuneServiceQueryHelper ConstructQueryHelper(
|
|
|
|
|
ZuneServiceQuery query);
|
|
|
|
|
}
|
|
|
|
|
}
|