public static void UriChangedPriority([NotNull] EventHandler <UriChangedEventArgs> callback, Priority priority) { if (callback == null) { throw new ArgumentNullException("callback"); } UriChangedEvent.Add(callback, priority); }
// Called when the heartbeat server responds. static void ResponseCallback(IAsyncResult result) { if (Server.IsShuttingDown) { return; } HeartbeatRequestState state = (HeartbeatRequestState)result.AsyncState; try { string responseText; using (HttpWebResponse response = (HttpWebResponse)state.Request.EndGetResponse(result)) { using (StreamReader responseReader = new StreamReader(response.GetResponseStream())) { responseText = responseReader.ReadToEnd(); } RaiseHeartbeatSentEvent(state.Data, response, responseText); } // try parse response as server Uri, if needed if (state.GetServerUri) { string replyString = responseText.Trim(); if (replyString.StartsWith("bad heartbeat", StringComparison.OrdinalIgnoreCase)) { Logger.Log(LogType.Error, "Heartbeat: {0}", replyString); } else { try { Uri newUri = new Uri(replyString); Uri oldUri = Server.Uri; if (newUri != oldUri) { Server.Uri = newUri; UriChangedEvent.Raise(new UriChangedEventArgs(oldUri, newUri)); } } catch (UriFormatException) { Logger.Log(LogType.Error, "Heartbeat: Server replied with: {0}", replyString); } } } } catch (Exception ex) { if (ex is WebException || ex is IOException) { Logger.Log(LogType.Warning, "Heartbeat: {0} is probably down ({1})", state.Request.RequestUri.Host, ex.Message); } else { Logger.Log(LogType.Error, "Heartbeat: {0}", ex); } } }
private void wv_LoadCompleted( object sender, NavigationEventArgs e) { if (UriChangedEvent != null) { UriChangedEvent.Invoke( this, new AdnWebAuthViewEventArgs() { Uri = e.Uri }); } }