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); } }
public override FacetResponse Handle( FacetRequest request, Func <FacetRequest, FacetResponse> next, string[] parameters ) { if (!auth.Check()) { throw new AuthException("Unauthenticated"); } return(next.Invoke(request)); }
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(); }