|
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------
namespace System.ServiceModel.MsmqIntegration
{
using System.ComponentModel;
using System.Messaging;
using System.Runtime;
public sealed class MsmqIntegrationMessageProperty
{
public const string Name = "MsmqIntegrationMessageProperty";
public static MsmqIntegrationMessageProperty Get(System.ServiceModel.Channels.Message message)
{
if (null == message)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("message");
if (null == message.Properties)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("message.Properties");
return message.Properties[Name] as MsmqIntegrationMessageProperty;
}
object body;
public object Body
{
get { return this.body; }
set { this.body = value; }
}
AcknowledgeTypes? acknowledgeType = null;
public AcknowledgeTypes? AcknowledgeType
{
get { return this.acknowledgeType; }
set { this.acknowledgeType = value; }
}
Acknowledgment? acknowledgment = null;
public Acknowledgment? Acknowledgment
{
get { return this.acknowledgment; }
internal set { this.acknowledgment = value; }
}
Uri administrationQueue = null;
public Uri AdministrationQueue
{
get { return this.administrationQueue; }
set { this.administrationQueue = value; }
}
int? appSpecific = null;
public int? AppSpecific
{
get { return this.appSpecific; }
set { this.appSpecific = value; }
}
DateTime? arrivedTime = null;
public DateTime? ArrivedTime
{
get { return this.arrivedTime; }
internal set { this.arrivedTime = value; }
}
bool? authenticated = null;
public bool? Authenticated
{
get { return this.authenticated; }
internal set { this.authenticated = value; }
}
int? bodyType = null;
public int? BodyType
{
get { return this.bodyType; }
set { this.bodyType = value; }
}
string correlationId = null;
public string CorrelationId
{
get { return this.correlationId; }
set { this.correlationId = value; }
}
Uri destinationQueue = null;
public Uri DestinationQueue
{
get { return this.destinationQueue; }
internal set { this.destinationQueue = value; }
}
byte[] extension = null;
public byte[] Extension
{
get { return this.extension; }
set { this.extension = value; }
}
string id = null;
public string Id
{
get { return this.id; }
internal set { this.id = value; }
}
string label = null;
public string Label
{
get { return this.label; }
set { this.label = value; }
}
MessageType? messageType = null;
public MessageType? MessageType
{
get { return this.messageType; }
internal set { this.messageType = value; }
}
MessagePriority? priority = null;
public MessagePriority? Priority
{
get { return this.priority; }
set
{
ValidateMessagePriority(value);
this.priority = value;
}
}
Uri responseQueue = null;
public Uri ResponseQueue
{
get { return this.responseQueue; }
set { this.responseQueue = value; }
}
byte[] senderId = null;
public byte[] SenderId
{
get { return this.senderId; }
internal set { this.senderId = value; }
}
DateTime? sentTime = null;
public DateTime? SentTime
{
get { return this.sentTime; }
internal set { this.sentTime = value; }
}
TimeSpan? timeToReachQueue = null;
public TimeSpan? TimeToReachQueue
{
get { return this.timeToReachQueue; }
set
{
ValidateTimeToReachQueue(value);
this.timeToReachQueue = value;
}
}
internal void InternalSetTimeToReachQueue(TimeSpan timeout)
{
this.timeToReachQueue = timeout;
}
static void ValidateMessagePriority(MessagePriority? priority)
{
if (priority.HasValue && (priority.Value < MessagePriority.Lowest || priority.Value > MessagePriority.Highest))
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidEnumArgumentException("priority", (int)priority, typeof(MessagePriority)));
}
static void ValidateTimeToReachQueue(TimeSpan? timeout)
{
if (timeout.HasValue && timeout.Value < TimeSpan.Zero)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value", timeout,
SR.GetString(SR.SFxTimeoutOutOfRange0)));
}
if (timeout.HasValue && TimeoutHelper.IsTooLarge(timeout.Value))
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value", timeout,
SR.GetString(SR.SFxTimeoutOutOfRangeTooBig)));
}
}
}
}
|