/// <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); }
/// <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)); }
/// <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); }
/// <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); }
/// <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));; }
/// <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); }
/// <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); }
/// <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))); }