private static void AppendActionList(StringBuilder builder, IEnumerable <ServiceAction> actions) { builder.Append("<actionList>"); foreach (var item in actions) { builder.Append("<action>"); builder.Append("<name>" + DescriptionXmlBuilder.Escape(item.Name ?? string.Empty) + "</name>"); builder.Append("<argumentList>"); foreach (var argument in item.ArgumentList) { builder.Append("<argument>"); builder.Append("<name>" + DescriptionXmlBuilder.Escape(argument.Name ?? string.Empty) + "</name>"); builder.Append("<direction>" + DescriptionXmlBuilder.Escape(argument.Direction ?? string.Empty) + "</direction>"); builder.Append("<relatedStateVariable>" + DescriptionXmlBuilder.Escape(argument.RelatedStateVariable ?? string.Empty) + "</relatedStateVariable>"); builder.Append("</argument>"); } builder.Append("</argumentList>"); builder.Append("</action>"); } builder.Append("</actionList>"); }
private static void AppendServiceStateTable(StringBuilder builder, IEnumerable <StateVariable> stateVariables) { builder.Append("<serviceStateTable>"); foreach (var item in stateVariables) { var sendEvents = item.SendsEvents ? "yes" : "no"; builder.Append("<stateVariable sendEvents=\"" + sendEvents + "\">"); builder.Append("<name>" + DescriptionXmlBuilder.Escape(item.Name ?? string.Empty) + "</name>"); builder.Append("<dataType>" + DescriptionXmlBuilder.Escape(item.DataType ?? string.Empty) + "</dataType>"); if (item.AllowedValues.Length > 0) { builder.Append("<allowedValueList>"); foreach (var allowedValue in item.AllowedValues) { builder.Append("<allowedValue>" + DescriptionXmlBuilder.Escape(allowedValue) + "</allowedValue>"); } builder.Append("</allowedValueList>"); } builder.Append("</stateVariable>"); } builder.Append("</serviceStateTable>"); }
private string CreateDidlMeta(string value) { if (string.IsNullOrEmpty(value)) { return(string.Empty); } return(DescriptionXmlBuilder.Escape(value)); }
private string GetRequestBody(ContentDirectoryBrowseRequest request) { var builder = new StringBuilder(); builder.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); builder.Append("<s:Envelope s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\"><s:Body>"); builder.Append("<u:Browse xmlns:u=\"urn:schemas-upnp-org:service:ContentDirectory:1\">"); if (string.IsNullOrWhiteSpace(request.ParentId)) { request.ParentId = "1"; } builder.AppendFormat("<ObjectID>{0}</ObjectID>", DescriptionXmlBuilder.Escape(request.ParentId)); builder.Append("<BrowseFlag>BrowseDirectChildren</BrowseFlag>"); //builder.Append("<BrowseFlag>BrowseMetadata</BrowseFlag>"); builder.Append("<Filter>*</Filter>"); request.StartIndex = request.StartIndex ?? 0; builder.AppendFormat("<StartingIndex>{0}</StartingIndex>", DescriptionXmlBuilder.Escape(request.StartIndex.Value.ToString(CultureInfo.InvariantCulture))); request.Limit = request.Limit ?? 20; if (request.Limit.HasValue) { builder.AppendFormat("<RequestedCount>{0}</RequestedCount>", DescriptionXmlBuilder.Escape(request.Limit.Value.ToString(CultureInfo.InvariantCulture))); } builder.Append("<SortCriteria></SortCriteria>"); builder.Append("</u:Browse>"); builder.Append("</s:Body></s:Envelope>"); return(builder.ToString()); }