/// <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); }
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); } }