private static XmlDocument GetXmlRequest(SiteUrl itemUrl, Uri uri) { using (MemoryStream ms = new MemoryStream()) { using (XmlTextWriter writer = new XmlTextWriter(ms, Encoding.ASCII)) { writer.WriteStartDocument(true); writer.WriteStartElement("methodCall"); writer.WriteElementString("methodName", "pingback.ping"); writer.WriteStartElement("params"); writer.WriteStartElement("param"); writer.WriteStartElement("value"); writer.WriteElementString("string", itemUrl.ToString()); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteStartElement("param"); writer.WriteStartElement("value"); writer.WriteElementString("string", uri.ToString()); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndElement(); XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(ms); return(xmlDocument); } } }
public static async Task <bool> Notify(ItemDto item, Uri uri) { BlogConfigurationDto configuration = configurationService.GetConfiguration(); using (HttpClient client = new HttpClient()) { string content = await client.GetStringAsync(uri); Uri trackbackUrl = GetTrackBackUrlFromPage(content); if (trackbackUrl != null) { SiteUrl itemUrl = item is PostDto ? urlBuilder.Post.Permalink(item) : urlBuilder.Page.Permalink(item); Dictionary <string, string> form = new Dictionary <string, string> { { "title", item.Title }, { "url", itemUrl.ToString() }, { "excerpt", item.Excerpt }, { "blog_name", configuration.Name } }; try { await client.PostAsync(trackbackUrl.ToString(), new FormUrlEncodedContent(form)); return(true); } catch (Exception ex) { logger.WarnFormat("Unable to send trackback to '{0}'", ex, uri); } return(false); } return(false); } }