Ejemplo n.º 1
0
        /// <summary>
        /// Publishes the specified item.
        /// </summary>
        /// <param name="item">The item.</param>
        private void Publish(MarbleBase item, VisualRxProxyWrapper[] proxies)
        {
            item.Keywords   = _keyworkds;
            item.IndexOrder = _indexOrder;

            VisualRxSettings.Send(item, proxies);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Publishes the on next.
        /// </summary>
        /// <param name="value">The value.</param>
        public void PublishOnNext(T value)
        {
            if (!VisualRxSettings.Enable)
            {
                return;
            }

            var candidate = new MarbleCandidate(_name, MarbleKind.OnNext, _keyworkds);

            VisualRxProxyWrapper[] proxies = VisualRxSettings.GetProxies(candidate);

            #region Validation

            if (proxies.Length == 0)
            {
                return;
            }

            #endregion // Validation

            object item = _surrogate.Mapping(value, candidate) ?? value;
            // TODO: Marble base should have a virtual method for the surrogate
            var marbleItem = MarbleNext.Create(_name, _surrogate.SerializationStrategy, item,
                                               SafeStopwatch.Elapsed(), _machineName);
            Publish(marbleItem, proxies);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Gets the proxies.
        /// </summary>
        /// <param name="candidate">The candidate.</param>
        /// <returns></returns>
        internal static VisualRxProxyWrapper[] GetProxies(MarbleCandidate candidate)
        {
            if (VisualRxSettings.Proxies == null || !VisualRxSettings.Proxies.Any())
            {
                TraceSourceMonitorHelper.Warn("MonitorOperator: No proxy found");
                return(new VisualRxProxyWrapper[0]);
            }

            var proxies = (from p in VisualRxSettings.Proxies
                           where VisualRxSettings.Filter(candidate, p.Kind) &&
                           p.Filter(candidate)
                           select p).ToArray();

            return(proxies);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Publishes the error.
        /// </summary>
        /// <param name="ex">The ex.</param>
        public void PublishError(Exception ex)
        {
            if (!VisualRxSettings.Enable)
            {
                return;
            }

            var candidate = new MarbleCandidate(_name, MarbleKind.OnError, _keyworkds);

            VisualRxProxyWrapper[] proxies = VisualRxSettings.GetProxies(candidate);

            #region Validation

            if (proxies.Length == 0)
            {
                return;
            }

            #endregion // Validation

            var marbleItem = MarbleError.Create(_name, _surrogate.SerializationStrategy, ex, SafeStopwatch.Elapsed()
                                                , _machineName);
            Publish(marbleItem, proxies);
        }