/// <summary> /// Gets a string representation of the exception /// </summary> /// <param name="failure">The object containing details of the failure</param> /// <param name="correlationID">The ID of the failed request</param> /// <returns>A string containing the details of the exception</returns> private static string GetMessage(RequestFailures failure, string correlationID) { string attributes = string.Empty; RequestAdministratorDetails details = failure.RequestAdministratorDetails; if (details != null) { if (details.FailedAttributes != null) { attributes = string.Join(",", details.FailedAttributes?.AttributeType); } return(string.Format( PermissionDeniedException.messageFormat, details.FailureMessage, attributes, details.RequestFailureSource, details.AdditionalTextDetails, correlationID )); } else { return(string.Format("A generic permission denied failure was returned from the server that did not contain detailed information. Correlation ID: {0}", correlationID ?? string.Empty)); } }
public static Exception GetPermissionDeniedException(MessageFault fault) { RequestFailures failure = fault.DeserializeMessageWithPayload <RequestFailures>(); if (failure == null) { return(new FaultException(fault)); } if (failure.RequestAdministratorDetails?.RequestFailureSource == RequestFailureSource.ResourceIsMissing) { return(new ResourceNotFoundException()); } return(new PermissionDeniedException(failure)); }
/// <summary> /// Initializes a new instance of the PermissionDeniedException class /// </summary> /// <param name="failure">The object containing the details of the failure</param> public PermissionDeniedException(RequestFailures failure) : base(GetMessage(failure, failure.CorrelationIdentifier), failure.CorrelationIdentifier) { this.details = failure.RequestAdministratorDetails; }