Exemple #1
0
        /// <summary>
        /// Parses a JSON string. If parsing fails, throws a StatusCodeException that returns a Bad Request (400).
        /// The class needs to be decorated with the DataContract attribute.
        /// </summary>
        /// <typeparam name="T">Class type</typeparam>
        /// <param name="json">JSON source text</param>
        /// <returns>Instance of deserialized class</returns>
        public T Parse <T>(string json) where T : class
        {
            T?result;

            try
            {
                result = LaraTools.Deserialize <T>(json);
            }
            catch (Exception e)
            {
                var outer = new StatusCodeException(Resources.BadRequest, e)
                {
                    StatusCode = HttpStatusCode.BadRequest
                };
                throw outer;
            }
            if (result == null)
            {
                throw new StatusCodeException(HttpStatusCode.BadRequest, Resources.BadRequest);
            }
            return(result);
        }
Exemple #2
0
 private static async Task ReplyStatusCodeError(Application app, HttpContext http, StatusCodeException status, LaraOptions options)
 {
     if (app.ErrorPages.TryGetPage(status.StatusCode, out var page))
     {
         await page.Run(app, http, options);
     }
     else
     {
         await MiddlewareCommon.SendStatusReply(http, status.StatusCode, status.Message);
     }
 }