//-----------------------------------------------------------------------
//
// Copyright (c) Outercurve Foundation. All rights reserved.
//
//-----------------------------------------------------------------------
namespace DotNetOpenAuth.OpenId.Provider {
using System;
using DotNetOpenAuth.Messaging;
///
/// An interface that a Provider site may implement in order to better
/// control error reporting.
///
public interface IErrorReporting {
///
/// Gets the message that can be sent in an error response
/// with information on who the remote party can contact
/// for help resolving the error.
///
///
/// The contact address may take any form, as it is intended to be displayed to a person.
///
string Contact { get; }
///
/// Logs the details of an exception for later reference in diagnosing the problem.
///
/// The exception that was generated from the error.
///
/// A unique identifier for this particular error that the remote party can
/// reference when contacting for help with this error.
/// May be null.
///
///
/// The implementation of this method should never throw an unhandled exception
/// as that would preclude the ability to send the error response to the remote
/// party. When this method is not implemented, it should return null rather
/// than throwing .
///
string LogError(ProtocolException exception);
}
}