guibranco/GuiStracini.HolidayAPI

View on GitHub
Src/GuiStracini.HolidayAPI/GoodPractices/HolidayAPIException.cs

Summary

Maintainability
A
0 mins
Test Coverage
// ***********************************************************************
// Assembly         : GuiStracini.HolidayAPI
// Author           : Guilherme Branco Stracini
// Created          : 06-23-2020
//
// Last Modified By : Guilherme Branco Stracini
// Last Modified On : 28/01/2023
// ***********************************************************************
// <copyright file="HolidayAPIException.cs" company="Guilherme Branco Stracini">
//     © 2020 Guilherme Branco Stracini. All rights reserved.
// </copyright>
// <summary></summary>
// ***********************************************************************
namespace GuiStracini.HolidayAPI.GoodPractices
{
    using System;
    using System.Diagnostics.CodeAnalysis;
    using System.Runtime.Serialization;

    /// <summary>
    /// The HolidayAPI exception class.
    /// </summary>
    /// <seealso cref="System.Exception" />
    [Serializable]
    [ExcludeFromCodeCoverage]
    public sealed class HolidayApiException : Exception
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="HolidayApiException" /> class.
        /// </summary>
        /// <param name="endpoint">The endpoint.</param>
        /// <param name="innerException">The inner exception.</param>
        public HolidayApiException(string endpoint, Exception innerException)
            : base($"Unable to complete request to {endpoint}", innerException) { }

        /// <summary>
        /// Initializes a new instance of the <see cref="HolidayApiException" /> class.
        /// </summary>
        /// <param name="statusCode">The status code.</param>
        /// <param name="errorMessage">The error message.</param>
        public HolidayApiException(int statusCode, string errorMessage)
            : base($"{statusCode} - {errorMessage}") { }

        /// <summary>
        /// Initializes a new instance of the <see cref="T:System.Exception"></see> class with serialized data.
        /// </summary>
        /// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"></see> that holds the serialized object data about the exception being thrown.</param>
        /// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"></see> that contains contextual information about the source or destination.</param>
        /// <exception cref="T:System.ArgumentNullException">The <paramref name="info">info</paramref> parameter is null.</exception>
        /// <exception cref="T:System.Runtime.Serialization.SerializationException">The class name is null or <see cref="P:System.Exception.HResult"></see> is zero (0).</exception>
        private HolidayApiException(SerializationInfo info, StreamingContext context)
            : base(info, context) { }
    }
}