//-----------------------------------------------------------------------
//
// Copyright (c) Outercurve Foundation. All rights reserved.
//
//-----------------------------------------------------------------------
namespace DotNetOpenAuth.Messaging.Bindings {
using System;
using System.Globalization;
using Validation;
///
/// An exception thrown when a message is received that exceeds the maximum message age limit.
///
[Serializable]
internal class ExpiredMessageException : ProtocolException {
///
/// Initializes a new instance of the class.
///
/// The date the message expired.
/// The expired message.
public ExpiredMessageException(DateTime utcExpirationDate, IProtocolMessage faultedMessage)
: base(string.Format(CultureInfo.CurrentCulture, MessagingStrings.ExpiredMessage, utcExpirationDate.ToLocalTime(), DateTime.Now), faultedMessage) {
Requires.Argument(utcExpirationDate.Kind == DateTimeKind.Utc, "utcExpirationDate", "Time must be expressed as UTC.");
}
///
/// Initializes a new instance of the class.
///
/// The
/// that holds the serialized object data about the exception being thrown.
/// The System.Runtime.Serialization.StreamingContext
/// that contains contextual information about the source or destination.
protected ExpiredMessageException(
System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context)
: base(info, context) { }
}
}