Files
ZuneShell.dll/ZuneShell/ZuneXml/CatalogSearchQueryHelper.cs

62 lines
2.3 KiB
C#

// Decompiled with JetBrains decompiler
// Type: ZuneXml.CatalogSearchQueryHelper
// 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.Configuration;
using Microsoft.Zune.Shell;
using System;
using System.Text;
namespace ZuneXml
{
internal class CatalogSearchQueryHelper : CatalogServiceQueryHelper
{
internal static ZuneServiceQueryHelper ConstructSearchQueryHelper(
ZuneServiceQuery query)
{
return new CatalogSearchQueryHelper(query);
}
internal CatalogSearchQueryHelper(ZuneServiceQuery query)
: base(query)
{
}
internal override string GetResourceUri()
{
string property1 = (string)this.Query.GetProperty("ResourceType");
string property2 = (string)this.Query.GetProperty("Keywords");
if (string.IsNullOrEmpty(property1) || string.IsNullOrEmpty(property2))
return null;
string endPointUri = ZuneApplication.Service2.GetEndPointUri(this._endPoint);
StringBuilder stringBuilder = new StringBuilder(128);
stringBuilder.Append(endPointUri);
stringBuilder.Append("/");
stringBuilder.Append(property1);
stringBuilder.Append("?q=");
stringBuilder.Append(Uri.EscapeDataString(property2));
string property3 = (string)this.Query.GetProperty("ClientType");
if (!string.IsNullOrEmpty(property3))
{
stringBuilder.Append("&clientType=");
stringBuilder.Append(property3);
}
string property4 = (string)this.Query.GetProperty("Store");
if (!string.IsNullOrEmpty(property4))
{
stringBuilder.Append("&store=");
stringBuilder.Append(property4);
}
string timeTravel = ClientConfiguration.Service.TimeTravel;
if (!string.IsNullOrEmpty(timeTravel) && ZuneApplication.Service2.IsSignedIn())
{
stringBuilder.Append("&instant=");
stringBuilder.Append(Uri.EscapeDataString(timeTravel));
}
return stringBuilder.ToString();
}
}
}