public static bool IsMatching(ServiceBase service) { return IsMatching(service.Information.serviceType); }
public virtual void ParseDescription(ref UPnPDevice device, string xml) { XmlDocument document = new XmlDocument(); document.LoadXml(xml); #region Get Spec Version XmlNodeList nodes = document.GetElementsByTagName("specVersion"); if (nodes.Count == 1) { nodes = nodes[0].ChildNodes; foreach (XmlNode node in nodes) { switch (node.Name.ToLower()) { case "major": device.Information.SpecVersion.Major = node.InnerText; break; case "minor": device.Information.SpecVersion.Minor = node.InnerText; break; } } } #endregion #region Root Device Information nodes = document.GetElementsByTagName("device"); if (nodes.Count > 0) { nodes = nodes[0].ChildNodes; foreach (XmlNode node in nodes) { switch (node.Name.ToLower()) { case "devicetype": device.Information.DeviceType = node.InnerText; break; case "friendlyname": device.Information.FriendlyName = node.InnerText; break; case "manufacturer": device.Information.Manufacturer = node.InnerText; break; case "manufacturerurl": device.Information.ManufacturerURL = node.InnerText; break; case "modeldescription": device.Information.ModelDescription = node.InnerText; break; case "modelname": device.Information.ModelName = node.InnerText; break; case "udn": device.Information.UDN = node.InnerText; break; case "presentationurl": device.Information.PresentationURL = node.InnerText; break; case "servicelist": XmlNodeList serviceList = node.ChildNodes; foreach (XmlNode xmlService in serviceList) { ServiceBase service = new ServiceBase(); if (device.RootDevice != null) service.Device = device.RootDevice; else service.Device = device; foreach (XmlNode serviceNode in xmlService) { switch (serviceNode.Name.ToLower()) { case "servicetype": service.Information.serviceType = serviceNode.InnerText; break; case "serviceid": service.Information.ServiceId = serviceNode.InnerText; break; case "controlurl": service.Information.ControlURL = serviceNode.InnerText; break; case "eventsuburl": service.Information.EventSubURL = serviceNode.InnerText; break; case "scpdurl": service.Information.SCPDURL = serviceNode.InnerText; break; } } if (device.RootDevice != null) device.RootDevice.Services.Add(service); else device.Services.Add(service); } break; case "devicelist": XmlNodeList devicelist = node.ChildNodes; foreach (XmlNode xmlDevice in devicelist) { UPnPDevice subdevice = new UPnPDevice(); if (device.RootDevice != null) subdevice.RootDevice = device.RootDevice; else subdevice.RootDevice = device; ParseDescription(ref subdevice, xmlDevice.OuterXml); device.SubDevices.Add(subdevice); } break; } } } #endregion }
public WANIPConnectionService(ServiceBase service) : base(service) { }