//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
using System;
using System.Net;
using System.Runtime.Serialization;
namespace Microsoft.SqlTools.ResourceProvider.Core
{
///
/// Base class for service exceptions
///
public abstract class ServiceExceptionBase : Exception
{
///
/// Initializes a new instance of the AuthenticationFailedException class.
///
protected ServiceExceptionBase()
{
}
///
/// Initializes a new instance of the AuthenticationFailedException class with a specified error message.
///
/// The error message that explains the reason for the exception.
protected ServiceExceptionBase(string message)
: base(message)
{
}
///
/// Initializes a new instance of the AuthenticationFailedException class with a specified error message.
///
/// The error message that explains the reason for the exception.
/// The Http error code.
/// The exception that is the cause of the current exception, or a null reference
/// (Nothing in Visual Basic) if no inner exception is specified
public ServiceExceptionBase(string message, HttpStatusCode httpStatusCode, Exception innerException = null)
: this(message, (int)httpStatusCode, innerException)
{
}
///
/// Initializes a new instance of the AuthenticationFailedException class with a specified error message.
///
/// The error message that explains the reason for the exception.
/// The Http error code.
/// The exception that is the cause of the current exception, or a null reference
/// (Nothing in Visual Basic) if no inner exception is specified
public ServiceExceptionBase(string message, int httpStatusCode, Exception innerException)
: base(message, innerException)
{
HttpStatusCode = (HttpStatusCode)httpStatusCode;
}
///
/// Initializes a new instance of the AuthenticationFailedException class with a specified error message
/// and a reference to the inner exception that is the cause of this exception.
///
/// The error message that explains the reason for the exception.
/// The exception that is the cause of the current exception, or a null reference
/// (Nothing in Visual Basic) if no inner exception is specified
protected ServiceExceptionBase(string message, Exception innerException)
: base(message, innerException)
{
}
///
/// Initializes a new instance of the AuthenticationFailedException class with serialized data.
///
/// The SerializationInfo that holds the serialized object data about the exception being thrown.
/// The StreamingContext that contains contextual information about the source or destination.
protected ServiceExceptionBase(SerializationInfo info, StreamingContext context)
: base(info, context)
{
}
///
/// The Http status code included in the exception
///
public HttpStatusCode HttpStatusCode
{
get; set;
}
}
}