private FieldsParserResult ParseImpl(HttpRequest request) { if (!request.Query.ContainsKey(FieldsParameterName)) { return(FieldsParserResult.NoValue()); } var isError = !Fields.TryParse(request.Query[FieldsParameterName][0], out var fields); if (isError) { return(FieldsParserResult.Failed()); } return(FieldsParserResult.Success(fields)); }
/// <summary> /// Parses the fields parameter from the request. /// </summary> /// <param name="request">The request.</param> /// <returns>The parsed fields.</returns> public FieldsParserResult Parse(HttpRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } FieldsParserResult fieldsResult = default; var httpContext = request.HttpContext; if (!httpContext.Items.ContainsKey(FieldsCacheKey)) { httpContext.Items[FieldsCacheKey] = fieldsResult = this.ParseImpl(request); } else { fieldsResult = (FieldsParserResult)httpContext.Items[FieldsCacheKey]; } return(fieldsResult); }