private void CustomizeQuery(IDocumentQueryCustomization p, bool waitForNonStaleResults) { if (waitForNonStaleResults) { p.WaitForNonStaleResults(); } }
public void BeforeQueryExecuted(IDocumentQueryCustomization customization) { var type = customization.GetType(); var entityType = type.GetInterfaces() .SingleOrDefault(i => i.IsClosedTypeOf(typeof(IDocumentQuery <>)) || i.IsClosedTypeOf(typeof(IAsyncDocumentQuery <>))) ?.GetGenericArguments() .Single(); if (entityType != null && entityType.IsAssignableTo <ITenantedEntity>()) { // Add the "AND" to the the WHERE clause // (the method has a check under the hood to prevent adding "AND" if the "WHERE" is empty) type.GetMethod("AndAlso").Invoke(customization, null); // Add "TenantId = 'Bla'" into the WHERE clause type.GetMethod("WhereEquals", new[] { typeof(string), typeof(object) } ) .Invoke(customization, new object[] { nameof(ITenantedEntity.TenantId), _resolver.GetCurrentTenantId() } ); } }
public void BeforeQueryExecuted(IDocumentQueryCustomization queryCustomization) { queryCustomization.BeforeQueryExecution(q => { q.Query = "Text: Testing"; }); }
/// <summary> /// When running in server mode, customizes the query to return only metadata - conserving http bandwidth. /// Does nothing when running in embedded mode. /// </summary> public static void MetadataOnly(this IDocumentQueryCustomization customization) { // This is a hack, but there's no other clear way to modify the querystring of the url. // It works because it ends of appending "&include=&metadata-only=true", // and the first term gets ignored by the server because it has no value. customization.Include("&metadata-only=true"); }
public void BeforeQueryExecuted(IDocumentQueryCustomization queryCustomization) { var documentQuery = queryCustomization as IDocumentQuery <Company>; if (documentQuery != null) { documentQuery.WhereEquals(x => x.Address.Country, "USA"); } }
public void BeforeQueryExecuted(IDocumentQueryCustomization queryCustomization) { // I hate reflection and dynamic, but this works. var fieldInfo = queryCustomization.GetType().GetField("includes", BindingFlags.Instance | BindingFlags.NonPublic); if (fieldInfo == null) { throw new InvalidOperationException(); } string effective = null; var includes = (HashSet <string>)fieldInfo.GetValue(queryCustomization); if (includes != null) { var filteringDisabledTag = includes.FirstOrDefault(x => x == "__TemporalFilteringDisabled__"); if (filteringDisabledTag != null) { includes.Remove(filteringDisabledTag); return; } var effectiveTag = includes.FirstOrDefault(x => x.StartsWith("__TemporalEffective__")); if (effectiveTag != null) { includes.Remove(effectiveTag); effective = effectiveTag.Split('=')[1]; } } if (effective == null) { effective = SystemTime.UtcNow.ToString("o"); } dynamic documentQuery = queryCustomization; var session = (DocumentSession)documentQuery.Session; var headers = session.DatabaseCommands.OperationsHeaders; headers[TemporalMetadata.RavenTemporalEffective] = effective; documentQuery.AfterQueryExecuted((Action <QueryResult>)(result => headers.Remove(TemporalMetadata.RavenTemporalEffective))); }
public void BeforeQueryExecuted(IDocumentQueryCustomization queryCustomization) { // I hate reflection and dynamic, but this works. var fieldInfo = queryCustomization.GetType().GetField("includes", BindingFlags.Instance | BindingFlags.NonPublic); if (fieldInfo == null) throw new InvalidOperationException(); string effective = null; var includes = (HashSet<string>) fieldInfo.GetValue(queryCustomization); if (includes != null) { var filteringDisabledTag = includes.FirstOrDefault(x => x == "__TemporalFilteringDisabled__"); if (filteringDisabledTag != null) { includes.Remove(filteringDisabledTag); return; } var effectiveTag = includes.FirstOrDefault(x => x.StartsWith("__TemporalEffective__")); if (effectiveTag != null) { includes.Remove(effectiveTag); effective = effectiveTag.Split('=')[1]; } } if (effective == null) effective = SystemTime.UtcNow.ToString("o"); dynamic documentQuery = queryCustomization; var session = (DocumentSession) documentQuery.Session; var headers = session.DatabaseCommands.OperationsHeaders; headers[TemporalMetadata.RavenTemporalEffective] = effective; documentQuery.AfterQueryExecuted((Action<QueryResult>) (result => headers.Remove(TemporalMetadata.RavenTemporalEffective))); }
public void BeforeQueryExecuted(IDocumentQueryCustomization queryCustomization) { queries.Add(queryCustomization.ToString()); }
public void BeforeQueryExecuted(IDocumentQueryCustomization queryCustomization) { Debug.WriteLine(queryCustomization); }
protected abstract void BeforeQueryExecuted(IDocumentQueryCustomization queryCustomization);
public void BeforeQueryExecuted(IDocumentQueryCustomization queryCustomization) { queryCustomization.WaitForNonStaleResults(TimeSpan.FromSeconds(30)); }
public static IDocumentQueryCustomization DisableTemporalFiltering(this IDocumentQueryCustomization customization) { // this gets stripped out later by the listener return(customization.Include("__TemporalFilteringDisabled__")); }
/// <summary> /// Customizes the query such that any transform results function defined on the index will not be executed, /// returning just the raw results instead. /// </summary> public static IDocumentQueryCustomization SkipTransformResults(this IDocumentQueryCustomization customization) { return(customization.BeforeQueryExecution(x => x.SkipTransformResults = true)); }
public void BeforeQueryExecuted(IDocumentQueryCustomization queryCustomization) { queryCustomization.WaitForNonStaleResultsAsOfNow(); }
public void BeforeQueryExecuted(IDocumentQueryCustomization queryCustomization) { Debug.WriteLine(queryCustomization); }
public void BeforeQueryExecuted(IDocumentQueryCustomization customization) { customization.NoCaching(); }
public BeforeQueryEventArgs(InMemoryDocumentSessionOperations session, IDocumentQueryCustomization queryCustomization) { Session = session; QueryCustomization = queryCustomization; }
public void BeforeQueryExecuted(IDocumentQueryCustomization customization) { customization.NoCaching(); }
void IDocumentQueryListener.BeforeQueryExecuted(IDocumentQueryCustomization queryCustomization) { BeforeQueryExecuted(queryCustomization); }
public void BeforeQueryExecuted(IDocumentQueryCustomization customization) { customization.WaitForNonStaleResultsAsOfLastWrite(); }
public void BeforeQueryExecuted(IDocumentQueryCustomization queryCustomization) { queries.Add(queryCustomization.ToString()); }
public void BeforeQueryExecuted(IDocumentQueryCustomization customization) { customization.WaitForNonStaleResults(); }
protected override void BeforeQueryExecuted(IDocumentQueryCustomization queryCustomization) { BeforeQueryExecutedCalled = true; }
public void BeforeQueryExecuted(IDocumentQueryCustomization queryCustomization) { queryCustomization.WaitForNonStaleResults(); }
public void BeforeQueryExecuted(IDocumentQueryCustomization queryCustomization) { var documentQuery = queryCustomization as IDocumentQuery<NameAndCountry.Result>; if (documentQuery != null) documentQuery.WhereEquals(x => x.Country, "USA"); }