/// <summary>
        /// Registers projection handlers for Neo4J
        /// </summary>
        /// <param name="descriptor">The descriptor where the handlers are registered</param>
        /// <returns>The <paramref name="descriptor"/></returns>
        /// <exception cref="ArgumentNullException">
        /// Throws in case the argument <paramref name="descriptor"/> is null
        /// </exception>
        public static IProjectionProviderDescriptor RegisterNeo4JHandlers(
            this IProjectionProviderDescriptor descriptor)
        {
            if (descriptor is null)
            {
                throw new ArgumentNullException(nameof(descriptor));
            }

            descriptor.RegisterFieldHandler <Neo4JProjectionScalarHandler>();
            descriptor.RegisterFieldHandler <Neo4JProjectionFieldHandler>();
            descriptor.RegisterOptimizer <IsProjectedProjectionOptimizer>();
            return(descriptor);
        }
        public static IProjectionProviderDescriptor RegisterQueryableHandler(
            this IProjectionProviderDescriptor descriptor)
        {
            if (descriptor is null)
            {
                throw new ArgumentNullException(nameof(descriptor));
            }

            descriptor.RegisterFieldHandler <QueryableProjectionScalarHandler>();
            descriptor.RegisterFieldHandler <QueryableProjectionListHandler>();
            descriptor.RegisterFieldHandler <QueryableProjectionFieldHandler>();

            descriptor.RegisterFieldInterceptor <QueryableFilterInterceptor>();
            descriptor.RegisterFieldInterceptor <QueryableSortInterceptor>();
            descriptor.RegisterFieldInterceptor <QueryableFirstOrDefaultInterceptor>();
            descriptor.RegisterFieldInterceptor <QueryableSingleOrDefaultInterceptor>();

            descriptor.RegisterOptimizer <IsProjectedProjectionOptimizer>();
            descriptor.RegisterOptimizer <QueryablePagingProjectionOptimizer>();
            descriptor.RegisterOptimizer <QueryableFilterProjectionOptimizer>();
            descriptor.RegisterOptimizer <QueryableSortProjectionOptimizer>();

            return(descriptor);
        }
Exemplo n.º 3
0
 protected virtual void Configure(IProjectionProviderDescriptor descriptor)
 {
 }
 /// <summary>
 /// Initializes the default configuration for MongoDb on the convention by adding handlers
 /// </summary>
 /// <param name="descriptor">The descriptor where the handlers are registered</param>
 /// <returns>The <paramref name="descriptor"/></returns>
 public static IProjectionProviderDescriptor AddMongoDbDefaults(
     this IProjectionProviderDescriptor descriptor) =>
 descriptor.RegisterMongoDbHandlers();
 public static IProjectionProviderDescriptor AddDefaults(
     this IProjectionProviderDescriptor descriptor) =>
 descriptor.RegisterQueryableHandler();
Exemplo n.º 6
0
 public static IProjectionProviderDescriptor AddPostgresHandlers(
     this IProjectionProviderDescriptor descriptor) =>
 descriptor.RegisterFieldHandler <QueryablePostgresProjectionJsonHandler>();
 public static IProjectionProviderDescriptor AddSpatialHandlers(
     this IProjectionProviderDescriptor descriptor) =>
 descriptor.RegisterFieldHandler <QueryableSpatialProjectionScalarHandler>();
 /// <summary>
 /// Initializes the default configuration for Neo4J on the convention by adding handlers
 /// </summary>
 /// <param name="descriptor">The descriptor where the handlers are registered</param>
 /// <returns>The <paramref name="descriptor"/></returns>
 public static IProjectionProviderDescriptor AddNeo4JDefaults(
     this IProjectionProviderDescriptor descriptor) =>
 descriptor.RegisterNeo4JHandlers();