Exemplo n.º 1
0
        public override FacetResponse Handle(
            FacetRequest request,
            Func <FacetRequest, FacetResponse> next,
            string[] parameters
            )
        {
            if (parameters.Length == 0)
            {
                throw new ArgumentException(
                          "Middleware expects one parameter as the used session id."
                          );
            }

            string sessionId = parameters[0];

            ISession sessionOnStartup = App.Resolve <ISession>();

            sessionOnStartup.LoadSession(sessionId);

            try
            {
                return(next.Invoke(request));
            }
            finally
            {
                // someone might have tampered with the session service
                // (which happens in full stack tests when clearing the database)
                ISession sessionOnTeardown = App.Resolve <ISession>();
                sessionOnTeardown.StoreSession(sessionId);
            }
        }
Exemplo n.º 2
0
        public override FacetResponse Handle(
            FacetRequest request,
            Func <FacetRequest, FacetResponse> next,
            string[] parameters
            )
        {
            if (!auth.Check())
            {
                throw new AuthException("Unauthenticated");
            }

            return(next.Invoke(request));
        }
Exemplo n.º 3
0
        public override FacetResponse Handle(
            FacetRequest request,
            Func <FacetRequest, FacetResponse> next,
            string[] parameters
            )
        {
            AppendToLog(parameters[0]);

            var response = next.Invoke(request);

            AppendToLog(parameters[0] + "'");

            return(response);
        }
        /// <summary>
        /// Handle the facet call request
        /// </summary>
        public JsonValue Handle(MethodParameters methodParameters)
        {
            string sessionId = ProcessSessionId(methodParameters);

            FacetRequest request = FacetRequest.CreateFrom(
                methodParameters.FacetName,
                methodParameters.MethodName,
                methodParameters.Arguments,
                app.GameAssemblyTypes
                );

            MiddlewareAttribute[] globalMiddleware =
            {
                new MiddlewareAttribute(
                    1,
                    typeof(StartSession),
                    sessionId
                    )
            };

            var response = FacetMiddleware.ExecuteMiddlewareStack(
                app,
                globalMiddleware,
                request,
                rq => {
                object returnedValue = null;

                UnwrapTargetInvocationException(() => {
                    returnedValue = rq.Method.Invoke(
                        rq.Facet,
                        rq.Arguments
                        );
                });

                return(FacetResponse.CreateFrom(
                           returnedValue,
                           request.Method
                           ));
            }
                );

            return(response.ReturnedJson);
        }
        private static IList <FacetRequest> GetFacets(SearchRequest request, IList <Field> availableFields)
        {
            var result = new List <FacetRequest>();

            if (request.Aggregations != null)
            {
                foreach (var aggregation in request.Aggregations)
                {
                    string facet = null;

                    switch (aggregation)
                    {
                    case TermAggregationRequest termAggregationRequest:
                        facet = CreateTermAggregationRequest(termAggregationRequest, availableFields);
                        break;

                    case RangeAggregationRequest rangeAggregationRequest:
                        facet = CreateRangeAggregationRequest(rangeAggregationRequest, availableFields);
                        break;
                    }

                    if (aggregation.Filter != null || !string.IsNullOrEmpty(facet))
                    {
                        var facetRequest = new FacetRequest
                        {
                            Id        = aggregation.Id,
                            FieldName = aggregation.FieldName,
                            Filter    = GetFilterExpressionRecursive(aggregation.Filter, availableFields),
                            Facet     = facet,
                        };

                        result.Add(facetRequest);
                    }
                }
            }

            return(result);
        }
 public void Init()
 {
     instance = new FacetRequest();
 }