public VideoProvider(string serviceName, string serviceId, string embedFormat, string editorFormat, string urlFormat, EmbedPattern[] embedPatterns, string urlPattern, bool urlConvertError, int width, int height, string useBackgroundColor, string appId, String[] publishPingUrls, string urlAtomPattern, string urlAtomFormat) { _serviceName = serviceName; _serviceId = serviceId; _embedFormat = embedFormat; _urlFormat = urlFormat; _urlPattern = urlPattern; _embedPatterns = embedPatterns; _width = width; _height = height; _useBackgroundColor = useBackgroundColor; _appId = appId; _publishPingUrls = publishPingUrls; _urlAtomPattern = urlAtomPattern; _urlAtomFormat = urlAtomFormat; _urlConvertError = urlConvertError; if (!String.IsNullOrEmpty(editorFormat)) _editorFormat = editorFormat; else _editorFormat = embedFormat; }
public static VideoProvider VideoProviderFromXml(XmlNode providerNode) { string serviceName = NodeText(providerNode.SelectSingleNode("serviceName")); if (serviceName.Length == 0) throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Service_Name)); string id = NodeText(providerNode.SelectSingleNode("id")); if (id.Length == 0) throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Service_Id)); string embedFormat = NodeText(providerNode.SelectSingleNode("embedFormat")); if (embedFormat.Length == 0) throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Embed_Format)); embedFormat = embedFormat.Replace("{market}", CultureInfo.CurrentUICulture.Name); string editorFormat = NodeText(providerNode.SelectSingleNode("editorFormat")); editorFormat = editorFormat.Replace("{market}", CultureInfo.CurrentUICulture.Name); XmlNode embedPatternNode = providerNode.SelectSingleNode("embedPatterns"); if (embedPatternNode == null) throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Embed_Pattern)); XmlNodeList embedPatterns = embedPatternNode.SelectNodes("pattern"); if (embedPatterns.Count == 0) throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Embed_Pattern)); EmbedPattern[] embedPatternList = new EmbedPattern[embedPatterns.Count]; int i = 0; foreach (XmlNode patternNode in embedPatterns) { string attribute = patternNode.Attributes["name"].Value; string pattern = NodeText(patternNode); embedPatternList[i++] = new EmbedPattern(attribute, pattern); } string urlFormat = NodeText(providerNode.SelectSingleNode("urlFormat")); if (urlFormat.Length == 0) throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Url_Format)); XmlNode urlPatternNode = providerNode.SelectSingleNode("urlPattern"); string urlPattern = NodeText(urlPatternNode); if (urlPattern.Length == 0) throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Url_Pattern)); bool urlConvertingError = false; if (urlPatternNode.Attributes["error"] != null) urlConvertingError = StringHelper.ToBool(urlPatternNode.Attributes["error"].Value, false); int width; int height; XmlNode sizeNode = providerNode.SelectSingleNode("size"); if (sizeNode == null) { throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Size)); } width = int.Parse(NodeText(sizeNode.SelectSingleNode("width")), CultureInfo.InvariantCulture); height = int.Parse(NodeText(sizeNode.SelectSingleNode("height")), CultureInfo.InvariantCulture); XmlNode backgroundNode = providerNode.SelectSingleNode("backgroundColor"); string backgroundColor = NodeText(backgroundNode); XmlNode urlAtomPatternNode = providerNode.SelectSingleNode("urlAtomPattern"); string urlAtomPattern = String.Empty; if (urlAtomPatternNode != null) urlAtomPattern = NodeText(urlAtomPatternNode); XmlNode urlAtomFormatNode = providerNode.SelectSingleNode("urlAtomFormat"); string urlAtomFormat = String.Empty; if (urlAtomFormatNode != null) urlAtomFormat = NodeText(urlAtomFormatNode); XmlNode appIdNode = providerNode.SelectSingleNode("appServiceId"); string appId = NodeText(appIdNode); XmlNode urlNode = providerNode.SelectSingleNode("publishPingUrl"); string[] urls = null; if (urlNode != null) { int start = Convert.ToInt32(urlNode.Attributes["start"].Value, CultureInfo.InvariantCulture); int end = Convert.ToInt32(urlNode.Attributes["end"].Value, CultureInfo.InvariantCulture); urls = new string[end - start + 1]; for (int j = 0; j < urls.Length; j++) { urls[j] = NodeText(urlNode).Replace("{i}", (j + start).ToString(CultureInfo.InvariantCulture)); } } return new VideoProvider(serviceName, id, embedFormat, editorFormat, urlFormat, embedPatternList, urlPattern, urlConvertingError, width, height, backgroundColor, appId, urls, urlAtomPattern, urlAtomFormat); }
public static VideoProvider VideoProviderFromXml(XmlNode providerNode) { string serviceName = NodeText(providerNode.SelectSingleNode("serviceName")); if (serviceName.Length == 0) { throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Service_Name)); } string id = NodeText(providerNode.SelectSingleNode("id")); if (id.Length == 0) { throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Service_Id)); } string embedFormat = NodeText(providerNode.SelectSingleNode("embedFormat")); if (embedFormat.Length == 0) { throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Embed_Format)); } embedFormat = embedFormat.Replace("{market}", CultureInfo.CurrentUICulture.Name); string editorFormat = NodeText(providerNode.SelectSingleNode("editorFormat")); editorFormat = editorFormat.Replace("{market}", CultureInfo.CurrentUICulture.Name); XmlNode embedPatternNode = providerNode.SelectSingleNode("embedPatterns"); if (embedPatternNode == null) { throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Embed_Pattern)); } XmlNodeList embedPatterns = embedPatternNode.SelectNodes("pattern"); if (embedPatterns.Count == 0) { throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Embed_Pattern)); } EmbedPattern[] embedPatternList = new EmbedPattern[embedPatterns.Count]; int i = 0; foreach (XmlNode patternNode in embedPatterns) { string attribute = patternNode.Attributes["name"].Value; string pattern = NodeText(patternNode); embedPatternList[i++] = new EmbedPattern(attribute, pattern); } string urlFormat = NodeText(providerNode.SelectSingleNode("urlFormat")); if (urlFormat.Length == 0) { throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Url_Format)); } XmlNode urlPatternNode = providerNode.SelectSingleNode("urlPattern"); string urlPattern = NodeText(urlPatternNode); if (urlPattern.Length == 0) { throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Url_Pattern)); } bool urlConvertingError = false; if (urlPatternNode.Attributes["error"] != null) { urlConvertingError = StringHelper.ToBool(urlPatternNode.Attributes["error"].Value, false); } int width; int height; XmlNode sizeNode = providerNode.SelectSingleNode("size"); if (sizeNode == null) { throw new ArgumentException(Res.Get(StringId.Plugin_Video_XML_Error_Size)); } width = int.Parse(NodeText(sizeNode.SelectSingleNode("width")), CultureInfo.InvariantCulture); height = int.Parse(NodeText(sizeNode.SelectSingleNode("height")), CultureInfo.InvariantCulture); XmlNode backgroundNode = providerNode.SelectSingleNode("backgroundColor"); string backgroundColor = NodeText(backgroundNode); XmlNode urlAtomPatternNode = providerNode.SelectSingleNode("urlAtomPattern"); string urlAtomPattern = String.Empty; if (urlAtomPatternNode != null) { urlAtomPattern = NodeText(urlAtomPatternNode); } XmlNode urlAtomFormatNode = providerNode.SelectSingleNode("urlAtomFormat"); string urlAtomFormat = String.Empty; if (urlAtomFormatNode != null) { urlAtomFormat = NodeText(urlAtomFormatNode); } XmlNode appIdNode = providerNode.SelectSingleNode("appServiceId"); string appId = NodeText(appIdNode); XmlNode urlNode = providerNode.SelectSingleNode("publishPingUrl"); string[] urls = null; if (urlNode != null) { int start = Convert.ToInt32(urlNode.Attributes["start"].Value, CultureInfo.InvariantCulture); int end = Convert.ToInt32(urlNode.Attributes["end"].Value, CultureInfo.InvariantCulture); urls = new string[end - start + 1]; for (int j = 0; j < urls.Length; j++) { urls[j] = NodeText(urlNode).Replace("{i}", (j + start).ToString(CultureInfo.InvariantCulture)); } } return(new VideoProvider(serviceName, id, embedFormat, editorFormat, urlFormat, embedPatternList, urlPattern, urlConvertingError, width, height, backgroundColor, appId, urls, urlAtomPattern, urlAtomFormat)); }