From f7a4cd53c21ca74bc6089759c6ad2722cf53888f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Sa=CC=88rkikoski?= Date: Fri, 5 Apr 2024 09:38:11 +0300 Subject: [PATCH 1/2] Add sorting of API response data --- .../FundingCallQueryGenerator.cs | 7 +++++++ .../FundingDecisionQueryGenerator.cs | 7 +++++++ .../InfrastructureQueryGenerator.cs | 7 +++++++ .../OrganizationQueryGenerator.cs | 7 +++++++ .../PublicationQueryGenerator.cs | 7 +++++++ .../ElasticSearchQueryGenerators/QueryGeneratorBase.cs | 5 ++++- .../ResearchDatasetQueryGenerator.cs | 7 +++++++ 7 files changed, 46 insertions(+), 1 deletion(-) diff --git a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/FundingCallQueryGenerator.cs b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/FundingCallQueryGenerator.cs index acb043c..9d5bea1 100644 --- a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/FundingCallQueryGenerator.cs +++ b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/FundingCallQueryGenerator.cs @@ -131,4 +131,11 @@ private static IEnumerable, QueryCont return filters; } + + protected override Func, IPromise>> GenerateSortForSearch(FundingCallSearchParameters parameters) + { + // Sort funding calls + return sortDescriptor => sortDescriptor + .Field(f => f.CallProgrammeOpenDate, SortOrder.Descending); + } } \ No newline at end of file diff --git a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/FundingDecisionQueryGenerator.cs b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/FundingDecisionQueryGenerator.cs index 78090cb..344870f 100644 --- a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/FundingDecisionQueryGenerator.cs +++ b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/FundingDecisionQueryGenerator.cs @@ -174,4 +174,11 @@ private static IEnumerable, Query return filters; } + + protected override Func, IPromise>> GenerateSortForSearch(FundingDecisionSearchParameters parameters) + { + // Sort funding decisions + return sortDescriptor => sortDescriptor + .Field(f => f.FundingStartDate, SortOrder.Descending); + } } \ No newline at end of file diff --git a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/InfrastructureQueryGenerator.cs b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/InfrastructureQueryGenerator.cs index 8e88034..f93c904 100644 --- a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/InfrastructureQueryGenerator.cs +++ b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/InfrastructureQueryGenerator.cs @@ -38,4 +38,11 @@ protected override Func, QueryContainer { throw new NotImplementedException(); } + + protected override Func, IPromise>> GenerateSortForSearch(InfrastructureSearchParameters parameters) + { + // Sort infrastructures + return sortDescriptor => sortDescriptor + .Field(f => f.NameFi, SortOrder.Ascending); + } } \ No newline at end of file diff --git a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/OrganizationQueryGenerator.cs b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/OrganizationQueryGenerator.cs index 959f9b8..3085eb3 100644 --- a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/OrganizationQueryGenerator.cs +++ b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/OrganizationQueryGenerator.cs @@ -38,4 +38,11 @@ protected override Func, QueryContainer> { throw new NotImplementedException(); } + + protected override Func, IPromise>> GenerateSortForSearch(OrganizationSearchParameters parameters) + { + // Sort organizations + return sortDescriptor => sortDescriptor + .Field(f => f.NameFi, SortOrder.Ascending); + } } \ No newline at end of file diff --git a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/PublicationQueryGenerator.cs b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/PublicationQueryGenerator.cs index be9516b..62f3537 100644 --- a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/PublicationQueryGenerator.cs +++ b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/PublicationQueryGenerator.cs @@ -288,4 +288,11 @@ protected override Func, QueryContainer> G { return queryContainerDescriptor => queryContainerDescriptor.Term(query => query.Field(f => f.Id).Value(id)); } + + protected override Func, IPromise>> GenerateSortForSearch(PublicationSearchParameters parameters) + { + // Sort publications + return sortDescriptor => sortDescriptor + .Field(f => f.PublicationYear, SortOrder.Descending); + } } \ No newline at end of file diff --git a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/QueryGeneratorBase.cs b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/QueryGeneratorBase.cs index 2d3fb57..8afc1a8 100644 --- a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/QueryGeneratorBase.cs +++ b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/QueryGeneratorBase.cs @@ -18,6 +18,7 @@ public Func, ISearchRequest> GenerateQuery(TIn searchPara .Index(indexName) .Skip((pageNumber - 1) * pageSize) .Take(pageSize) + .Sort(GenerateSortForSearch(searchParameters)) .Query(GenerateQueryForSearch(searchParameters)); } @@ -30,6 +31,8 @@ public Func, ISearchRequest> GenerateSingleQuery(string i } protected abstract Func, QueryContainer> GenerateQueryForSearch(TIn parameters); - + protected abstract Func,QueryContainer> GenerateQueryForSingle(string id); + + protected abstract Func, IPromise>> GenerateSortForSearch(TIn parameters); } \ No newline at end of file diff --git a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/ResearchDatasetQueryGenerator.cs b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/ResearchDatasetQueryGenerator.cs index 6fb8767..4a7c357 100644 --- a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/ResearchDatasetQueryGenerator.cs +++ b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/ResearchDatasetQueryGenerator.cs @@ -202,4 +202,11 @@ private static IEnumerable, Query return filters; } + + protected override Func, IPromise>> GenerateSortForSearch(ResearchDatasetSearchParameters parameters) + { + // Sort research datasets + return sortDescriptor => sortDescriptor + .Field(f => f.NameFi, SortOrder.Ascending); + } } \ No newline at end of file From 156e2b40429fdc44a872d794595d4d9743fac06e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Sa=CC=88rkikoski?= Date: Fri, 5 Apr 2024 10:08:00 +0300 Subject: [PATCH 2/2] Modify sort criteria --- .../ElasticSearchQueryGenerators/FundingCallQueryGenerator.cs | 2 +- .../InfrastructureQueryGenerator.cs | 3 +-- .../ElasticSearchQueryGenerators/OrganizationQueryGenerator.cs | 3 +-- .../ResearchDatasetQueryGenerator.cs | 2 +- 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/FundingCallQueryGenerator.cs b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/FundingCallQueryGenerator.cs index 9d5bea1..d60392a 100644 --- a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/FundingCallQueryGenerator.cs +++ b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/FundingCallQueryGenerator.cs @@ -136,6 +136,6 @@ protected override Func, IPromise>> Gen { // Sort funding calls return sortDescriptor => sortDescriptor - .Field(f => f.CallProgrammeOpenDate, SortOrder.Descending); + .Field(f => f.CallProgrammeDueDate, SortOrder.Ascending); } } \ No newline at end of file diff --git a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/InfrastructureQueryGenerator.cs b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/InfrastructureQueryGenerator.cs index f93c904..595ce12 100644 --- a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/InfrastructureQueryGenerator.cs +++ b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/InfrastructureQueryGenerator.cs @@ -42,7 +42,6 @@ protected override Func, QueryContainer protected override Func, IPromise>> GenerateSortForSearch(InfrastructureSearchParameters parameters) { // Sort infrastructures - return sortDescriptor => sortDescriptor - .Field(f => f.NameFi, SortOrder.Ascending); + return sortDescriptor => sortDescriptor; } } \ No newline at end of file diff --git a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/OrganizationQueryGenerator.cs b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/OrganizationQueryGenerator.cs index 3085eb3..e81c741 100644 --- a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/OrganizationQueryGenerator.cs +++ b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/OrganizationQueryGenerator.cs @@ -42,7 +42,6 @@ protected override Func, QueryContainer> protected override Func, IPromise>> GenerateSortForSearch(OrganizationSearchParameters parameters) { // Sort organizations - return sortDescriptor => sortDescriptor - .Field(f => f.NameFi, SortOrder.Ascending); + return sortDescriptor => sortDescriptor; } } \ No newline at end of file diff --git a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/ResearchDatasetQueryGenerator.cs b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/ResearchDatasetQueryGenerator.cs index 4a7c357..1329002 100644 --- a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/ResearchDatasetQueryGenerator.cs +++ b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/ResearchDatasetQueryGenerator.cs @@ -207,6 +207,6 @@ protected override Func, IPromise>> { // Sort research datasets return sortDescriptor => sortDescriptor - .Field(f => f.NameFi, SortOrder.Ascending); + .Field(f => f.Created, SortOrder.Descending); } } \ No newline at end of file