kreta/KretaWeb/Helpers/Error/StatusError.cs
2024-03-13 00:33:46 +01:00

78 lines
2.3 KiB
C#

using System;
using System.Net;
using System.Web.Routing;
using Kreta.Enums.ManualEnums;
namespace Kreta.Web.Helpers.Error
{
public class StatusError : Exception
{
public int StatusCode { get; private set; }
public object Json { get; set; }
public Exception UnHandledException { get; set; }
public RouteValueDictionary Redirect { get; set; }
public string CloseFunction { get; set; }
public StatusError(int statusCode, string message) : base(message)
{
this.StatusCode = statusCode;
}
public StatusError(HttpStatusCode statusCode, string message) : base(message)
{
this.StatusCode = (int)statusCode;
}
public StatusError(CustomHTTPStatusEnum statusCode, string message) : base(message)
{
this.StatusCode = (int)statusCode;
}
public StatusError(HttpStatusCode statusCode, string message, Exception ex) : base(message)
{
this.StatusCode = (int)statusCode;
UnHandledException = ex;
}
}
public class ErrorModel
{
public ErrorModel()
{
IsStatusError = true;
}
public bool IsStatusError { get; set; }
public string Message { get; set; }
public object Json { get; set; }
public int Status { get; set; }
public bool IsMvc { get; set; }
public Guid? ErrorCode { get; set; }
public string CloseFunction { get; set; }
}
public class ClientErrorModel
{
public string Message { get; set; }
public string URL { get; set; }
public string Line { get; set; }
public string Column { get; set; }
public string Error { get; set; }
public string StackTrace { get; set; }
public string Agent { get; set; }
}
public class ClientError : Exception
{
public ClientError(ClientErrorModel model) : base(model.Message)
{
this.Data.Add("Line", model.Line);
this.Data.Add("Column", model.Column);
this.Data.Add("Error", model.Error);
this.Data.Add("URL", model.URL);
this.Data.Add("Agent", model.Agent);
this.Data.Add("StackTrace", model.StackTrace);
}
}
}