private void HandleException(ExceptionContext context, IApplicationException exception) { Dictionary <string, object> error = new Dictionary <string, object>(); error["class"] = exception._class; error["name"] = exception._name; error["extra"] = exception.extraData; context.Result = new ObjectResult(new { error }); }
internal static IResult <TResult> FromException <TResult>([NotNull] IApplicationException exception) { if (exception == null) { throw new ArgumentNullException(nameof(exception)); } return(new Result <TResult> { Resource = default,
public static IResult <T> FromException <T>(IApplicationException exception = null) { exception ??= ApplicationException.Default; var substitute = Substitute.For <IResult <T> >(); substitute.Exception.Returns(exception); return(substitute); }
public void OnException(ExceptionContext context) { if (context.Exception.GetType().IsSubclassOf(typeof(IApplicationException))) { IApplicationException exception = (IApplicationException)context.Exception; HandleException(context, exception); } else { if (development) { //context.Result = new ObjectResult(new { context.Exception.Message, context.Exception.StackTrace }); HandleException(context, new InternalErrorException(context.Exception)); } else { HandleException(context, new InternalErrorException()); } } }
public static void AddModelErrors(this ModelStateDictionary modelState, IApplicationException appException) { if (modelState == null) { throw new ArgumentNullException(nameof(modelState)); } if (appException == null) { throw new ArgumentNullException(nameof(appException)); } var messagesUsed = false; if (appException.Messages != null) { foreach (var m in appException.Messages) { messagesUsed = true; modelState.AddModelError(m.Field ?? string.Empty, m.Message); } } var messageUsed = false; if (!string.IsNullOrWhiteSpace(appException.Message)) { messageUsed = true; modelState.AddModelError(string.Empty, appException.Message); } if (!messagesUsed && !messageUsed) { modelState.AddModelError(string.Empty, "Internal error"); } }