summaryrefslogtreecommitdiff
path: root/dsa/FireBase/FirebaseException.cs
diff options
context:
space:
mode:
Diffstat (limited to 'dsa/FireBase/FirebaseException.cs')
-rw-r--r--dsa/FireBase/FirebaseException.cs53
1 files changed, 53 insertions, 0 deletions
diff --git a/dsa/FireBase/FirebaseException.cs b/dsa/FireBase/FirebaseException.cs
new file mode 100644
index 0000000..cfc09d3
--- /dev/null
+++ b/dsa/FireBase/FirebaseException.cs
@@ -0,0 +1,53 @@
+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;
+ }
+
+ /// <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}";
+ }
+ }
+} \ No newline at end of file