public ApiResult(bool isSuccess, ApiResultStatusCode statusCode, string message = null ) { IsSuccess = isSuccess; StatusCode = statusCode; Message = message ?? statusCode.ToDisplay(); }
public AppException(ApiResultStatusCode statusCode, string message, HttpStatusCode httpStatusCode, Exception exception, object additionalData) : base(message, exception) { ApiStatusCode = statusCode; HttpStatusCode = httpStatusCode; AdditionalData = additionalData; }
public async Task Invoke(HttpContext context) { string message = null; HttpStatusCode httpStatusCode = HttpStatusCode.InternalServerError; ApiResultStatusCode apiStatusCode = ApiResultStatusCode.ServerError; try { await _next(context); } catch (Exception exception) { _logger.LogError(exception, exception.Message); if (_env.IsDevelopment()) { var dic = new Dictionary <string, string> { ["Exception"] = exception.Message, ["StackTrace"] = exception.StackTrace, }; message = JsonConvert.SerializeObject(dic); } await WriteToResponseAsync(); } async Task WriteToResponseAsync() { if (context.Response.HasStarted) { throw new InvalidOperationException("The response has already started, the http status code middleware will not be executed."); } var result = new ApiResult(false, apiStatusCode, message); var json = JsonConvert.SerializeObject(result); context.Response.StatusCode = (int)httpStatusCode; context.Response.ContentType = "application/json"; await context.Response.WriteAsync(json); } }
public async Task Invoke(HttpContext context) { List <string> Message = new List <string>(); HttpStatusCode httpStatusCode = HttpStatusCode.InternalServerError; ApiResultStatusCode apiResultStatusCode = ApiResultStatusCode.ServerError; try { await _next(context); } catch (Exception ex) { if (_env.IsDevelopment()) { var error = new Dictionary <string, string> { ["Exception"] = ex.Message, ["StackTrace"] = ex.StackTrace }; Message.Add(JsonConvert.SerializeObject(error)); } else { Message.Add("خطایی رخ داده است"); } await WriteToResponseAsync(); } async Task WriteToResponseAsync() { var result = new ApiResult(false, apiResultStatusCode, Message); var jsonResult = JsonConvert.SerializeObject(result); context.Response.StatusCode = (int)httpStatusCode; context.Response.ContentType = "application/json"; await context.Response.WriteAsync(jsonResult); } }
public AppException(ApiResultStatusCode statusCode) : this(statusCode, null) { }
public async Task Invoke(HttpContext context) { List <string> message = new List <string>(); HttpStatusCode httpStatusCode = HttpStatusCode.InternalServerError; ApiResultStatusCode apiResultStatus = ApiResultStatusCode.ServerError; try { await _next(context); } catch (AppException exception) { httpStatusCode = exception.HttpStatusCode; apiResultStatus = exception.ApiStatusCode; if (_evn.IsDevelopment()) { var dic = new Dictionary <string, string> { ["Exception"] = exception.Message, ["StackTrace"] = exception.StackTrace, }; if (exception.InnerException != null) { dic.Add("InnerException.Exception", exception.InnerException.Message); dic.Add("InnerException.StackTrace", exception.InnerException.StackTrace); } if (exception.AdditionalData != null) { dic.Add("AdditionalData", JsonConvert.SerializeObject(exception.AdditionalData)); } message.Add(JsonConvert.SerializeObject(dic)); } else { message.Add("خطایی رخ داده است."); } await WriteToResponseAsync(); } catch (Exception exception) { if (_evn.IsDevelopment()) { var error = new Dictionary <string, string> { ["Exception"] = exception.Message, ["StackTrace"] = exception.StackTrace, }; message.Add(JsonConvert.SerializeObject(error)); } else { message.Add("خطایی رخ داده است."); } await WriteToResponseAsync(); } async Task WriteToResponseAsync() { var result = new ApiResult(false, apiResultStatus, message); var jsonResult = JsonConvert.SerializeObject(result); context.Response.StatusCode = (int)httpStatusCode; context.Response.ContentType = "application/json"; await context.Response.WriteAsync(jsonResult); } }
public ApiResult(ApiResultStatusCode apiResultStatusCode, string message = null) { ApiResultStatusCode = apiResultStatusCode; Message = message ?? apiResultStatusCode.ToDisplay(); }
public AppException(ApiResultStatusCode statusCode, string message, HttpStatusCode httpStatusCode, Exception exception) : this(statusCode, message, httpStatusCode, exception, null) { }
public AppException(ApiResultStatusCode statusCode, string message, Exception exception) : this(statusCode, message, HttpStatusCode.InternalServerError, exception) { }
public ApiException() { StatusCode = ApiResultStatusCode.ServerError; }
public CleanArchAppException(ApiResultStatusCode statusCode, string message, HttpStatusCode httpStatusCode) : this(statusCode, message, httpStatusCode, null) { }
public CleanArchAppException(ApiResultStatusCode statusCode, string message) : this(statusCode, message, HttpStatusCode.InternalServerError) { }
public async Task Invoke(HttpContext context) { string message = null; HttpStatusCode httpStatusCode = HttpStatusCode.InternalServerError; ApiResultStatusCode apiStatusCode = ApiResultStatusCode.ServerError; try { var isAjax = context.Request.IsAjax(); var isPostAjax = context.Request.IsAjax("POST"); var isSentFromPostMan = context.Request.Headers.ContainsKey("Postman-Token"); if (isSentFromPostMan) { var postManValue = context.Request.Headers["Postman-Token"]; } if (isAjax && context.User.Identity.IsAuthenticated && !string.IsNullOrEmpty(CookieManager.Get(context, CookieManager.CookieKeys.JwtToken)) && !string.IsNullOrEmpty(context.Request.Headers["Authorization"]) && context.Request.Headers["Authorization"] != $"Bearer {CookieManager.Get(context, CookieManager.CookieKeys.JwtToken)}") { throw new BadRequestException("Jwt token in Request not valid!"); } await _next(context); } catch (AppException exception) { _logger.LogError(exception, exception.Message); httpStatusCode = exception.HttpStatusCode; apiStatusCode = exception.ApiStatusCode; if (context.Request.IsAjax()) { if (_env.IsDevelopment()) { var dic = new Dictionary <string, string> { ["Exception"] = exception.Message, ["StackTrace"] = exception.StackTrace, }; if (exception.InnerException != null) { dic.Add("InnerException.Exception", exception.InnerException.Message); dic.Add("InnerException.StackTrace", exception.InnerException.StackTrace); } if (exception.AdditionalData != null) { dic.Add("AdditionalData", JsonConvert.SerializeObject(exception.AdditionalData)); } message = JsonConvert.SerializeObject(dic); } else { message = exception.Message; } await WriteToResponseAsync(); } else { if (httpStatusCode == HttpStatusCode.Unauthorized) { if (context.User.Identity.IsAuthenticated) { context.Response.Redirect("/Home"); } else { context.Response.Redirect("/Login"); } } } } catch (SecurityTokenExpiredException exception) { _logger.LogError(exception, exception.Message); if (context.Request.IsAjax()) { SetUnAuthorizeResponse(exception); await WriteToResponseAsync(); } else { if (httpStatusCode == HttpStatusCode.Unauthorized) { if (context.User.Identity.IsAuthenticated) { context.Response.Redirect("/Home"); } else { context.Response.Redirect("/Login"); } } } } catch (UnauthorizedAccessException exception) { _logger.LogError(exception, exception.Message); if (context.Request.IsAjax()) { SetUnAuthorizeResponse(exception); await WriteToResponseAsync(); } else { if (httpStatusCode == HttpStatusCode.Unauthorized) { if (context.User.Identity.IsAuthenticated) { context.Response.Redirect("/Home"); } else { context.Response.Redirect("/Login"); } } } } catch (Exception exception) { _logger.LogError(exception, exception.Message); if (context.Request.IsAjax()) { if (_env.IsDevelopment()) { var dic = new Dictionary <string, string> { ["Exception"] = exception.Message, ["StackTrace"] = exception.StackTrace, }; message = JsonConvert.SerializeObject(dic); } await WriteToResponseAsync(); } else { if (httpStatusCode == HttpStatusCode.Unauthorized) { if (context.User.Identity.IsAuthenticated) { context.Response.Redirect("/Home"); } else { context.Response.Redirect("/Login"); } } } } async Task WriteToResponseAsync() { if (context.Response.HasStarted) { throw new InvalidOperationException("The response has already started, the http status code middleware will not be executed."); } var result = new ApiResult(false, apiStatusCode, message); var json = JsonConvert.SerializeObject(result); context.Response.StatusCode = (int)httpStatusCode; context.Response.ContentType = "application/json"; await context.Response.WriteAsync(json); } void SetUnAuthorizeResponse(Exception exception) { httpStatusCode = HttpStatusCode.Unauthorized; apiStatusCode = ApiResultStatusCode.UnAuthorized; if (_env.IsDevelopment()) { var dic = new Dictionary <string, string> { ["Exception"] = exception.Message, ["StackTrace"] = exception.StackTrace }; if (exception is SecurityTokenExpiredException tokenException) { dic.Add("Expires", tokenException.Expires.ToString()); } message = JsonConvert.SerializeObject(dic); } } }
/// <summary> /// Initializes a new instance of the <see cref="UserApiResult" /> class. /// </summary> /// <param name="data">data.</param> /// <param name="isSuccess">isSuccess.</param> /// <param name="statusCode">statusCode.</param> /// <param name="message">message.</param> public UserApiResult(User data = default(User), bool?isSuccess = default(bool?), ApiResultStatusCode statusCode = default(ApiResultStatusCode), string message = default(string)) { this.Data = data; this.IsSuccess = isSuccess; this.StatusCode = statusCode; this.Message = message; }
/// <summary> /// Initializes a new instance of the <see cref="ApiResult" /> class. /// </summary> /// <param name="isSuccess">isSuccess.</param> /// <param name="statusCode">statusCode.</param> /// <param name="message">message.</param> public ApiResult(bool?isSuccess = default(bool?), ApiResultStatusCode statusCode = default(ApiResultStatusCode), string message = default(string)) { this.IsSuccess = isSuccess; this.StatusCode = statusCode; this.Message = message; }
public AppException(ApiResultStatusCode statusCode, object additionalData) : this(statusCode, null, additionalData) { }
public AppException(ApiResultStatusCode statusCode, string message, HttpStatusCode httpStatusCode, object additionalData) : this(statusCode, message, httpStatusCode, null, additionalData) { }
public ApiException(string message) : base(message) { StatusCode = ApiResultStatusCode.ServerError; }
public AppException(ApiResultStatusCode statusCode, string message, Exception exception, object additionalData) : this(statusCode, message, HttpStatusCode.InternalServerError, exception, additionalData) { }
public ApiException(string message, ApiResultStatusCode statusCode) : base(message) { StatusCode = statusCode; }
public ApiStructResult(bool isSuccess, ApiResultStatusCode statusCode, TStruct data, string message = null) : base(isSuccess, statusCode, message) { Data = data; }
/// <summary> /// Initializes a new instance of the <see cref="GPSTruckRecordSelectDtoApiResult" /> class. /// </summary> /// <param name="data">data.</param> /// <param name="isSuccess">isSuccess.</param> /// <param name="statusCode">statusCode.</param> /// <param name="message">message.</param> public GPSTruckRecordSelectDtoApiResult(GPSTruckRecordSelectDto data = default(GPSTruckRecordSelectDto), bool?isSuccess = default(bool?), ApiResultStatusCode statusCode = default(ApiResultStatusCode), string message = default(string)) { this.Data = data; this.IsSuccess = isSuccess; this.StatusCode = statusCode; this.Message = message; }
public async Task Invoke(HttpContext context) { string message = null; HttpStatusCode httpStatusCode = HttpStatusCode.InternalServerError; ApiResultStatusCode apiStatusCode = ApiResultStatusCode.ServerError; try { await _next(context); } catch (AppException exception) { _logger.LogError(exception, exception.Message); httpStatusCode = exception.HttpStatusCode; apiStatusCode = exception.ApiStatusCode; if (_env.IsDevelopment()) { Dictionary <string, string> dic = new Dictionary <string, string> { ["Exception"] = exception.Message, ["StackTrace"] = exception.StackTrace, }; if (exception.InnerException != null) { dic.Add("InnerException.Exception", exception.InnerException.Message); dic.Add("InnerException.StackTrace", exception.InnerException.StackTrace); } if (exception.AdditionalData != null) { dic.Add("AdditionalData", JsonConvert.SerializeObject(exception.AdditionalData)); } message = JsonConvert.SerializeObject(dic); } else { message = exception.Message; } await WriteToResponseAsync(); } catch (SecurityTokenExpiredException exception) { _logger.LogError(exception, exception.Message); SetUnAuthorizeResponse(exception); await WriteToResponseAsync(); } catch (UnauthorizedAccessException exception) { _logger.LogError(exception, exception.Message); SetUnAuthorizeResponse(exception); await WriteToResponseAsync(); } catch (Exception exception) { _logger.LogError(exception, exception.Message); if (_env.IsDevelopment()) { Dictionary <string, string> dic = new Dictionary <string, string> { ["Exception"] = exception.Message, ["StackTrace"] = exception.StackTrace, }; message = JsonConvert.SerializeObject(dic); } await WriteToResponseAsync(); } async Task WriteToResponseAsync() { if (context.Response.HasStarted) { throw new InvalidOperationException("The response has already started, the http status code middleware will not be executed."); } ApiResult result = new ApiResult(false, apiStatusCode, message); string json = JsonConvert.SerializeObject(result); context.Response.StatusCode = (int)httpStatusCode; context.Response.ContentType = "application/json"; await context.Response.WriteAsync(json); } void SetUnAuthorizeResponse(Exception exception) { httpStatusCode = HttpStatusCode.Unauthorized; apiStatusCode = ApiResultStatusCode.UnAuthorized; if (_env.IsDevelopment()) { Dictionary <string, string> dic = new Dictionary <string, string> { ["Exception"] = exception.Message, ["StackTrace"] = exception.StackTrace }; if (exception is SecurityTokenExpiredException tokenException) { dic.Add("Expires", tokenException.Expires.ToString()); } message = JsonConvert.SerializeObject(dic); } } }
public ApiResult(ApiResultStatusCode statusCode, List <string> message = null) { StatusCode = statusCode; Message = message ?? statusCode.ToDisplays(); }