Пример #1
0
        protected ResponseResourceObjectBuilder GetResponseResourceObjectBuilder(IEnumerable <IEnumerable <RelationshipAttribute> > inclusionChains = null,
                                                                                 ResourceLinks resourceLinks = null, RelationshipLinks relationshipLinks = null)
        {
            IEnumerable <RelationshipAttribute>[] inclusionChainArray = inclusionChains?.ToArray();

            ILinkBuilder link = GetLinkBuilder(null, resourceLinks, relationshipLinks);
            IEnumerable <IQueryConstraintProvider> includeConstraints = GetIncludeConstraints(inclusionChainArray);
            IIncludedResourceObjectBuilder         includedBuilder    = GetIncludedBuilder(inclusionChains != null);
            IEvaluatedIncludeCache evaluatedIncludeCache = GetEvaluatedIncludeCache(inclusionChainArray);

            return(new ResponseResourceObjectBuilder(link, includedBuilder, includeConstraints, ResourceGraph, GetResourceDefinitionAccessor(),
                                                     GetSerializerSettingsProvider(), evaluatedIncludeCache));
        }
Пример #2
0
        public ResponseResourceObjectBuilder(ILinkBuilder linkBuilder, IIncludedResourceObjectBuilder includedBuilder,
                                             IEnumerable <IQueryConstraintProvider> constraintProviders, IResourceContextProvider resourceContextProvider,
                                             IResourceDefinitionAccessor resourceDefinitionAccessor, IResourceObjectBuilderSettingsProvider settingsProvider,
                                             IEvaluatedIncludeCache evaluatedIncludeCache)
            : base(resourceContextProvider, settingsProvider.Get())
        {
            ArgumentGuard.NotNull(linkBuilder, nameof(linkBuilder));
            ArgumentGuard.NotNull(includedBuilder, nameof(includedBuilder));
            ArgumentGuard.NotNull(constraintProviders, nameof(constraintProviders));
            ArgumentGuard.NotNull(resourceDefinitionAccessor, nameof(resourceDefinitionAccessor));
            ArgumentGuard.NotNull(evaluatedIncludeCache, nameof(evaluatedIncludeCache));

            _linkBuilder                = linkBuilder;
            _includedBuilder            = includedBuilder;
            _resourceDefinitionAccessor = resourceDefinitionAccessor;
            _evaluatedIncludeCache      = evaluatedIncludeCache;
            _sparseFieldSetCache        = new SparseFieldSetCache(constraintProviders, resourceDefinitionAccessor);
        }
        public AtomicOperationsResponseSerializer(IResourceObjectBuilder resourceObjectBuilder, IMetaBuilder metaBuilder, ILinkBuilder linkBuilder,
                                                  IFieldsToSerialize fieldsToSerialize, IResourceDefinitionAccessor resourceDefinitionAccessor, IEvaluatedIncludeCache evaluatedIncludeCache,
                                                  IJsonApiRequest request, IJsonApiOptions options)
            : base(resourceObjectBuilder)
        {
            ArgumentGuard.NotNull(metaBuilder, nameof(metaBuilder));
            ArgumentGuard.NotNull(linkBuilder, nameof(linkBuilder));
            ArgumentGuard.NotNull(fieldsToSerialize, nameof(fieldsToSerialize));
            ArgumentGuard.NotNull(resourceDefinitionAccessor, nameof(resourceDefinitionAccessor));
            ArgumentGuard.NotNull(evaluatedIncludeCache, nameof(evaluatedIncludeCache));
            ArgumentGuard.NotNull(request, nameof(request));
            ArgumentGuard.NotNull(options, nameof(options));

            _metaBuilder                = metaBuilder;
            _linkBuilder                = linkBuilder;
            _fieldsToSerialize          = fieldsToSerialize;
            _resourceDefinitionAccessor = resourceDefinitionAccessor;
            _evaluatedIncludeCache      = evaluatedIncludeCache;
            _request = request;
            _options = options;
        }
Пример #4
0
        public QueryLayerComposer(IEnumerable <IQueryConstraintProvider> constraintProviders, IResourceContextProvider resourceContextProvider,
                                  IResourceDefinitionAccessor resourceDefinitionAccessor, IJsonApiOptions options, IPaginationContext paginationContext,
                                  ITargetedFields targetedFields, IEvaluatedIncludeCache evaluatedIncludeCache)
        {
            ArgumentGuard.NotNull(constraintProviders, nameof(constraintProviders));
            ArgumentGuard.NotNull(resourceContextProvider, nameof(resourceContextProvider));
            ArgumentGuard.NotNull(resourceDefinitionAccessor, nameof(resourceDefinitionAccessor));
            ArgumentGuard.NotNull(options, nameof(options));
            ArgumentGuard.NotNull(paginationContext, nameof(paginationContext));
            ArgumentGuard.NotNull(targetedFields, nameof(targetedFields));
            ArgumentGuard.NotNull(evaluatedIncludeCache, nameof(evaluatedIncludeCache));

            _constraintProviders        = constraintProviders;
            _resourceContextProvider    = resourceContextProvider;
            _resourceDefinitionAccessor = resourceDefinitionAccessor;
            _options               = options;
            _paginationContext     = paginationContext;
            _targetedFields        = targetedFields;
            _evaluatedIncludeCache = evaluatedIncludeCache;
            _sparseFieldSetCache   = new SparseFieldSetCache(_constraintProviders, resourceDefinitionAccessor);
        }
Пример #5
0
        protected ResponseSerializer <T> GetResponseSerializer <T>(IEnumerable <IEnumerable <RelationshipAttribute> > inclusionChains = null,
                                                                   Dictionary <string, object> metaDict = null, TopLevelLinks topLinks = null, ResourceLinks resourceLinks = null,
                                                                   RelationshipLinks relationshipLinks  = null)
            where T : class, IIdentifiable
        {
            IEnumerable <RelationshipAttribute>[] inclusionChainArray = inclusionChains?.ToArray();

            IMetaBuilder meta = GetMetaBuilder(metaDict);
            ILinkBuilder link = GetLinkBuilder(topLinks, resourceLinks, relationshipLinks);
            IEnumerable <IQueryConstraintProvider> includeConstraints         = GetIncludeConstraints(inclusionChainArray);
            IIncludedResourceObjectBuilder         includedBuilder            = GetIncludedBuilder(inclusionChainArray != null);
            IFieldsToSerialize                     fieldsToSerialize          = GetSerializableFields();
            IResourceDefinitionAccessor            resourceDefinitionAccessor = GetResourceDefinitionAccessor();
            IResourceObjectBuilderSettingsProvider settingsProvider           = GetSerializerSettingsProvider();
            IEvaluatedIncludeCache                 evaluatedIncludeCache      = GetEvaluatedIncludeCache(inclusionChainArray);

            var resourceObjectBuilder = new ResponseResourceObjectBuilder(link, includedBuilder, includeConstraints, ResourceGraph, resourceDefinitionAccessor,
                                                                          settingsProvider, evaluatedIncludeCache);

            var jsonApiOptions = new JsonApiOptions();

            return(new ResponseSerializer <T>(meta, link, includedBuilder, fieldsToSerialize, resourceObjectBuilder, resourceDefinitionAccessor, jsonApiOptions));
        }