private void OnResolved(object o, ServiceResolvedEventArgs args) { if (_instances.All(x => x.Name != args.Service.Name)) { _instances.Add(new ProPresenterInstance { Name = args.Service.Name, Port = ((ushort)args.Service.Port).ToString(), Ip = args.Service.HostEntry.AddressList[0].ToString(), }); OnProPresenterInstancesChanged?.Invoke(this, new ProPresenterInstancesChangedEventArgs { Instances = _instances.ToList() }); } }
private async void OnServiceRemoved(object o, ServiceBrowseEventArgs args) { var name = args.Service.Name; var instance = _instances.FirstOrDefault(x => x.Name == name); if (instance != null) { _instances.Remove(instance); if (Connected && ConnectedInstance == instance.Name) { StopListen(); await Close(); ConnectedInstance = null; } OnProPresenterInstancesChanged?.Invoke(this, new ProPresenterInstancesChangedEventArgs { Instances = _instances.ToList() }); } }