public override void OnException(ExceptionContext context)
        {
            if (context.Exception is ValidationException)
            {
                context.HttpContext.Response.ContentType = "application/json";
                context.HttpContext.Response.StatusCode  = (int)HttpStatusCode.BadRequest;
                var errorList = new ArrayList();
                foreach (var validationFailure in ((ValidationException)context.Exception).Errors)
                {
                    errorList.Add(validationFailure.ErrorMessage);
                }

                var res = new DefaultPayloadModel <ArrayList>
                {
                    Result  = errorList,
                    Status  = false,
                    Message = "Invalid Data."
                };

                context.Result = new JsonResult(res);

                return;
            }

            string exceptionType = "";

            var code = HttpStatusCode.InternalServerError;

            if (context.Exception is NotFoundException)
            {
                code          = HttpStatusCode.NotFound;
                exceptionType = "Not Found.";
            }
            else if (context.Exception is AuthenticationException)
            {
                code          = HttpStatusCode.Unauthorized;
                exceptionType = "You have not enough permission to view this content.";
            }

            context.HttpContext.Response.ContentType = "application/json";
            context.HttpContext.Response.StatusCode  = (int)code;


            context.Result = new JsonResult(new DefaultPayloadModel <string[]>
            {
                Result  = new string[] { context.Exception.Message },
                Status  = false,
                Message = exceptionType
            });
        }
示例#2
0
        public async Task <IActionResult> GetWorkTypeList(int pageId)
        {
            var cmd = new GetWorkTypeListCmd()
            {
                UserRequestCmd = new GetWorkTypeListCmdModel()
                {
                    Page = pageId
                }
            };
            var result = new DefaultPayloadModel <GetWorkTypeListCmdResponse>()
            {
                Status  = true,
                Message = "",
                Result  = await _mediator.Send(cmd)
            };

            return(Ok(result));
        }