using System; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Net; using System.Runtime.Serialization; namespace Octokit { /// /// /// #if !NETFX_CORE [Serializable] #endif [SuppressMessage("Microsoft.Design", "CA1032:ImplementStandardExceptionConstructors", Justification = "These exceptions are specific to the GitHub API and not general purpose exceptions")] public class TwoFactorRequiredException : TwoFactorAuthorizationException { /// /// Constructs an instance of TwoFactorRequiredException. /// public TwoFactorRequiredException() : this(TwoFactorType.None) { } /// /// Constructs an instance of TwoFactorRequiredException. /// /// Expected 2FA response type public TwoFactorRequiredException(TwoFactorType twoFactorType) : base(twoFactorType, null) { } /// /// Constructs an instance of TwoFactorRequiredException. /// /// The HTTP payload from the server /// Expected 2FA response type public TwoFactorRequiredException(IResponse response, TwoFactorType twoFactorType) : base(response, twoFactorType) { Debug.Assert(response != null && response.StatusCode == HttpStatusCode.Unauthorized, "TwoFactorRequiredException status code should be 401"); } public override string Message { get { return ApiErrorMessageSafe ?? "Two-factor authentication code is required"; } } #if !NETFX_CORE /// /// Constructs an instance of TwoFactorRequiredException. /// /// /// The that holds the /// serialized object data about the exception being thrown. /// /// /// The that contains /// contextual information about the source or destination. /// protected TwoFactorRequiredException(SerializationInfo info, StreamingContext context) : base(info, context) { } #endif } }