Example #1
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);
        }
Example #2
0
        /// <summary>
        /// Mappings the specified candidate.
        /// </summary>
        /// <param name="item"></param>
        /// <param name="candidate">The candidate.</param>
        /// <returns></returns>
        public object Mapping(T item, MarbleCandidate candidate)
        {
            if (_mapping == null)
            {
                return(null);
            }

            return(_mapping(item, candidate));
        }
Example #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);
        }
Example #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);
        }
Example #5
0
 /// <summary>
 /// Mappings the specified candidate.
 /// </summary>
 /// <param name="item"></param>
 /// <param name="candidate">The candidate.</param>
 /// <returns></returns>
 public object Mapping(T item, MarbleCandidate candidate)
 {
     return(_surrogate(item, candidate));;
 }
Example #6
0
 /// <summary>
 /// Filters the specified item.
 /// </summary>
 /// <param name="candidate">The item.</param>
 /// <returns></returns>
 public bool Filter(MarbleCandidate candidate)
 {
     if (_actualFilterableProxy == null)
         return true;
     return _actualFilterableProxy.Filter(candidate);
 }
Example #7
0
 /// <summary>
 /// Mappings the specified candidate.
 /// </summary>
 /// <param name="item"></param>
 /// <param name="candidate">The candidate.</param>
 /// <returns></returns>
 public object Mapping(T item, MarbleCandidate candidate)
 {
     return(null);
 }
Example #8
0
 /// <summary>
 /// Filters the specified item.
 /// </summary>
 /// <param name="item">The item.</param>
 /// <param name="proxyKind">ProxyKind</param>
 /// <returns></returns>
 internal static bool Filter(MarbleCandidate candidate, string proxyKind)
 {
     return(!_filters.Any() ||
            _filters.All(filter => filter(candidate, proxyKind)));
 }