protected override IAsyncResult BeginSendResolveResponse( IDiscoveryResponseContractCD1 responseChannel, DiscoveryMessageSequence discoveryMessageSequence, EndpointDiscoveryMetadata matchingEndpoint, AsyncCallback callback, object state) { return(responseChannel.BeginResolveMatchOperation( ResolveMatchesMessageCD1.Create( discoveryMessageSequence, matchingEndpoint), callback, state)); }
public void EndResolveOperation(IAsyncResult result) { ResolveMatchesMessageCD1 response = base.Channel.EndResolveOperation(result); AsyncOperationContext context = (AsyncOperationContext)result.AsyncState; if ((response != null) && (response.ResolveMatches != null) && (response.ResolveMatches.ResolveMatch != null)) { this.responseReceiver.ResolveMatchOperation( context.OperationId, DiscoveryUtility.ToDiscoveryMessageSequenceOrNull(response.MessageSequence), response.ResolveMatches.ResolveMatch.ToEndpointDiscoveryMetadata()); } else { this.responseReceiver.PostResolveCompletedAndRemove(context.OperationId, false, null); } }
public void ResolveOperation(ResolveCriteria resolveCriteria) { ResolveMessageCD1 request = new ResolveMessageCD1(); request.Resolve = ResolveCriteriaCD1.FromResolveCriteria(resolveCriteria); ResolveMatchesMessageCD1 response = base.Channel.ResolveOperation(request); if ((response != null) && (response.ResolveMatches != null) && (response.ResolveMatches.ResolveMatch != null)) { this.responseReceiver.ResolveMatchOperation( OperationContext.Current.IncomingMessageHeaders.RelatesTo, DiscoveryUtility.ToDiscoveryMessageSequenceOrNull(response.MessageSequence), response.ResolveMatches.ResolveMatch.ToEndpointDiscoveryMetadata()); } else { this.responseReceiver.PostResolveCompletedAndRemove(OperationContext.Current.IncomingMessageHeaders.RelatesTo, false, null); } }
public IAsyncResult BeginResolveMatchOperation(ResolveMatchesMessageCD1 response, AsyncCallback callback, object state) { Fx.Assert(response != null, "The response message cannot be null."); if ((response.MessageSequence != null) && (response.ResolveMatches != null) && (response.ResolveMatches.ResolveMatch != null)) { this.responseReceiver.ResolveMatchOperation( OperationContext.Current.IncomingMessageHeaders.RelatesTo, response.MessageSequence.ToDiscoveryMessageSequence(), response.ResolveMatches.ResolveMatch.ToEndpointDiscoveryMetadata()); } else { if (response.MessageSequence == null && TD.DiscoveryMessageWithNullMessageSequenceIsEnabled()) { TD.DiscoveryMessageWithNullMessageSequence( ProtocolStrings.TracingStrings.ResolveMatches, OperationContext.Current.IncomingMessageHeaders.MessageId.ToString()); } } return(new CompletedAsyncResult(callback, state)); }