public Guid GetCorrelationId() { MbMessageContext mbMessageContext = MbMessageContextProvider.Current; if (_correlationCtx.CorrelationContext != null && mbMessageContext != null) { throw new CorrelationIdNotFoundException("Cannot obtain CorrelationID: both contexts are presented."); } if (_correlationCtx.CorrelationContext == null && mbMessageContext == null) { return(Guid.Empty); } //веб-запрос if (_correlationCtx.CorrelationContext != null && mbMessageContext == null) { if (Guid.TryParse(_correlationCtx.CorrelationContext.CorrelationId, out Guid correlationId)) { return(correlationId); } else { return(Guid.Empty); } } //запрос из шины if (_correlationCtx.CorrelationContext == null && mbMessageContext != null) { if (mbMessageContext.CorrelationId == Guid.Empty) { throw new CorrelationIdNotFoundException("Cannot obtain CorrelationID from message bus message."); } return(mbMessageContext.CorrelationId); } throw new CorrelationIdNotFoundException("Cannot obtain CorrelationID: no context."); }
private static MbMessageContext GetData() { MbMessageContext mbMessageContext = new MbMessageContext(); PipeContext current = MbMessageContextStack.Current; ConsumeContext <CorrelatedBy <Guid> > correlationIdContext = current?.GetPayload <ConsumeContext <CorrelatedBy <Guid> > >(); if (correlationIdContext != null) { mbMessageContext.CorrelationId = correlationIdContext.Message.CorrelationId; } if (mbMessageContext.CorrelationId != Guid.Empty) { return(mbMessageContext); } else { return(null); } }