You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.ObjectModel;
|
|
|
|
|
using System.Windows;
|
|
|
|
|
using ZeroLevel;
|
|
|
|
|
using ZeroLevel.Network;
|
|
|
|
|
|
|
|
|
|
namespace ZeroNetworkMonitor
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Interaction logic for MainWindow.xaml
|
|
|
|
|
/// </summary>
|
|
|
|
|
public partial class MainWindow : Window
|
|
|
|
|
{
|
|
|
|
|
private ObservableCollection<string> _service_keys = new ObservableCollection<string>();
|
|
|
|
|
private IExchange _exchange;
|
|
|
|
|
private long _refresh_services_task = -1;
|
|
|
|
|
|
|
|
|
|
public ObservableCollection<string> Services
|
|
|
|
|
{
|
|
|
|
|
get { return _service_keys; }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public MainWindow()
|
|
|
|
|
{
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
_exchange = Bootstrap.CreateExchange();
|
|
|
|
|
Injector.Default.Register<IExchange>(_exchange);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void Button_Click(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
_exchange.UseDiscovery(tbDiscovery.Text);
|
|
|
|
|
if (_refresh_services_task == -1)
|
|
|
|
|
{
|
|
|
|
|
_refresh_services_task = Sheduller.RemindEvery(TimeSpan.FromSeconds(5), () =>
|
|
|
|
|
{
|
|
|
|
|
Dispatcher.Invoke(() =>
|
|
|
|
|
{
|
|
|
|
|
var si = lbServices.SelectedItem;
|
|
|
|
|
_service_keys.Clear();
|
|
|
|
|
foreach (var s in _exchange.DiscoveryStorage.GetKeys())
|
|
|
|
|
{
|
|
|
|
|
_service_keys.Add(s);
|
|
|
|
|
};
|
|
|
|
|
lbServices.SelectedItem = si;
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void Window_Loaded(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
lbServices.ItemsSource = Services;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void LbServices_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (lbServices.SelectedItem != null)
|
|
|
|
|
{
|
|
|
|
|
pService.UpdateView((string)lbServices.SelectedItem);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|