Exemplo n.º 1
0
        /// <summary>
        /// Creates a new <see cref="JsonErrorResult"/> instance containing details from the provided <paramref name="exception"/> and <paramref name="message"/>.
        /// </summary>
        /// <param name="exception">The exception that occurred.</param>
        /// <param name="message">An error message to include in the result. Can be null.</param>
        public static JsonErrorResult Create(Exception exception, string message)
        {
            Exception       objExc         = exception;
            string          strJsonMessage = message;
            string          strExcMessage  = null;
            JsonErrorResult result         = new JsonErrorResult();

            if (objExc != null)
            {
                // construct the exception message as a concatenated string of all inner exceptions
                strExcMessage = objExc.Message;
                while (objExc.InnerException != null)
                {
                    objExc        = objExc.InnerException;
                    strExcMessage = string.Format("{0}: {1}", strExcMessage, objExc.Message);
                }
            }

            // if an explicit error message hasn't been defined
            if (strJsonMessage == null)
            {
                // use the exception message(s) as the error message
                strJsonMessage = strExcMessage;
            }

            // construct the JSON error result package
            if (objExc != null)
            {
                result.Exception        = exception.GetType().ToString();
                result.ExceptionMessage = strExcMessage;
                result.StackTrace       = exception.StackTrace;
            }
            result.Message = strJsonMessage;

            return(result);
        }
Exemplo n.º 2
0
 /// <summary>
 /// Generates a <see cref="JsonResult"/> containing a Json serialized instance
 /// of <see cref="JsonErrorResult"/> that includes the <paramref name="message"/> and
 /// details from the <paramref name="exception"/>.
 /// </summary>
 /// <param name="message">The error message.</param>
 /// <param name="exception">An exception. Can be null.</param>
 /// <returns></returns>
 protected JsonResult JsonError(string message, Exception exception)
 {
     return(Json(JsonErrorResult.Create(exception, message), JsonRequestBehavior.AllowGet));
 }