private FaultPropagationQuery Match(FaultPropagationRecord faultRecord) { FaultPropagationQuery query = null; if (this.faultPropagationSubscriptions != null) { for (int i = 0; i < this.faultPropagationSubscriptions.Count; i++) { string str = (faultRecord.FaultHandler == null) ? null : faultRecord.FaultHandler.Name; if (string.CompareOrdinal(this.faultPropagationSubscriptions[i].FaultSourceActivityName, faultRecord.FaultSource.Name) == 0) { if (!CheckSubscription(this.faultPropagationSubscriptions[i].FaultHandlerActivityName, str)) { continue; } query = this.faultPropagationSubscriptions[i]; break; } if ((string.CompareOrdinal(this.faultPropagationSubscriptions[i].FaultSourceActivityName, "*") == 0) && CheckSubscription(this.faultPropagationSubscriptions[i].FaultHandlerActivityName, str)) { query = this.faultPropagationSubscriptions[i]; break; } } } if (((query == null) || (this.associatedProfile.ImplementationVisibility != ImplementationVisibility.RootScope)) || (this.ShouldTrackActivity(faultRecord.FaultHandler, query.FaultHandlerActivityName) && this.ShouldTrackActivity(faultRecord.FaultSource, query.FaultSourceActivityName))) { return(query); } return(null); }
private void AddFaultPropagationSubscription(FaultPropagationQuery faultQuery) { this.trackingRecordPreFilter.TrackFaultPropagationRecords = true; if (this.faultPropagationSubscriptions == null) { this.faultPropagationSubscriptions = new List <FaultPropagationQuery>(); } this.faultPropagationSubscriptions.Add(faultQuery); }
protected override TrackingQuery NewTrackingQuery() { FaultPropagationQuery query = new FaultPropagationQuery { FaultSourceActivityName = this.FaultSourceActivityName, FaultHandlerActivityName = this.FaultHandlerActivityName }; return query; }
private FaultPropagationQuery Match(FaultPropagationRecord faultRecord) { FaultPropagationQuery query = null; if (this.faultPropagationSubscriptions != null) { for (var i = 0; i < this.faultPropagationSubscriptions.Count; i++) { //check specific and then generic var faultHandlerName = faultRecord.FaultHandler == null ? null : faultRecord.FaultHandler.Name; if (string.CompareOrdinal(this.faultPropagationSubscriptions[i].FaultSourceActivityName, faultRecord.FaultSource.Name) == 0) { if (CheckSubscription(this.faultPropagationSubscriptions[i].FaultHandlerActivityName, faultHandlerName)) { query = this.faultPropagationSubscriptions[i]; break; } } else if (string.CompareOrdinal(this.faultPropagationSubscriptions[i].FaultSourceActivityName, "*") == 0) { if (CheckSubscription(this.faultPropagationSubscriptions[i].FaultHandlerActivityName, faultHandlerName)) { query = this.faultPropagationSubscriptions[i]; break; } } } } if ((query != null) && (this.associatedProfile.ImplementationVisibility == ImplementationVisibility.RootScope)) { if ((!ShouldTrackActivity(faultRecord.FaultHandler, query.FaultHandlerActivityName)) || (!ShouldTrackActivity(faultRecord.FaultSource, query.FaultSourceActivityName))) { return(null); } } return(query); }
private void AddFaultPropagationSubscription(FaultPropagationQuery faultQuery) { this.trackingRecordPreFilter.TrackFaultPropagationRecords = true; if (this.faultPropagationSubscriptions == null) { this.faultPropagationSubscriptions = new List<FaultPropagationQuery>(); } this.faultPropagationSubscriptions.Add(faultQuery); }