public static IObservable <TraceEvent> WhenTraceEvent <TLocation>(this XafApplication application, Expression <Func <TLocation, object> > expression, RXAction rxAction = RXAction.All) { var name = expression.GetMemberInfo().Name; return(application.WhenTraceEvent(typeof(TLocation), rxAction).Where(_ => _.Method == name)); }
public static IObservable <ITraceEvent> When(this IObservable <ITraceEvent> source, Type location, RXAction rxAction, params string[] methods) { return(source.Where(_ => location == null || _.Location == location.Name) .Where(_ => !methods.Any() || methods.Contains(_.Method)) .Where(_ => rxAction == RXAction.All || _.RXAction.HasAnyFlag(rxAction))); }
public static IObservable <TraceEvent> WhenTraceEvent(this XafApplication application, Type location = null, RXAction rxAction = RXAction.All, params string[] methods) { return(SavedTraceEvent.When(location, rxAction, methods).Cast <TraceEvent>()); }
public static IObservable <ITraceEvent> WhenTrace(this XafApplication application, Type location = null, RXAction rxAction = RXAction.All, params string[] methods) { return(application.Modules.ToTraceSource().ToObservable().SelectMany(_ => _.traceSource.Listeners.OfType <ReactiveTraceListener>().ToObservable().SelectMany(listener => listener.EventTrace)) .When(location, rxAction, methods)); }