Skip to content

Commit b5c38d4

Browse files
committed
chore: remove redundant injections of IResourceGraph
1 parent a352f08 commit b5c38d4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+69
-121
lines changed

src/Examples/GettingStarted/Controllers/ArticlesController.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,8 @@ public class ArticlesController : JsonApiController<Article>
1010
{
1111
public ArticlesController(
1212
IJsonApiOptions jsonApiOptions,
13-
IResourceGraph resourceGraph,
1413
IResourceService<Article> resourceService)
15-
: base(jsonApiOptions, resourceGraph, resourceService)
14+
: base(jsonApiOptions, resourceService)
1615
{ }
1716
}
1817
}

src/Examples/GettingStarted/Controllers/PeopleController.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,8 @@ public class PeopleController : JsonApiController<Person>
1010
{
1111
public PeopleController(
1212
IJsonApiOptions jsonApiOptions,
13-
IResourceGraph resourceGraph,
1413
IResourceService<Person> resourceService)
15-
: base(jsonApiOptions, resourceGraph, resourceService)
14+
: base(jsonApiOptions, resourceService)
1615
{ }
1716
}
1817
}

src/Examples/GettingStarted/ResourceDefinitionExample/ModelDefinition.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace GettingStarted.ResourceDefinitionExample
66
{
77
public class ModelDefinition : ResourceDefinition<Model>
88
{
9-
public ModelDefinition(IResourceGraph graph) : base(graph)
9+
public ModelDefinition(IContextEntityProvider provider) : base(provider)
1010
{
1111
}
1212

src/Examples/GettingStarted/ResourceDefinitionExample/ModelsController.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,8 @@ public class ModelsController : JsonApiController<Model>
99
{
1010
public ModelsController(
1111
IJsonApiOptions jsonApiOptions,
12-
IResourceGraph resourceGraph,
1312
IResourceService<Model> resourceService)
14-
: base(jsonApiOptions, resourceGraph, resourceService)
13+
: base(jsonApiOptions, resourceService)
1514
{ }
1615
}
1716
}

src/Examples/JsonApiDotNetCoreExample/Resources/ArticleResource.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ namespace JsonApiDotNetCoreExample.Resources
1111
{
1212
public class ArticleResource : ResourceDefinition<Article>
1313
{
14-
public ArticleResource(IResourceGraph graph) : base(graph) { }
14+
public ArticleResource(IContextEntityProvider provider) : base(provider) { }
1515

1616
public override IEnumerable<Article> OnReturn(HashSet<Article> entities, ResourcePipeline pipeline)
1717
{

src/Examples/JsonApiDotNetCoreExample/Resources/LockableResource.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ namespace JsonApiDotNetCoreExample.Resources
1111
{
1212
public abstract class LockableResource<T> : ResourceDefinition<T> where T : class, IIsLockable, IIdentifiable
1313
{
14-
protected LockableResource(IResourceGraph graph) : base(graph) { }
14+
protected LockableResource(IContextEntityProvider provider) : base(provider) { }
1515

1616
protected void DisallowLocked(IEnumerable<T> entities)
1717
{

src/Examples/JsonApiDotNetCoreExample/Resources/PassportResource.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ namespace JsonApiDotNetCoreExample.Resources
1111
{
1212
public class PassportResource : ResourceDefinition<Passport>
1313
{
14-
public PassportResource(IResourceGraph graph) : base(graph)
14+
public PassportResource(IContextEntityProvider provider) : base(provider)
1515
{
1616
}
1717

src/Examples/JsonApiDotNetCoreExample/Resources/PersonResource.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreExample.Resources
99
{
1010
public class PersonResource : LockableResource<Person>, IHasMeta
1111
{
12-
public PersonResource(IResourceGraph graph) : base(graph) { }
12+
public PersonResource(IContextEntityProvider provider) : base(provider) { }
1313

1414
public override IEnumerable<Person> BeforeUpdate(IDiffableEntityHashSet<Person> entities, ResourcePipeline pipeline)
1515
{

src/Examples/JsonApiDotNetCoreExample/Resources/TagResource.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace JsonApiDotNetCoreExample.Resources
1010
{
1111
public class TagResource : ResourceDefinition<Tag>
1212
{
13-
public TagResource(IResourceGraph graph) : base(graph) { }
13+
public TagResource(IContextEntityProvider provider) : base(provider) { }
1414

1515
public override IEnumerable<Tag> BeforeCreate(IEntityHashSet<Tag> affected, ResourcePipeline pipeline)
1616
{

src/Examples/JsonApiDotNetCoreExample/Resources/TodoResource.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace JsonApiDotNetCoreExample.Resources
1010
{
1111
public class TodoResource : LockableResource<TodoItem>
1212
{
13-
public TodoResource(IResourceGraph graph) : base(graph) { }
13+
public TodoResource(IContextEntityProvider provider) : base(provider) { }
1414

1515
public override void BeforeRead(ResourcePipeline pipeline, bool isIncluded = false, string stringId = null)
1616
{

src/Examples/JsonApiDotNetCoreExample/Resources/UserResource.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace JsonApiDotNetCoreExample.Resources
99
{
1010
public class UserResource : ResourceDefinition<User>
1111
{
12-
public UserResource(IResourceGraph graph, IFieldsExplorer fieldExplorer) : base(fieldExplorer, graph)
12+
public UserResource(IContextEntityProvider provider, IFieldsExplorer fieldExplorer) : base(fieldExplorer, provider)
1313
{
1414
HideFields(u => u.Password);
1515
}

src/Examples/JsonApiDotNetCoreExample/Services/CustomArticleService.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ public CustomArticleService(ISortService sortService,
2020
IIncludeService includeService,
2121
ISparseFieldsService sparseFieldsService,
2222
IPageService pageService,
23-
IResourceGraph resourceGraph,
23+
IContextEntityProvider provider,
2424
IResourceHookExecutor hookExecutor = null,
2525
ILoggerFactory loggerFactory = null)
2626
: base(sortService, filterService, repository, options, includeService, sparseFieldsService,
27-
pageService, resourceGraph, hookExecutor, loggerFactory)
27+
pageService, provider, hookExecutor, loggerFactory)
2828
{
2929
}
3030

src/Examples/ReportsExample/Controllers/ReportsController.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,8 @@ public class ReportsController : BaseJsonApiController<Report, int>
1212
{
1313
public ReportsController(
1414
IJsonApiOptions jsonApiOptions,
15-
IResourceGraph resourceGraph,
1615
IGetAllService<Report> getAll)
17-
: base(jsonApiOptions, resourceGraph, getAll: getAll)
16+
: base(jsonApiOptions, getAll: getAll)
1817
{ }
1918

2019
[HttpGet]

src/JsonApiDotNetCore/Builders/IResourceGraphBuilder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public interface IResourceGraphBuilder
1313
/// <summary>
1414
/// Construct the <see cref="ResourceGraph"/>
1515
/// </summary>
16-
IResourceGraph Build();
16+
IContextEntityProvider Build();
1717

1818
/// <summary>
1919
/// Add a json:api resource

src/JsonApiDotNetCore/Builders/ResourceGraphBuilder.cs

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -32,27 +32,10 @@ public ResourceGraphBuilder(IResourceNameFormatter formatter)
3232
}
3333

3434
/// <inheritdoc />
35-
public IResourceGraph Build()
35+
public IContextEntityProvider Build()
3636
{
3737
_entities.ForEach(SetResourceLinksOptions);
38-
39-
List<ControllerResourceMap> controllerContexts = new List<ControllerResourceMap>() { };
40-
foreach (var cm in _controllerMapper)
41-
{
42-
var model = cm.Key;
43-
foreach (var controller in cm.Value)
44-
{
45-
var controllerName = controller.Name.Replace("Controller", "");
46-
47-
controllerContexts.Add(new ControllerResourceMap
48-
{
49-
Resource = model,
50-
ControllerName = controllerName,
51-
});
52-
53-
}
54-
}
55-
var graph = new ResourceGraph(_entities, _usesDbContext, _validationResults, controllerContexts);
38+
var graph = new ResourceGraph(_entities, _validationResults);
5639
return graph;
5740
}
5841

src/JsonApiDotNetCore/Configuration/JsonApiOptions.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,6 @@ public class JsonApiOptions : IJsonApiOptions
133133
public void EnableExtension(JsonApiExtension extension)
134134
=> EnabledExtensions.Add(extension);
135135

136-
internal IResourceGraphBuilder ResourceGraphBuilder { get; } = new ResourceGraphBuilder();
137136
internal List<JsonApiExtension> EnabledExtensions { get; set; } = new List<JsonApiExtension>();
138137
}
139138
}

src/JsonApiDotNetCore/Data/DefaultEntityRepository.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -419,18 +419,18 @@ public class DefaultEntityRepository<TEntity> : DefaultEntityRepository<TEntity,
419419
{
420420
public DefaultEntityRepository(ITargetedFields targetedFields,
421421
IDbContextResolver contextResolver,
422-
IResourceGraph resourceGraph,
422+
IContextEntityProvider contextEntityProvider,
423423
IGenericProcessorFactory genericProcessorFactory)
424-
: base(targetedFields, contextResolver, resourceGraph, genericProcessorFactory)
424+
: base(targetedFields, contextResolver, contextEntityProvider, genericProcessorFactory)
425425
{
426426
}
427427

428428
public DefaultEntityRepository(ITargetedFields targetedFields,
429429
IDbContextResolver contextResolver,
430-
IResourceGraph resourceGraph,
430+
IContextEntityProvider contextEntityProvider,
431431
IGenericProcessorFactory genericProcessorFactory,
432432
ILoggerFactory loggerFactory = null)
433-
: base(targetedFields, contextResolver, resourceGraph, genericProcessorFactory, loggerFactory)
433+
: base(targetedFields, contextResolver, contextEntityProvider, genericProcessorFactory, loggerFactory)
434434
{
435435
}
436436
}

src/JsonApiDotNetCore/Extensions/IApplicationBuilderExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ private static void DisableDetailedErrorsIfProduction(IApplicationBuilder app)
4949
private static void LogResourceGraphValidations(IApplicationBuilder app)
5050
{
5151
var logger = app.ApplicationServices.GetService(typeof(ILogger<ResourceGraphBuilder>)) as ILogger;
52-
var resourceGraph = app.ApplicationServices.GetService(typeof(IResourceGraph)) as ResourceGraph;
52+
var resourceGraph = app.ApplicationServices.GetService(typeof(IContextEntityProvider)) as ResourceGraph;
5353

5454
if (logger != null && resourceGraph != null)
5555
{

src/JsonApiDotNetCore/Extensions/IServiceCollectionExtensions.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ public static IServiceCollection AddClientSerialization(this IServiceCollection
8080

8181
services.AddScoped<IRequestSerializer>(sp =>
8282
{
83-
var resourceObjectBuilder = new ResourceObjectBuilder(sp.GetService<IResourceGraph>(), sp.GetService<IContextEntityProvider>(), sp.GetService<IResourceObjectBuilderSettingsProvider>().Get());
84-
return new RequestSerializer(sp.GetService<IFieldsExplorer>(), sp.GetService<IResourceGraph>(), resourceObjectBuilder);
83+
var resourceObjectBuilder = new ResourceObjectBuilder(sp.GetService<IContextEntityProvider>(), sp.GetService<IResourceObjectBuilderSettingsProvider>().Get());
84+
return new RequestSerializer(sp.GetService<IFieldsExplorer>(), sp.GetService<IContextEntityProvider>(), resourceObjectBuilder);
8585
});
8686
return services;
8787
}

src/JsonApiDotNetCore/Internal/Contracts/IResourceGraph.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,6 @@ namespace JsonApiDotNetCore.Internal.Contracts
77
/// </summary>
88
public interface IResourceGraph : IContextEntityProvider
99
{
10-
/// <summary>
11-
/// Was built against an EntityFrameworkCore DbContext ?
12-
/// </summary>
13-
bool UsesDbContext { get; }
10+
1411
}
1512
}

src/JsonApiDotNetCore/Internal/ResourceGraph.cs

Lines changed: 9 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -6,57 +6,36 @@
66

77
namespace JsonApiDotNetCore.Internal
88
{
9-
public class ControllerResourceMap
10-
{
11-
public string ControllerName { get; set; }
12-
public Type Resource { get; set; }
13-
}
14-
159
/// <summary>
1610
/// keeps track of all the models/resources defined in JADNC
1711
/// </summary>
18-
public class ResourceGraph : IResourceGraph
12+
public class ResourceGraph : IContextEntityProvider
1913
{
20-
internal List<ContextEntity> Entities { get; }
2114
internal List<ValidationResult> ValidationResults { get; }
15+
private List<ContextEntity> _entities { get; }
2216

23-
public List<ControllerResourceMap> ControllerResourceMap { get; internal set; }
24-
25-
[Obsolete("please instantiate properly, dont use the static constructor")]
26-
internal static IResourceGraph Instance { get; set; }
27-
28-
public ResourceGraph() { }
29-
[Obsolete("Use new one")]
30-
public ResourceGraph(List<ContextEntity> entities, bool usesDbContext)
17+
public ResourceGraph(List<ContextEntity> entities)
3118
{
32-
Entities = entities;
33-
UsesDbContext = usesDbContext;
19+
_entities = entities;
3420
ValidationResults = new List<ValidationResult>();
35-
Instance = this;
3621
}
3722

38-
internal ResourceGraph(List<ContextEntity> entities, bool usesDbContext, List<ValidationResult> validationResults, List<ControllerResourceMap> controllerContexts)
23+
public ResourceGraph(List<ContextEntity> entities, List<ValidationResult> validationResults)
3924
{
40-
ControllerResourceMap = controllerContexts;
41-
Entities = entities;
42-
UsesDbContext = usesDbContext;
25+
_entities = entities;
4326
ValidationResults = validationResults;
44-
Instance = this;
4527
}
4628

4729
/// <inheritdoc />
48-
public bool UsesDbContext { get; }
49-
50-
/// <inheritdoc />
51-
public ContextEntity[] GetContextEntities() => Entities.ToArray();
30+
public ContextEntity[] GetContextEntities() => _entities.ToArray();
5231

5332
/// <inheritdoc />
5433
public ContextEntity GetContextEntity(string entityName)
55-
=> Entities.SingleOrDefault(e => string.Equals(e.EntityName, entityName, StringComparison.OrdinalIgnoreCase));
34+
=> _entities.SingleOrDefault(e => string.Equals(e.EntityName, entityName, StringComparison.OrdinalIgnoreCase));
5635

5736
/// <inheritdoc />
5837
public ContextEntity GetContextEntity(Type entityType)
59-
=> Entities.SingleOrDefault(e => e.EntityType == entityType);
38+
=> _entities.SingleOrDefault(e => e.EntityType == entityType);
6039
/// <inheritdoc />
6140
public ContextEntity GetContextEntity<TResource>() where TResource : class, IIdentifiable
6241
=> GetContextEntity(typeof(TResource));

src/JsonApiDotNetCore/Internal/ValidationResults.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace JsonApiDotNetCore.Internal
44
{
5-
internal class ValidationResult
5+
public class ValidationResult
66
{
77
public ValidationResult(LogLevel logLevel, string message)
88
{

src/JsonApiDotNetCore/Models/ResourceDefinition.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,15 @@ public class ResourceDefinition<TResource> : IResourceDefinition, IResourceHookC
3232
private readonly IFieldsExplorer _fieldExplorer;
3333
private List<AttrAttribute> _allowedAttributes;
3434
private List<RelationshipAttribute> _allowedRelationships;
35-
public ResourceDefinition(IFieldsExplorer fieldExplorer, IResourceGraph graph)
35+
public ResourceDefinition(IFieldsExplorer fieldExplorer, IContextEntityProvider graph)
3636
{
3737
_contextEntity = graph.GetContextEntity(typeof(TResource));
3838
_allowedAttributes = _contextEntity.Attributes;
3939
_allowedRelationships = _contextEntity.Relationships;
4040
_fieldExplorer = fieldExplorer;
4141
}
4242

43-
public ResourceDefinition(IResourceGraph graph)
43+
public ResourceDefinition(IContextEntityProvider graph)
4444
{
4545
_contextEntity = graph.GetContextEntity(typeof(TResource));
4646
_allowedAttributes = _contextEntity.Attributes;

src/JsonApiDotNetCore/Serialization/Common/ResourceObjectBuilder.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,12 @@ namespace JsonApiDotNetCore.Serialization
1212
/// <inheritdoc/>
1313
public class ResourceObjectBuilder : IResourceObjectBuilder
1414
{
15-
protected readonly IResourceGraph _resourceGraph;
1615
protected readonly IContextEntityProvider _provider;
1716
private readonly ResourceObjectBuilderSettings _settings;
1817
private const string _identifiablePropertyName = nameof(Identifiable.Id);
1918

20-
public ResourceObjectBuilder(IResourceGraph resourceGraph, IContextEntityProvider provider, ResourceObjectBuilderSettings settings)
19+
public ResourceObjectBuilder(IContextEntityProvider provider, ResourceObjectBuilderSettings settings)
2120
{
22-
_resourceGraph = resourceGraph;
2321
_provider = provider;
2422
_settings = settings;
2523
}

src/JsonApiDotNetCore/Serialization/Server/Builders/IncludedResourceObjectBuilder.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,9 @@ public class IncludedResourceObjectBuilder : ResourceObjectBuilder, IIncludedRes
1616

1717
public IncludedResourceObjectBuilder(IFieldsToSerialize fieldsToSerialize,
1818
ILinkBuilder linkBuilder,
19-
IResourceGraph resourceGraph,
2019
IContextEntityProvider provider,
2120
IResourceObjectBuilderSettingsProvider settingsProvider)
22-
: base(resourceGraph, provider, settingsProvider.Get())
21+
: base(provider, settingsProvider.Get())
2322
{
2423
_included = new HashSet<ResourceObject>(new ResourceObjectComparer());
2524
_fieldsToSerialize = fieldsToSerialize;

src/JsonApiDotNetCore/Serialization/Server/Builders/ResponseResourceObjectBuilder.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,9 @@ public class ResponseResourceObjectBuilder : ResourceObjectBuilder, IResourceObj
1717
public ResponseResourceObjectBuilder(ILinkBuilder linkBuilder,
1818
IIncludedResourceObjectBuilder includedBuilder,
1919
IIncludeService includeService,
20-
IResourceGraph resourceGraph,
2120
IContextEntityProvider provider,
2221
IResourceObjectBuilderSettingsProvider settingsProvider)
23-
: base(resourceGraph, provider, settingsProvider.Get())
22+
: base(provider, settingsProvider.Get())
2423
{
2524
_linkBuilder = linkBuilder;
2625
_includedBuilder = includedBuilder;

src/JsonApiDotNetCore/Serialization/Server/RequestDeserializer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ public class RequestDeserializer : BaseDocumentParser, IJsonApiDeserializer
1111
{
1212
private readonly ITargetedFields _targetedFields;
1313

14-
public RequestDeserializer(IResourceGraph resourceGraph,
15-
ITargetedFields targetedFields) : base(resourceGraph)
14+
public RequestDeserializer(IContextEntityProvider provider,
15+
ITargetedFields targetedFields) : base(provider)
1616
{
1717
_targetedFields = targetedFields;
1818
}

0 commit comments

Comments
 (0)