internal ModelConventionInputBuilder(
            ObjectGraphType objectGraphType,
            IGraphQlRepositoryProvider graphQlRepositoryProviderProvider,
            ILogger logger,
            ISearchMappedModels searchMappedModels,
            IQueryArgumentsBuilder queryArgumentsBuilder,
            IFieldMutationResolver fieldMutationResolver)
        {
            _objectGraphType           = objectGraphType;
            _graphQlRepositoryProvider = graphQlRepositoryProviderProvider;
            _logger                = logger;
            _searchMappedModels    = searchMappedModels;
            _queryArgumentsBuilder = queryArgumentsBuilder;
            _fieldMutationResolver = fieldMutationResolver;
            _sourceName            = typeof(TSource).Name.ToLower();

            // Default setup for delete.
            _deleteSetupAction = () =>
            {
                var fieldName = $"delete{GetTypeName()}";

                if (_objectGraphType.HasField(fieldName))
                {
                    return;
                }

                _objectGraphType.FieldAsync <ModelConventionType <TSource> >(fieldName,
                                                                             description: $"Deletes a single {GetTypeName()} instance.",
                                                                             arguments: _queryArgumentsBuilder.BuildNonNull <TSource>(_sourceName),
                                                                             resolve: async context => await _fieldMutationResolver.DeleteAsync <TSource>(context, _sourceName));
            };
        }
コード例 #2
0
 public ConnectionEdgeHandler(
     IGraphQlRepositoryProvider graphQlRepositoryProvider,
     IConnectionEdgeResolver connectionEdgeResolver)
 {
     _graphQlRepositoryProvider = graphQlRepositoryProvider;
     _connectionEdgeResolver    = connectionEdgeResolver;
 }
コード例 #3
0
        public ConnectionEdgeHandlerTests()
        {
            _graphQlRepositoryProvider = Substitute.For <IGraphQlRepositoryProvider>();
            _connectionEdgeRepository  = Substitute.For <IGraphQlRepository>();

            _graphQlRepositoryProvider.GetRepository <ConnectionEdge>().Returns(_connectionEdgeRepository);

            _connectionEdgeHandler = new ConnectionEdgeHandler(_graphQlRepositoryProvider, new ConnectionEdgeResolver(), Substitute.For <ILogger>());
        }
コード例 #4
0
 public QueryBuilderFactory(IGraphQlRepositoryProvider graphQlRepository,
                            IDistributedCache distributedCache,
                            ILogger logger,
                            IConnectionEdgeHandler connectionEdgeHandler)
 {
     _graphQlRepository     = graphQlRepository;
     _distributedCache      = distributedCache;
     _logger                = logger;
     _connectionEdgeHandler = connectionEdgeHandler;
 }
コード例 #5
0
 public FieldMutationResolver(
     IGraphQlRepositoryProvider graphQlRepositoryProvider,
     ILogger logger,
     IConnectionEdgeResolver connectionEdgeResolver,
     IMutationActionsProvider mutationActionsProvider,
     IModelTransformerProvider modelTransformerProvider)
 {
     _graphQlRepositoryProvider = graphQlRepositoryProvider;
     _logger = logger;
     _connectionEdgeResolver   = connectionEdgeResolver;
     _mutationActionsProvider  = mutationActionsProvider;
     _modelTransformerProvider = modelTransformerProvider;
 }
コード例 #6
0
 public FieldMutationResolver(
     IGraphQlRepositoryProvider graphQlRepositoryProvider,
     ISearchMappedModels searchMappedModels,
     ILogger logger,
     IConnectionEdgeResolver connectionEdgeResolver,
     IConnectionEdgeHandler connectionEdgeHandler)
 {
     _graphQlRepositoryProvider = graphQlRepositoryProvider;
     _searchMappedModels        = searchMappedModels;
     _logger = logger;
     _connectionEdgeResolver = connectionEdgeResolver;
     _connectionEdgeHandler  = connectionEdgeHandler;
 }
コード例 #7
0
 public InputBuilderFactory(
     IGraphQlRepositoryProvider graphQlRepositoryProvider,
     ILogger logger,
     ISearchMappedModels searchMappedModels,
     IQueryArgumentsBuilder queryArgumentsBuilder,
     IFieldMutationResolver fieldMutationResolver)
 {
     _graphQlRepositoryProvider = graphQlRepositoryProvider;
     _logger                = logger;
     _searchMappedModels    = searchMappedModels;
     _queryArgumentsBuilder = queryArgumentsBuilder;
     _fieldMutationResolver = fieldMutationResolver;
 }
コード例 #8
0
 public QueryBuilderFactory(IGraphQlRepositoryProvider graphQlRepository,
                            IDistributedCache distributedCache,
                            ILogger logger,
                            IConnectionEdgeHandler connectionEdgeHandler,
                            IInMemoryComparerProvider inMemoryComparerProvider,
                            IModelMemberQueryArgumentProvider modelMemberQueryArgumentProvider,
                            IContextValueResolver contextValueResolver)
 {
     _graphQlRepository                = graphQlRepository;
     _distributedCache                 = distributedCache;
     _logger                           = logger;
     _connectionEdgeHandler            = connectionEdgeHandler;
     _inMemoryComparerProvider         = inMemoryComparerProvider;
     _modelMemberQueryArgumentProvider = modelMemberQueryArgumentProvider;
     _contextValueResolver             = contextValueResolver;
 }
コード例 #9
0
        internal QueryBuilder(ObjectGraphType <object> objectGraphType,
                              string queryName,
                              string description,
                              IGraphQlRepositoryProvider graphQlRepositoryProvider,
                              IDistributedCache distributedCache,
                              ILogger logger,
                              IConnectionEdgeHandler connectionEdgeHandler)
        {
            _objectGraphType  = objectGraphType;
            _queryName        = queryName;
            _description      = description;
            _queryExecutor    = new QueryExecutor <TSource>(graphQlRepositoryProvider, logger, connectionEdgeHandler);
            _distributedCache = distributedCache;
            _logger           = logger;

            _queryParameterBuilder = new QueryParameterBuilder <TSource>(this);
        }
コード例 #10
0
 internal QueryBuilder(ObjectGraphType <object> objectGraphType,
                       string queryName,
                       string description,
                       IGraphQlRepositoryProvider graphQlRepositoryProvider,
                       IDistributedCache distributedCache,
                       ILogger logger,
                       IConnectionEdgeHandler connectionEdgeHandler,
                       IInMemoryComparerProvider inMemoryComparerProvider,
                       IModelMemberQueryArgumentProvider modelMemberQueryArgumentProvider,
                       IContextValueResolver contextValueResolver)
 {
     _objectGraphType  = objectGraphType;
     _queryName        = queryName;
     _description      = description;
     _queryExecutor    = new QueryExecutor <TSource>(graphQlRepositoryProvider, logger, connectionEdgeHandler);
     _distributedCache = distributedCache;
     _logger           = logger;
     _modelMemberQueryArgumentProvider = modelMemberQueryArgumentProvider;
     _queryParameterBuilder            = new QueryParameterBuilder <TSource>(this, inMemoryComparerProvider, contextValueResolver);
 }
コード例 #11
0
 public QueryExecutor(IGraphQlRepositoryProvider graphQlRepositoryProvider, ILogger logger, IConnectionEdgeHandler connectionEdgeHandler)
 {
     _graphQlRepositoryProvider = graphQlRepositoryProvider;
     _logger = logger;
     _connectionEdgeHandler = connectionEdgeHandler;
 }