Ejemplo n.º 1
0
 private void AddFoundServiceFromSCResolvedData(IResolvableService metaData)
 {
     var sst = new ServiceInfo(metaData.TxtRecord["name"].ValueString, metaData.TxtRecord["loc"].ValueString,
                               metaData.TxtRecord["addr"].ValueString, metaData.TxtRecord["code"].ValueString);
     ActivityServices.Add(sst);
     OnDiscoveryAddressAdded(new DiscoveryAddressAddedEventArgs(sst));
 }
Ejemplo n.º 2
0
 private void HandleRequest(IAsyncResult result)
 {
     var endPoint = new IPEndPoint(IPAddress.Any, WsDiscoveryPort);
     var bytes = _udpClient.EndReceive(result, ref endPoint);
     var str = Encoding.ASCII.GetString(bytes);
     var xml = new XmlDocument();
     xml.LoadXml(str);
     var matches = xml.SelectNodes("//*[local-name() = 'ProbeMatch'] | //*[local-name() = 'Hello']");
     if(matches.Count > 0)
     {
         foreach(XmlNode match in matches)
         {
             var serviceInfo = new ServiceInfo
                              {
                                  Name = match.SelectNodes("//*[local-name() = 'string']")[0].InnerText,
                                  Location = match.SelectNodes("//*[local-name() = 'string']")[1].InnerText,
                                  Address = match.SelectNodes("//*[local-name() = 'string']")[2].InnerText,
                                  Code = match.SelectNodes("//*[local-name() = 'string']")[3].InnerText
                              };
             if (ActivityServices.SingleOrDefault(si => si.Address == serviceInfo.Address) == null)
             {
                 ActivityServices.Add(serviceInfo);
                 OnDiscoveryAddressAdded(new DiscoveryAddressAddedEventArgs(serviceInfo));
             }
         }
     }
     _udpClient.BeginReceive(HandleRequest, _udpClient);
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Adds a discovered service to the service list and send a DiscoverAddressAdded event
 /// </summary>
 /// <param name="metaData">The meta data of the service</param>
 private void AddFoundServiceFromWSMetaData(EndpointDiscoveryMetadata metaData)
 {
     var sst = new ServiceInfo(
         Helpers.Xml.FromXElement<string>(metaData.Extensions[0]),
         Helpers.Xml.FromXElement<string>(metaData.Extensions[1]),
         Helpers.Xml.FromXElement<string>(metaData.Extensions[2]),
         Helpers.Xml.FromXElement<string>(metaData.Extensions[3]));
     ActivityServices.Add(sst);
     OnDiscoveryAddressAdded(new DiscoveryAddressAddedEventArgs(sst));
 }
 public DiscoveryAddressAddedEventArgs(ServiceInfo serviceInfo)
 {
     ServiceInfo = new ServiceInfo();
     ServiceInfo = serviceInfo;
 }