1234567891011121314151617181920212223242526272829303132333435363738394041 |
- using MediaBrowser.Controller.Dlna;
- using System;
- using System.Xml;
- namespace Emby.Dlna.Service
- {
- public class ControlErrorHandler
- {
- private const string NS_SOAPENV = "http://schemas.xmlsoap.org/soap/envelope/";
-
- public ControlResponse GetResponse(Exception ex)
- {
- var env = new XmlDocument();
- env.AppendChild(env.CreateXmlDeclaration("1.0", "utf-8", "yes"));
- var envelope = env.CreateElement("SOAP-ENV", "Envelope", NS_SOAPENV);
- env.AppendChild(envelope);
- envelope.SetAttribute("encodingStyle", NS_SOAPENV, "http://schemas.xmlsoap.org/soap/encoding/");
- var rbody = env.CreateElement("SOAP-ENV:Body", NS_SOAPENV);
- env.DocumentElement.AppendChild(rbody);
- var fault = env.CreateElement("SOAP-ENV", "Fault", NS_SOAPENV);
- var faultCode = env.CreateElement("faultcode");
- faultCode.InnerText = "500";
- fault.AppendChild(faultCode);
- var faultString = env.CreateElement("faultstring");
- faultString.InnerText = ex.ToString();
- fault.AppendChild(faultString);
- var detail = env.CreateDocumentFragment();
- detail.InnerXml = "<detail><UPnPError xmlns=\"urn:schemas-upnp-org:control-1-0\"><errorCode>401</errorCode><errorDescription>Invalid Action</errorDescription></UPnPError></detail>";
- fault.AppendChild(detail);
- rbody.AppendChild(fault);
- return new ControlResponse
- {
- Xml = env.OuterXml,
- IsSuccessful = false
- };
- }
- }
- }
|