/// <summary> /// Adds a discovered activity manager to the UI /// </summary> /// <param name="serviceInfo">The information of the found service</param> private void AddDiscoveryActivityManagerToUI(ServiceInfo serviceInfo) { Dispatcher.Invoke(DispatcherPriority.Background, new Action(() => { managerlist.Items.Add(serviceInfo.Name + " at " + serviceInfo. Address); managerlist.MouseDoubleClick += managerlist_MouseDoubleClick; })); }
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)); }
/// <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)); }
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); }
/// <summary> /// Adds a discovered activity manager to the UI /// </summary> /// <param name="serviceInfo">The information of the found service</param> private void AddDiscoveryActivityManagerToUi(ServiceInfo serviceInfo) { if (_startMode == StartUpMode.Client && _startingUp) { if (MessageBoxResult.Yes == MessageBox.Show("Activity Manager found '" + serviceInfo.Name + "' do you wish to connect to local activity service?", "Activity Manager Found", MessageBoxButton.YesNo, MessageBoxImage.Information, MessageBoxResult.Yes)) StartClient(serviceInfo.Address); else StartActivityManager(); } Dispatcher.Invoke(DispatcherPriority.Background, new System.Action(() => managerlist.Items.Add(serviceInfo.Name + " at " + serviceInfo.Address))); }
public DiscoveryAddressAddedEventArgs(ServiceInfo serviceInfo) { ServiceInfo = new ServiceInfo(); ServiceInfo = serviceInfo; }