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));
            };
        }
 public FieldMutationResolver(
     IGraphQlRepositoryProvider graphQlRepositoryProvider,
     ISearchMappedModels searchMappedModels,
     ILogger logger,
     IConnectionEdgeResolver connectionEdgeResolver,
     IConnectionEdgeHandler connectionEdgeHandler)
 {
     _graphQlRepositoryProvider = graphQlRepositoryProvider;
     _searchMappedModels        = searchMappedModels;
     _logger = logger;
     _connectionEdgeResolver = connectionEdgeResolver;
     _connectionEdgeHandler  = connectionEdgeHandler;
 }
Beispiel #3
0
 public InputBuilderFactory(
     IGraphQlRepositoryProvider graphQlRepositoryProvider,
     ILogger logger,
     ISearchMappedModels searchMappedModels,
     IQueryArgumentsBuilder queryArgumentsBuilder,
     IFieldMutationResolver fieldMutationResolver)
 {
     _graphQlRepositoryProvider = graphQlRepositoryProvider;
     _logger                = logger;
     _searchMappedModels    = searchMappedModels;
     _queryArgumentsBuilder = queryArgumentsBuilder;
     _fieldMutationResolver = fieldMutationResolver;
 }