private void OnNewEvent <T>(string target, string type, T serverEvent) { // check who ist interested in this event var eventKey = target + "." + type; Dictionary <string, Action <object> > subscribers; // Check if there is subscriber to that event. If not create it if (!_eventKeySubscriptions.TryGetValue(eventKey, out subscribers)) { return; } // call registered delegates of services. foreach (var ele in subscribers) { try { ele.Value?.Invoke(serverEvent); } catch (Exception ex) { // Don't stop calling all subscribers SecucardTrace.Exception(ex); } } }
private static RestException HandelWebException(WebException ex) { SecucardTrace.Exception(ex); var wr = ex.Response as HttpWebResponse; var dataStream = wr?.GetResponseStream(); if (dataStream != null) { var reader = new StreamReader(dataStream, Encoding.UTF8); var restException = new RestException { BodyText = reader.ReadToEnd(), StatusDescription = wr.StatusDescription, StatusCode = (ex.Status == WebExceptionStatus.ProtocolError) ? ((int?)wr.StatusCode) : null }; SecucardTrace.Exception(restException); SecucardTrace.Info(restException.StatusDescription); SecucardTrace.Info(restException.BodyText.EscapeCurlyBracets()); reader.Close(); return(restException); } throw ex; }