summaryrefslogtreecommitdiff
path: root/FireBase/FirebaseException.cs
diff options
context:
space:
mode:
Diffstat (limited to 'FireBase/FirebaseException.cs')
-rw-r--r--FireBase/FirebaseException.cs63
1 files changed, 63 insertions, 0 deletions
diff --git a/FireBase/FirebaseException.cs b/FireBase/FirebaseException.cs
new file mode 100644
index 0000000..e4b782b
--- /dev/null
+++ b/FireBase/FirebaseException.cs
@@ -0,0 +1,63 @@
+namespace Firebase.Database
+{
+ using System;
+ using System.Net;
+
+ public class FirebaseException : Exception
+ {
+ public FirebaseException(string requestUrl, string requestData, string responseData, HttpStatusCode statusCode)
+ : base(GenerateExceptionMessage(requestUrl, requestData, responseData))
+ {
+ this.RequestUrl = requestUrl;
+ this.RequestData = requestData;
+ this.ResponseData = responseData;
+ this.StatusCode = statusCode;
+ }
+
+ public FirebaseException(string requestUrl, string requestData, string responseData, HttpStatusCode statusCode, Exception innerException)
+ : base(GenerateExceptionMessage(requestUrl, requestData, responseData), innerException)
+ {
+ this.RequestUrl = requestUrl;
+ this.RequestData = requestData;
+ this.ResponseData = responseData;
+ this.StatusCode = statusCode;
+ }
+
+ /// <summary>
+ /// Post data passed to the authentication service.
+ /// </summary>
+ public string RequestData
+ {
+ get;
+ }
+
+ /// <summary>
+ /// Original url of the request.
+ /// </summary>
+ public string RequestUrl
+ {
+ get;
+ }
+
+ /// <summary>
+ /// Response from the authentication service.
+ /// </summary>
+ public string ResponseData
+ {
+ get;
+ }
+
+ /// <summary>
+ /// Status code of the response.
+ /// </summary>
+ 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}";
+ }
+ }
+}