Пример #1
0
        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));
        }
Пример #2
0
        /// <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);
        }