using System; using System.Net; namespace Firebase.Database { public class FirebaseException : Exception { public FirebaseException(string requestUrl, string requestData, string responseData, HttpStatusCode statusCode) : base(GenerateExceptionMessage(requestUrl, requestData, responseData)) { RequestUrl = requestUrl; RequestData = requestData; ResponseData = responseData; StatusCode = statusCode; } public FirebaseException(string requestUrl, string requestData, string responseData, HttpStatusCode statusCode, Exception innerException) : base(GenerateExceptionMessage(requestUrl, requestData, responseData), innerException) { RequestUrl = requestUrl; RequestData = requestData; ResponseData = responseData; StatusCode = statusCode; } /// /// Post data passed to the authentication service. /// public string RequestData { get; } /// /// Original url of the request. /// public string RequestUrl { get; } /// /// Response from the authentication service. /// public string ResponseData { get; } /// /// Status code of the response. /// public HttpStatusCode StatusCode { get; } private static string GenerateExceptionMessage(string requestUrl, string requestData, string responseData) { return $"Exception occured while processing the request.\nUrl: {requestUrl}\nRequest Data: {requestData}\nResponse: {responseData}"; } } }