From 84a1bb469030607b9e86f7ade772d219b3ab6e0d Mon Sep 17 00:00:00 2001 From: Bart Koelman Date: Tue, 13 Oct 2020 10:16:31 +0200 Subject: [PATCH] Cleanup formatting; fixed some outdated signatures --- docs/usage/resources/resource-definitions.md | 64 ++++++++++++++++---- 1 file changed, 51 insertions(+), 13 deletions(-) diff --git a/docs/usage/resources/resource-definitions.md b/docs/usage/resources/resource-definitions.md index 8bc20cef53..d2a47453e6 100644 --- a/docs/usage/resources/resource-definitions.md +++ b/docs/usage/resources/resource-definitions.md @@ -30,14 +30,16 @@ public class UserDefinition : JsonApiResourceDefinition { } - public override SparseFieldSetExpression OnApplySparseFieldSet(SparseFieldSetExpression existingSparseFieldSet) + public override SparseFieldSetExpression OnApplySparseFieldSet( + SparseFieldSetExpression existingSparseFieldSet) { if (IsAdministrator) { return existingSparseFieldSet; } - return existingSparseFieldSet.Excluding(x => x.Password, ResourceGraph); + return existingSparseFieldSet.Excluding( + user => user.Password, ResourceGraph); } } ``` @@ -82,6 +84,10 @@ You can define the default sort order if no `sort` query string parameter is pro ```c# public class AccountDefinition : JsonApiResourceDefinition { + public AccountDefinition(IResourceGraph resourceGraph) : base(resourceGraph) + { + } + public override SortExpression OnApplySort(SortExpression existingSort) { if (existingSort != null) @@ -105,17 +111,25 @@ You may want to enforce pagination on large database tables. ```c# public class AccessLogDefinition : JsonApiResourceDefinition { - public override PaginationExpression OnApplyPagination(PaginationExpression existingPagination) + public AccessLogDefinition(IResourceGraph resourceGraph) : base(resourceGraph) + { + } + + public override PaginationExpression OnApplyPagination( + PaginationExpression existingPagination) { var maxPageSize = new PageSize(10); if (existingPagination != null) { - var pageSize = existingPagination.PageSize?.Value <= maxPageSize.Value ? existingPagination.PageSize : maxPageSize; + var pageSize = existingPagination.PageSize?.Value <= maxPageSize.Value + ? existingPagination.PageSize + : maxPageSize; + return new PaginationExpression(existingPagination.PageNumber, pageSize); } - return new PaginationExpression(PageNumber.ValueOne, _maxPageSize); + return new PaginationExpression(PageNumber.ValueOne, maxPageSize); } } ``` @@ -127,17 +141,26 @@ Soft-deletion sets `IsSoftDeleted` to `true` instead of actually deleting the re ```c# public class AccountDefinition : JsonApiResourceDefinition { + public AccountDefinition(IResourceGraph resourceGraph) : base(resourceGraph) + { + } + public override FilterExpression OnApplyFilter(FilterExpression existingFilter) { var resourceContext = ResourceGraph.GetResourceContext(); - var isSoftDeletedAttribute = resourceContext.Attributes.Single(a => a.Property.Name == nameof(Account.IsSoftDeleted)); + + var isSoftDeletedAttribute = + resourceContext.Attributes.Single(a => + a.Property.Name == nameof(Account.IsSoftDeleted)); var isNotSoftDeleted = new ComparisonExpression(ComparisonOperator.Equals, - new ResourceFieldChainExpression(isSoftDeletedAttribute), new LiteralConstantExpression(bool.FalseString)); + new ResourceFieldChainExpression(isSoftDeletedAttribute), + new LiteralConstantExpression(bool.FalseString)); return existingFilter == null ? (FilterExpression) isNotSoftDeleted - : new LogicalExpression(LogicalOperator.And, new[] {isNotSoftDeleted, existingFilter}); + : new LogicalExpression(LogicalOperator.And, + new[] {isNotSoftDeleted, existingFilter}); } } ``` @@ -147,9 +170,15 @@ public class AccountDefinition : JsonApiResourceDefinition ```c# public class EmployeeDefinition : JsonApiResourceDefinition { - public override IReadOnlyCollection OnApplyIncludes(IReadOnlyCollection existingIncludes) + public EmployeeDefinition(IResourceGraph resourceGraph) : base(resourceGraph) + { + } + + public override IReadOnlyCollection OnApplyIncludes( + IReadOnlyCollection existingIncludes) { - if (existingIncludes.Any(include => include.Relationship.Property.Name == nameof(Employee.Manager))) + if (existingIncludes.Any(include => + include.Relationship.Property.Name == nameof(Employee.Manager))) { throw new JsonApiException(new Error(HttpStatusCode.BadRequest) { @@ -175,7 +204,12 @@ But it only works on primary resource endpoints (for example: /articles, but not ```c# public class ItemDefinition : JsonApiResourceDefinition { - protected override QueryStringParameterHandlers OnRegisterQueryableHandlersForQueryStringParameters() + public ItemDefinition(IResourceGraph resourceGraph) : base(resourceGraph) + { + } + + public override QueryStringParameterHandlers + OnRegisterQueryableHandlersForQueryStringParameters() { return new QueryStringParameterHandlers { @@ -186,10 +220,14 @@ public class ItemDefinition : JsonApiResourceDefinition }; } - private static IQueryable FilterByHighRisk(IQueryable source, StringValues parameterValue) + private static IQueryable FilterByHighRisk(IQueryable source, + StringValues parameterValue) { bool isFilterOnHighRisk = bool.Parse(parameterValue); - return isFilterOnHighRisk ? source.Where(item => item.RiskLevel >= 5) : source.Where(item => item.RiskLevel < 5); + + return isFilterOnHighRisk + ? source.Where(item => item.RiskLevel >= 5) + : source.Where(item => item.RiskLevel < 5); } } ```