mirror of
https://github.com/ZuneDev/ZuneShell.dll.git
synced 2026-07-27 13:11:51 -07:00
58 lines
2.7 KiB
C#
58 lines
2.7 KiB
C#
// Decompiled with JetBrains decompiler
|
|
// Type: ZuneUI.SubscribeConfirmDialogHelper
|
|
// 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 Microsoft.Zune.Subscription;
|
|
using System;
|
|
using UIXControls;
|
|
using ZuneXml;
|
|
|
|
namespace ZuneUI
|
|
{
|
|
internal class SubscribeConfirmDialogHelper
|
|
{
|
|
private string m_feedTitle;
|
|
private string m_feedUrl;
|
|
|
|
private SubscribeConfirmDialogHelper(string feedTitle, string feedUrl)
|
|
{
|
|
this.m_feedUrl = feedUrl;
|
|
if (!string.IsNullOrEmpty(feedTitle))
|
|
this.m_feedTitle = feedTitle;
|
|
else
|
|
this.m_feedTitle = feedUrl;
|
|
}
|
|
|
|
private void ShowDialog() => MessageBox.Show(Shell.LoadString(StringId.IDS_PODCAST_CONFIRM_DIALOG_TITLE), string.Format(Shell.LoadString(StringId.IDS_PODCAST_CONFIRM_DIALOG_MESSAGE), m_feedTitle), new EventHandler(this.OnConfirm));
|
|
|
|
private void OnConfirm(object sender, EventArgs args)
|
|
{
|
|
SubscriptionManager instance = SubscriptionManager.Instance;
|
|
int subscriptionMediaId = -1;
|
|
if (!instance.FindByUrl(this.m_feedUrl, EMediaTypes.eMediaTypePodcastSeries, out subscriptionMediaId, out bool _))
|
|
{
|
|
HRESULT hresult = instance.Subscribe(this.m_feedUrl, this.m_feedTitle, Guid.Empty, false, EMediaTypes.eMediaTypePodcastSeries, ESubscriptionSource.eSubscriptionSourceProtocolHandler, out subscriptionMediaId);
|
|
if (hresult.IsSuccess)
|
|
{
|
|
string endPointUri = Service.GetEndPointUri(EServiceEndpointId.SEID_RootCatalog);
|
|
if (!string.IsNullOrEmpty(endPointUri) && !string.IsNullOrEmpty(this.m_feedUrl) && this.m_feedUrl.Length < 1024)
|
|
WebRequestHelper.ConstructWebPostRequest(endPointUri + "/podcast", "URL=" + this.m_feedUrl, EPassportPolicyId.None, HttpRequestCachePolicy.Default, true, false).GetResponseAsync(new AsyncRequestComplete(this.OnRequestComplete), null);
|
|
}
|
|
else
|
|
ErrorDialogInfo.Show(hresult.Int, Shell.LoadString(StringId.IDS_PODCAST_SUBSCRIPTION_ERROR));
|
|
}
|
|
PodcastLibraryPage.FindInCollection(subscriptionMediaId);
|
|
}
|
|
|
|
private void OnRequestComplete(HttpWebResponse response, object requestArgs)
|
|
{
|
|
int statusCode = (int)response.StatusCode;
|
|
}
|
|
|
|
public static void Show(string feedTitle, string feedUrl) => new SubscribeConfirmDialogHelper(feedTitle, feedUrl).ShowDialog();
|
|
}
|
|
}
|