Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
        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;
        }