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); } } }