internal static void Set(System.Transactions.Transaction transaction, Message message) { TransactionFlowProperty propertyAndThrowIfAlreadySet = GetPropertyAndThrowIfAlreadySet(message); propertyAndThrowIfAlreadySet.flowedTransaction = transaction; message.Properties.Add("TransactionFlowProperty", propertyAndThrowIfAlreadySet); }
static internal void Set(Transaction transaction, Message message) { TransactionFlowProperty property = GetPropertyAndThrowIfAlreadySet(message); property.flowedTransaction = transaction; message.Properties.Add(PropertyName, property); }
public void WriteIssuedTokens(Message message, MessageDirection direction) { ICollection <RequestSecurityTokenResponse> issuances = TransactionFlowProperty.TryGetIssuedTokens(message); if (issuances != null) { IssuedTokensHeader header = new IssuedTokensHeader(issuances, this.factory.StandardsManager); message.Headers.Add(header); } }
internal static ICollection <RequestSecurityTokenResponse> TryGetIssuedTokens(Message message) { TransactionFlowProperty property = TryGet(message); if ((property != null) && ((property.issuedTokens != null) && (property.issuedTokens.Count != 0))) { return(property.issuedTokens); } return(null); }
internal static TransactionFlowProperty Ensure(Message message) { if (message.Properties.ContainsKey("TransactionFlowProperty")) { return (TransactionFlowProperty) message.Properties["TransactionFlowProperty"]; } TransactionFlowProperty property = new TransactionFlowProperty(); message.Properties.Add("TransactionFlowProperty", property); return property; }
internal static TransactionFlowProperty Ensure(Message message) { if (message.Properties.ContainsKey("TransactionFlowProperty")) { return((TransactionFlowProperty)message.Properties["TransactionFlowProperty"]); } TransactionFlowProperty property = new TransactionFlowProperty(); message.Properties.Add("TransactionFlowProperty", property); return(property); }
static internal TransactionFlowProperty Ensure(Message message) { if (message.Properties.ContainsKey(PropertyName)) { return((TransactionFlowProperty)message.Properties[PropertyName]); } TransactionFlowProperty property = new TransactionFlowProperty(); message.Properties.Add(PropertyName, property); return(property); }
private static TransactionFlowProperty GetPropertyAndThrowIfAlreadySet(Message message) { TransactionFlowProperty property = TryGet(message); if (property != null) { if (property.flowedTransaction != null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new FaultException(System.ServiceModel.SR.GetString("SFxTryAddMultipleTransactionsOnMessage"))); } return(property); } return(new TransactionFlowProperty()); }
public void ReadIssuedTokens(Message message, MessageDirection direction) { TransactionFlowOption flowIssuedTokens = this.factory.FlowIssuedTokens; ICollection <RequestSecurityTokenResponse> issuedTokens = this.GetIssuedTokens(message); if ((issuedTokens != null) && (issuedTokens.Count != 0)) { if (flowIssuedTokens == TransactionFlowOption.NotAllowed) { this.FaultOnMessage(message, System.ServiceModel.SR.GetString("IssuedTokenFlowNotAllowed"), "IssuedTokenFlowNotAllowed"); } foreach (RequestSecurityTokenResponse response in issuedTokens) { TransactionFlowProperty.Ensure(message).IssuedTokens.Add(response); } } }
static internal ICollection <RequestSecurityTokenResponse> TryGetIssuedTokens(Message message) { TransactionFlowProperty property = TransactionFlowProperty.TryGet(message); if (property == null) { return(null); } // use this when reading only, consistently return null if no tokens. if (property.issuedTokens == null || property.issuedTokens.Count == 0) { return(null); } return(property.issuedTokens); }
static TransactionFlowProperty GetPropertyAndThrowIfAlreadySet(Message message) { TransactionFlowProperty property = TryGet(message); if (property != null) { if (property.flowedTransaction != null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new FaultException(SR.GetString(SR.SFxTryAddMultipleTransactionsOnMessage))); } } else { property = new TransactionFlowProperty(); } return(property); }
public void ReadIssuedTokens(Message message, MessageDirection direction) { TransactionFlowOption option = this.factory.FlowIssuedTokens; ICollection <RequestSecurityTokenResponse> issuances = this.GetIssuedTokens(message); if (issuances != null && issuances.Count != 0) { if (option == TransactionFlowOption.NotAllowed) { FaultOnMessage(message, SR.GetString(SR.IssuedTokenFlowNotAllowed), FaultCodeConstants.Codes.IssuedTokenFlowNotAllowed); } foreach (RequestSecurityTokenResponse rstr in issuances) { TransactionFlowProperty.Ensure(message).IssuedTokens.Add(rstr); } } }
void WriteTransactionToMessage(Message message, TransactionFlowOption txFlowOption) { Transaction transaction = TransactionFlowProperty.TryGetTransaction(message); if (transaction != null) { try { this.formatter.WriteTransaction(transaction, message); } catch (TransactionException e) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ProtocolException(e.Message, e)); } } else if (txFlowOption == TransactionFlowOption.Mandatory) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ProtocolException(SR.GetString(SR.SFxTransactionFlowRequired))); } }
private void WriteTransactionToMessage(Message message, TransactionFlowOption txFlowOption) { Transaction transaction = TransactionFlowProperty.TryGetTransaction(message); if (transaction != null) { try { this.formatter.WriteTransaction(transaction, message); return; } catch (TransactionException exception) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ProtocolException(exception.Message, exception)); } } if (txFlowOption == TransactionFlowOption.Mandatory) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ProtocolException(System.ServiceModel.SR.GetString("SFxTransactionFlowRequired"))); } }
static TransactionFlowProperty GetPropertyAndThrowIfAlreadySet(Message message) { TransactionFlowProperty property = TryGet(message); if (property != null) { if (property.flowedTransaction != null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new FaultException(SR.GetString(SR.SFxTryAddMultipleTransactionsOnMessage))); } } else { property = new TransactionFlowProperty(); } return property; }
static internal TransactionFlowProperty Ensure(Message message) { if (message.Properties.ContainsKey(PropertyName)) return (TransactionFlowProperty)message.Properties[PropertyName]; TransactionFlowProperty property = new TransactionFlowProperty(); message.Properties.Add(PropertyName, property); return property; }