private void Dg_Hosts_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { string value = (e.EditingElement as TextBox).Text; NetworkHost nwHost = e.Row.Item as NetworkHost; if (e.Column.DisplayIndex <= 1) { try { IPHostEntry entry = Dns.GetHostEntry(value); nwHost.HostName = entry.HostName; nwHost.IP = entry.AddressList.Select(a => a.ToString()).Where(a => Regex.IsMatch(a, @"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}")).FirstOrDefault(); nwHost.SyncState = "-"; } catch { } } Task.Delay(100).ContinueWith(t => { Application.Current.Dispatcher.Invoke(() => dg_Hosts.Items.Refresh()); }); }
private void SyncFromButton_Click(object sender, RoutedEventArgs e) { NetworkHost host = EvaluateButtonClickNetworkHost(sender); if (host == null) { return; } HttpWebResponse syncToResponse = new HttpSender(string.Format("http://{0}:9000/api/Sync/RequestSyncFrom", host.IP.ToString()), 10000) .Send(new SyncRequestData() { Sender = Dns.GetHostName() }) .Receive(); if (syncToResponse != null && syncToResponse.StatusCode == HttpStatusCode.OK) { // TODO: disable other buttons and start timout timer for request } }