From ef393bd8fa2785b1499acffb8d82e7ad9ef4f621 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Sa=CC=88rkikoski?= Date: Fri, 29 Nov 2024 08:58:41 +0200 Subject: [PATCH 1/3] CSCTTV-4052 Add jufoCodeRecorded and jufoClassCodeRecorded --- .../src/ApiModels/Publication/Publication.cs | 12 ++ .../Query/GetPublicationsQueryParameters.cs | 8 +- .../src/DatabaseContext/ApiDbContext.cs | 170 ++++++++++-------- .../Entities/DimPublication.cs | 8 + .../Entities/DimPublicationChannel.cs | 4 +- .../Entities/DimReferencedatum.cs | 2 + .../PublicationQueryGenerator.cs | 7 + .../PublicationSearchParameters.cs | 2 + .../Repositories/Maps/PublicationProfile.cs | 2 + .../Service.Models/Publication/Publication.cs | 10 ++ .../Maps/PublicationProfileTest.cs | 21 +++ 11 files changed, 165 insertions(+), 81 deletions(-) diff --git a/aspnetcore/src/ApiModels/Publication/Publication.cs b/aspnetcore/src/ApiModels/Publication/Publication.cs index 672d4549..6c0aea9b 100644 --- a/aspnetcore/src/ApiModels/Publication/Publication.cs +++ b/aspnetcore/src/ApiModels/Publication/Publication.cs @@ -163,6 +163,18 @@ public class Publication /// public JufoClass? JufoClass { get; set; } + /// + /// Publication forum (recorded) + /// + public string? JufoCodeRecorded { get; set; } + + /// + /// Publication forum classification (recorded) + /// + /// http://uri.suomi.fi/codelist/research/julkaisufoorumiluokitus + /// + public JufoClass? jufoClassRecorded { get; set; } + /// /// DOI /// diff --git a/aspnetcore/src/ApiModels/Query/GetPublicationsQueryParameters.cs b/aspnetcore/src/ApiModels/Query/GetPublicationsQueryParameters.cs index d1707123..6920ed79 100644 --- a/aspnetcore/src/ApiModels/Query/GetPublicationsQueryParameters.cs +++ b/aspnetcore/src/ApiModels/Query/GetPublicationsQueryParameters.cs @@ -121,11 +121,17 @@ public class GetPublicationsQueryParameters public string? PublisherName { get; set; } /// - /// The field jufocode contains text. + /// The field jufoCode contains text. /// /// public string? JufoCode { get; set; } + /// + /// The field jufoCodeRecorded contains text. + /// + /// + public string? JufoCodeRecorded { get; set; } + /// /// The field doi is exactly equal to the text. /// diff --git a/aspnetcore/src/DatabaseContext/ApiDbContext.cs b/aspnetcore/src/DatabaseContext/ApiDbContext.cs index bd490142..978bc9e0 100644 --- a/aspnetcore/src/DatabaseContext/ApiDbContext.cs +++ b/aspnetcore/src/DatabaseContext/ApiDbContext.cs @@ -148,7 +148,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity(entity => { - entity.HasKey(e => new { e.DimResearchDatasetId, e.DimResearchDatasetId2 }).HasName("PK__br_datas__9FEA685AAFC3B578"); + entity.HasKey(e => new { e.DimResearchDatasetId, e.DimResearchDatasetId2 }).HasName("PK__br_datas__9FEA685AB5E2C1AE"); entity.ToTable("br_dataset_dataset_relationship"); @@ -172,7 +172,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => new { e.DimFundingDecisionId, e.DimOrganizationid }).HasName("PK__br_fundi__3DB567F8F31EB343"); + entity.HasKey(e => new { e.DimFundingDecisionId, e.DimOrganizationid }).HasName("PK__br_fundi__3DB567F8D8D7C529"); entity.ToTable("br_funding_consortium_participation"); @@ -199,7 +199,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => new { e.DimUserProfileId, e.DimExternalServiceId, e.DimPermittedFieldGroup }).HasName("PK__br_grant__F51F7BCB2C7B526A"); + entity.HasKey(e => new { e.DimUserProfileId, e.DimExternalServiceId, e.DimPermittedFieldGroup }).HasName("PK__br_grant__F51F7BCB6382AE3A"); entity.ToTable("br_granted_permissions"); @@ -281,7 +281,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => new { e.DimWordClusterId, e.DimFundingDecisionId }).HasName("PK__br_word___7D640B5A85D9D741"); + entity.HasKey(e => new { e.DimWordClusterId, e.DimFundingDecisionId }).HasName("PK__br_word___7D640B5A67A580FB"); entity.ToTable("br_word_cluster_dim_funding_decision"); @@ -313,7 +313,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => new { e.DimMinedWordsId, e.DimWordClusterId }).HasName("PK__br_words__0602FA3716F54103"); + entity.HasKey(e => new { e.DimMinedWordsId, e.DimWordClusterId }).HasName("PK__br_words__0602FA37D4ACC5C8"); entity.ToTable("br_words_define_a_cluster"); @@ -345,7 +345,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_affi__3213E83FEEFE4B1A"); + entity.HasKey(e => e.Id).HasName("PK__dim_affi__3213E83F06A4D1E9"); entity.ToTable("dim_affiliation"); @@ -421,7 +421,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_call__3213E83F044E57BF"); + entity.HasKey(e => e.Id).HasName("PK__dim_call__3213E83FC03B7861"); entity.ToTable("dim_call_decisions", tb => tb.HasComment("Rahoituspäätöspaneeli")); @@ -562,7 +562,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasConstraintName("belongs to / a part of "), j => { - j.HasKey("DimCallProgrammeId", "DimCallProgrammeId2").HasName("PK__br_call___6F0CEDFB92BD0549"); + j.HasKey("DimCallProgrammeId", "DimCallProgrammeId2").HasName("PK__br_call___6F0CEDFB2F20C88E"); j.ToTable("br_call_programme_dim_call_programme"); j.IndexerProperty("DimCallProgrammeId").HasColumnName("dim_call_programme_id"); j.IndexerProperty("DimCallProgrammeId2").HasColumnName("dim_call_programme_id2"); @@ -581,7 +581,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasConstraintName("FKbr_call_pr785575"), j => { - j.HasKey("DimCallProgrammeId", "DimCallProgrammeId2").HasName("PK__br_call___6F0CEDFB92BD0549"); + j.HasKey("DimCallProgrammeId", "DimCallProgrammeId2").HasName("PK__br_call___6F0CEDFB2F20C88E"); j.ToTable("br_call_programme_dim_call_programme"); j.IndexerProperty("DimCallProgrammeId").HasColumnName("dim_call_programme_id"); j.IndexerProperty("DimCallProgrammeId2").HasColumnName("dim_call_programme_id2"); @@ -600,7 +600,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasConstraintName("has disciplines"), j => { - j.HasKey("DimCallProgrammeId", "DimReferencedataId").HasName("PK__br_dim_r__0A5B885DB465582A"); + j.HasKey("DimCallProgrammeId", "DimReferencedataId").HasName("PK__br_dim_r__0A5B885DD5A55F67"); j.ToTable("br_dim_referencedata_dim_call_programme"); j.IndexerProperty("DimCallProgrammeId").HasColumnName("dim_call_programme_id"); j.IndexerProperty("DimReferencedataId").HasColumnName("dim_referencedata_id"); @@ -609,7 +609,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_comp__3213E83F772641C5"); + entity.HasKey(e => e.Id).HasName("PK__dim_comp__3213E83F8D6B4242"); entity.ToTable("dim_competence"); @@ -662,7 +662,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_date__3213E83F80D03F0C"); + entity.HasKey(e => e.Id).HasName("PK__dim_date__3213E83F7FCE2152"); entity.ToTable("dim_date"); @@ -686,7 +686,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_educ__3213E83FB1E9147C"); + entity.HasKey(e => e.Id).HasName("PK__dim_educ__3213E83FCBB0C37E"); entity.ToTable("dim_education"); @@ -768,7 +768,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_emai__3213E83FAADA17CF"); + entity.HasKey(e => e.Id).HasName("PK__dim_emai__3213E83F1F4B6F39"); entity.ToTable("dim_email_addrress"); @@ -804,7 +804,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_esfr__3213E83FBBA05788"); + entity.HasKey(e => e.Id).HasName("PK__dim_esfr__3213E83F47FAB298"); entity.ToTable("dim_esfri"); @@ -847,7 +847,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasConstraintName("FKbr_esfri_d559740"), j => { - j.HasKey("DimEsfriId", "DimInfrastructureId").HasName("PK__br_esfri__A4A0FE101515BA33"); + j.HasKey("DimEsfriId", "DimInfrastructureId").HasName("PK__br_esfri__A4A0FE10DD9772D1"); j.ToTable("br_esfri_dim_infrastructure"); j.IndexerProperty("DimEsfriId").HasColumnName("dim_esfri_id"); j.IndexerProperty("DimInfrastructureId").HasColumnName("dim_infrastructure_id"); @@ -856,7 +856,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_even__3213E83F28A7BB02"); + entity.HasKey(e => e.Id).HasName("PK__dim_even__3213E83F0F3DAD87"); entity.ToTable("dim_event"); @@ -913,7 +913,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_exte__3213E83F7DCC4300"); + entity.HasKey(e => e.Id).HasName("PK__dim_exte__3213E83F5C147521"); entity.ToTable("dim_external_service"); @@ -947,7 +947,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_fiel__3213E83F0DCC2E36"); + entity.HasKey(e => e.Id).HasName("PK__dim_fiel__3213E83FECCCD9E0"); entity.ToTable("dim_field_display_settings"); @@ -986,7 +986,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasConstraintName("FKbr_field_d783303"), j => { - j.HasKey("DimFieldDisplaySettingsId", "DimRegisteredDataSourceId").HasName("PK__br_field__6148A77209C05080"); + j.HasKey("DimFieldDisplaySettingsId", "DimRegisteredDataSourceId").HasName("PK__br_field__6148A7726777D902"); j.ToTable("br_field_display_settings_dim_registered_data_source"); j.IndexerProperty("DimFieldDisplaySettingsId").HasColumnName("dim_field_display_settings_id"); j.IndexerProperty("DimRegisteredDataSourceId").HasColumnName("dim_registered_data_source_id"); @@ -995,7 +995,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_fund__3213E83F74B633DB"); + entity.HasKey(e => e.Id).HasName("PK__dim_fund__3213E83F76620647"); entity.ToTable("dim_funding_decision"); @@ -1121,7 +1121,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasConstraintName("FKbr_related689923"), j => { - j.HasKey("DimFundingDecisionFromId", "DimFundingDecisionToId").HasName("PK__br_relat__9096649168B0738D"); + j.HasKey("DimFundingDecisionFromId", "DimFundingDecisionToId").HasName("PK__br_relat__909664918B76C476"); j.ToTable("br_related_funding_decision"); j.IndexerProperty("DimFundingDecisionFromId").HasColumnName("dim_funding_decision_from_id"); j.IndexerProperty("DimFundingDecisionToId").HasColumnName("dim_funding_decision_to_id"); @@ -1140,7 +1140,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasConstraintName("FKbr_related232364"), j => { - j.HasKey("DimFundingDecisionFromId", "DimFundingDecisionToId").HasName("PK__br_relat__9096649168B0738D"); + j.HasKey("DimFundingDecisionFromId", "DimFundingDecisionToId").HasName("PK__br_relat__909664918B76C476"); j.ToTable("br_related_funding_decision"); j.IndexerProperty("DimFundingDecisionFromId").HasColumnName("dim_funding_decision_from_id"); j.IndexerProperty("DimFundingDecisionToId").HasColumnName("dim_funding_decision_to_id"); @@ -1149,7 +1149,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_geo__3213E83F6775F5F9"); + entity.HasKey(e => e.Id).HasName("PK__dim_geo__3213E83F055E84C8"); entity.ToTable("dim_geo"); @@ -1203,7 +1203,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_iden__3213E83F611AE8F4"); + entity.HasKey(e => e.Id).HasName("PK__dim_iden__3213E83F0442DAAD"); entity.ToTable("dim_identifierless_data"); @@ -1245,7 +1245,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_infr__3213E83F134FF0CC"); + entity.HasKey(e => e.Id).HasName("PK__dim_infr__3213E83F432AB60A"); entity.ToTable("dim_infrastructure"); @@ -1319,7 +1319,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_keyw__3213E83F828D6675"); + entity.HasKey(e => e.Id).HasName("PK__dim_keyw__3213E83F60A9F1D0"); entity.ToTable("dim_keyword"); @@ -1386,7 +1386,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasConstraintName("FKbr_keyword224605"), j => { - j.HasKey("DimKeywordId", "DimFundingDecisionId").HasName("PK__br_keywo__8C7B929B7BA30AB2"); + j.HasKey("DimKeywordId", "DimFundingDecisionId").HasName("PK__br_keywo__8C7B929B3190CD77"); j.ToTable("br_keyword_dim_funding_decision"); j.IndexerProperty("DimKeywordId").HasColumnName("dim_keyword_id"); j.IndexerProperty("DimFundingDecisionId").HasColumnName("dim_funding_decision_id"); @@ -1405,7 +1405,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasConstraintName("FKbr_keyword944303"), j => { - j.HasKey("DimKeywordId", "DimPublicationId").HasName("PK__br_keywo__C6E31F1A27736A4E"); + j.HasKey("DimKeywordId", "DimPublicationId").HasName("PK__br_keywo__C6E31F1A6C5DC5A4"); j.ToTable("br_keyword_dim_publication"); j.IndexerProperty("DimKeywordId").HasColumnName("dim_keyword_id"); j.IndexerProperty("DimPublicationId").HasColumnName("dim_publication_id"); @@ -1414,7 +1414,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_know__3213E83FACA422D2"); + entity.HasKey(e => e.Id).HasName("PK__dim_know__3213E83F2F885DFE"); entity.ToTable("dim_known_person"); @@ -1443,7 +1443,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_loca__3213E83F36A297BC"); + entity.HasKey(e => e.Id).HasName("PK__dim_loca__3213E83F9860469B"); entity.ToTable("dim_locally_reported_pub_info"); @@ -1491,7 +1491,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_meri__3213E83F27B0527F"); + entity.HasKey(e => e.Id).HasName("PK__dim_meri__3213E83F43BFB92B"); entity.ToTable("dim_meril"); @@ -1534,7 +1534,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasConstraintName("FKbr_meril_d209645"), j => { - j.HasKey("DimMerilId", "DimInfrastructureId").HasName("PK__br_meril__A30C54DAA59A6FDB"); + j.HasKey("DimMerilId", "DimInfrastructureId").HasName("PK__br_meril__A30C54DAC68B4425"); j.ToTable("br_meril_dim_infrastructure"); j.IndexerProperty("DimMerilId").HasColumnName("dim_meril_id"); j.IndexerProperty("DimInfrastructureId").HasColumnName("dim_infrastructure_id"); @@ -1543,7 +1543,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_mine__3213E83F72A260B7"); + entity.HasKey(e => e.Id).HasName("PK__dim_mine__3213E83F11433418"); entity.ToTable("dim_mined_words"); @@ -1567,7 +1567,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_name__3213E83F2CEE89CA"); + entity.HasKey(e => e.Id).HasName("PK__dim_name__3213E83F18FD3B49"); entity.ToTable("dim_name"); @@ -1612,7 +1612,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_news__3213E83F201EFEBA"); + entity.HasKey(e => e.Id).HasName("PK__dim_news__3213E83FFBBF2D4C"); entity.ToTable("dim_news_feed"); @@ -1639,7 +1639,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => new { e.Id, e.DimNewsFeedid }).HasName("PK__dim_news__B87E67031ABA5222"); + entity.HasKey(e => new { e.Id, e.DimNewsFeedid }).HasName("PK__dim_news__B87E6703FEA4C619"); entity.ToTable("dim_news_item"); @@ -1708,7 +1708,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_orga__3213E83F8096E721"); + entity.HasKey(e => e.Id).HasName("PK__dim_orga__3213E83FF8B3CB16"); entity.ToTable("dim_organization"); @@ -1804,7 +1804,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasConstraintName("FKbr_organiz621686"), j => { - j.HasKey("DimOrganizationid", "DimCallProgrammeid").HasName("PK__br_organ__10F219BC67F57D2D"); + j.HasKey("DimOrganizationid", "DimCallProgrammeid").HasName("PK__br_organ__10F219BCF98798D3"); j.ToTable("br_organizations_fund_call_programmes"); j.IndexerProperty("DimOrganizationid").HasColumnName("dim_organizationid"); j.IndexerProperty("DimCallProgrammeid").HasColumnName("dim_call_programmeid"); @@ -1823,7 +1823,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasConstraintName("FKbr_predece849307"), j => { - j.HasKey("DimOrganizationid", "DimOrganizationid2").HasName("PK__br_prede__A7CAD2F4AF4252D6"); + j.HasKey("DimOrganizationid", "DimOrganizationid2").HasName("PK__br_prede__A7CAD2F4B01F95BC"); j.ToTable("br_predecessor_organization"); j.IndexerProperty("DimOrganizationid").HasColumnName("dim_organizationid"); j.IndexerProperty("DimOrganizationid2").HasColumnName("dim_organizationid2"); @@ -1842,7 +1842,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasConstraintName("FKbr_success452227"), j => { - j.HasKey("DimOrganizationid", "DimOrganizationid2").HasName("PK__br_succe__A7CAD2F443C2898E"); + j.HasKey("DimOrganizationid", "DimOrganizationid2").HasName("PK__br_succe__A7CAD2F4E61F8F49"); j.ToTable("br_successor organization"); j.IndexerProperty("DimOrganizationid").HasColumnName("dim_organizationid"); j.IndexerProperty("DimOrganizationid2").HasColumnName("dim_organizationid2"); @@ -1861,7 +1861,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasConstraintName("FKbr_predece505451"), j => { - j.HasKey("DimOrganizationid", "DimOrganizationid2").HasName("PK__br_prede__A7CAD2F4AF4252D6"); + j.HasKey("DimOrganizationid", "DimOrganizationid2").HasName("PK__br_prede__A7CAD2F4B01F95BC"); j.ToTable("br_predecessor_organization"); j.IndexerProperty("DimOrganizationid").HasColumnName("dim_organizationid"); j.IndexerProperty("DimOrganizationid2").HasColumnName("dim_organizationid2"); @@ -1880,7 +1880,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasConstraintName("FKbr_success902531"), j => { - j.HasKey("DimOrganizationid", "DimOrganizationid2").HasName("PK__br_succe__A7CAD2F443C2898E"); + j.HasKey("DimOrganizationid", "DimOrganizationid2").HasName("PK__br_succe__A7CAD2F4E61F8F49"); j.ToTable("br_successor organization"); j.IndexerProperty("DimOrganizationid").HasColumnName("dim_organizationid"); j.IndexerProperty("DimOrganizationid2").HasColumnName("dim_organizationid2"); @@ -1889,7 +1889,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_pid__3213E83F4FFE0E46"); + entity.HasKey(e => e.Id).HasName("PK__dim_pid__3213E83F4F654D17"); entity.ToTable("dim_pid"); @@ -1998,7 +1998,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_prof__3213E83F9FC42F3B"); + entity.HasKey(e => e.Id).HasName("PK__dim_prof__3213E83FC1756098"); entity.ToTable("dim_profile_only_dataset"); @@ -2058,7 +2058,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_prof__3213E83FABC80557"); + entity.HasKey(e => e.Id).HasName("PK__dim_prof__3213E83F823F3A22"); entity.ToTable("dim_profile_only_funding_decision"); @@ -2154,7 +2154,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_prof__3213E83F2AED11BF"); + entity.HasKey(e => e.Id).HasName("PK__dim_prof__3213E83FADFF689E"); entity.ToTable("dim_profile_only_publication"); @@ -2305,7 +2305,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_prof__3213E83FB0D3A831"); + entity.HasKey(e => e.Id).HasName("PK__dim_prof__3213E83F6C9F0350"); entity.ToTable("dim_profile_only_research_activity"); @@ -2385,7 +2385,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_publ__3213E83F2B61CDC4"); + entity.HasKey(e => e.Id).HasName("PK__dim_publ__3213E83F11E193C7"); entity.ToTable("dim_publication"); @@ -2408,6 +2408,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasColumnType("datetime") .HasColumnName("created"); entity.Property(e => e.DimPublicationChannelId).HasColumnName("dim_publication_channel_id"); + entity.Property(e => e.DimPublicationChannelIdFrozen).HasColumnName("dim_publication_channel_id_frozen"); entity.Property(e => e.DimPublicationId).HasColumnName("dim_publication_id"); entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); entity.Property(e => e.Doi) @@ -2439,6 +2440,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasMaxLength(4000) .HasColumnName("journal_name"); entity.Property(e => e.JufoClass).HasColumnName("jufo_class"); + entity.Property(e => e.JufoClassCodeFrozen).HasColumnName("jufo_class_code_frozen"); entity.Property(e => e.JuuliAddress) .HasMaxLength(4000) .HasColumnName("juuli_address"); @@ -2507,11 +2509,16 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasForeignKey(d => d.ArticleTypeCode) .HasConstraintName("article_type_code"); - entity.HasOne(d => d.DimPublicationChannel).WithMany(p => p.DimPublications) + entity.HasOne(d => d.DimPublicationChannel).WithMany(p => p.DimPublicationDimPublicationChannels) .HasForeignKey(d => d.DimPublicationChannelId) .OnDelete(DeleteBehavior.ClientSetNull) .HasConstraintName("publication_channel"); + entity.HasOne(d => d.DimPublicationChannelIdFrozenNavigation).WithMany(p => p.DimPublicationDimPublicationChannelIdFrozenNavigations) + .HasForeignKey(d => d.DimPublicationChannelIdFrozen) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("publication_channel_frozen"); + entity.HasOne(d => d.DimPublicationNavigation).WithMany(p => p.InverseDimPublicationNavigation) .HasForeignKey(d => d.DimPublicationId) .HasConstraintName("parent_publication"); @@ -2526,6 +2533,11 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .OnDelete(DeleteBehavior.ClientSetNull) .HasConstraintName("jufo_class"); + entity.HasOne(d => d.JufoClassCodeFrozenNavigation).WithMany(p => p.DimPublicationJufoClassCodeFrozenNavigations) + .HasForeignKey(d => d.JufoClassCodeFrozen) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("jufo_class_frozen"); + entity.HasOne(d => d.LanguageCodeNavigation).WithMany(p => p.DimPublicationLanguageCodeNavigations) .HasForeignKey(d => d.LanguageCode) .OnDelete(DeleteBehavior.ClientSetNull) @@ -2586,7 +2598,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasConstraintName("FKbr_artpubl464312"), j => { - j.HasKey("DimPublicationId", "DimReferencedataid").HasName("PK__br_artpu__879F18F3CD4C9940"); + j.HasKey("DimPublicationId", "DimReferencedataid").HasName("PK__br_artpu__879F18F344EC60D6"); j.ToTable("br_artpublication_typecategory"); j.IndexerProperty("DimPublicationId").HasColumnName("dim_publication_id"); j.IndexerProperty("DimReferencedataid").HasColumnName("dim_referencedataid"); @@ -2595,7 +2607,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_publ__3213E83FE1772FAE"); + entity.HasKey(e => e.Id).HasName("PK__dim_publ__3213E83F5AC8404B"); entity.ToTable("dim_publication_channel"); @@ -2625,7 +2637,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_purp__3213E83F3C117309"); + entity.HasKey(e => e.Id).HasName("PK__dim_purp__3213E83FA746F35A"); entity.ToTable("dim_purpose"); @@ -2667,7 +2679,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_refe__3213E83F28BB2F78"); + entity.HasKey(e => e.Id).HasName("PK__dim_refe__3213E83F01FC17FA"); entity.ToTable("dim_referencedata"); @@ -2725,7 +2737,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasConstraintName("FKfact_dim_r130466"), j => { - j.HasKey("DimReferencedataId", "DimPublicationId").HasName("PK__fact_dim__62A1BBCB167FD089"); + j.HasKey("DimReferencedataId", "DimPublicationId").HasName("PK__fact_dim__62A1BBCB38ED3F08"); j.ToTable("fact_dim_referencedata_field_of_art"); j.IndexerProperty("DimReferencedataId").HasColumnName("dim_referencedata_id"); j.IndexerProperty("DimPublicationId").HasColumnName("dim_publication_id"); @@ -2734,7 +2746,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_regi__3213E83F67476DF0"); + entity.HasKey(e => e.Id).HasName("PK__dim_regi__3213E83F64F6AB47"); entity.ToTable("dim_registered_data_source"); @@ -2764,7 +2776,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83F0CCD737E"); + entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83FC9D359FC"); entity.ToTable("dim_research_activity"); @@ -2847,7 +2859,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => new { e.DimResearchActivityId, e.DimKeywordId }).HasName("PK__dim_rese__F7B536BC021F2D14"); + entity.HasKey(e => new { e.DimResearchActivityId, e.DimKeywordId }).HasName("PK__dim_rese__F7B536BCA2B5BA4E"); entity.ToTable("dim_research_activity_dim_keyword"); @@ -2862,7 +2874,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83FB816BDE1"); + entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83F0398A530"); entity.ToTable("dim_research_community"); @@ -2908,7 +2920,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83F8E442686"); + entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83F8F43447A"); entity.ToTable("dim_research_data_catalog"); @@ -2947,7 +2959,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83F90695612"); + entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83FFF02318D"); entity.ToTable("dim_research_dataset"); @@ -3037,7 +3049,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasConstraintName("dataset-keywords"), j => { - j.HasKey("DimResearchDatasetId", "DimKeywordId").HasName("PK__br_resea__4D226DF2A3AC622F"); + j.HasKey("DimResearchDatasetId", "DimKeywordId").HasName("PK__br_resea__4D226DF23AE90BD5"); j.ToTable("br_research_dataset_dim_keyword"); j.IndexerProperty("DimResearchDatasetId").HasColumnName("dim_research_dataset_id"); j.IndexerProperty("DimKeywordId").HasColumnName("dim_keyword_id"); @@ -3056,7 +3068,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasConstraintName("FKbr_languag34243"), j => { - j.HasKey("DimResearchDatasetId", "DimReferencedataId").HasName("PK__br_langu__576647BFF5EC8F58"); + j.HasKey("DimResearchDatasetId", "DimReferencedataId").HasName("PK__br_langu__576647BFE99BAEAA"); j.ToTable("br_language_codes_for_datasets"); j.IndexerProperty("DimResearchDatasetId").HasColumnName("dim_research_dataset_id"); j.IndexerProperty("DimReferencedataId").HasColumnName("dim_referencedata_id"); @@ -3065,7 +3077,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83F5C8AD69B"); + entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83F18FD8710"); entity.ToTable("dim_research_project"); @@ -3150,7 +3162,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83F1435D79A"); + entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83FC3E877FE"); entity.ToTable("dim_researcher_description"); @@ -3187,7 +3199,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83F0A6F661B"); + entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83F0865663F"); entity.ToTable("dim_researcher_to_research_community"); @@ -3246,7 +3258,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_sect__3213E83F28F1F16F"); + entity.HasKey(e => e.Id).HasName("PK__dim_sect__3213E83FD2395792"); entity.ToTable("dim_sector"); @@ -3279,7 +3291,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_serv__3213E83F97259487"); + entity.HasKey(e => e.Id).HasName("PK__dim_serv__3213E83FB36A1DE2"); entity.ToTable("dim_service"); @@ -3341,7 +3353,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_serv__3213E83F721E2804"); + entity.HasKey(e => e.Id).HasName("PK__dim_serv__3213E83FFD80CF07"); entity.ToTable("dim_service_point"); @@ -3418,7 +3430,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_tele__3213E83FF9226B60"); + entity.HasKey(e => e.Id).HasName("PK__dim_tele__3213E83FD7142528"); entity.ToTable("dim_telephone_number"); @@ -3454,11 +3466,11 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_type__3213E83F48DCA6C5"); + entity.HasKey(e => e.Id).HasName("PK__dim_type__3213E83F9157129F"); entity.ToTable("dim_type_of_funding"); - entity.HasIndex(e => e.TypeId, "UQ__dim_type__2C00059914D85771").IsUnique(); + entity.HasIndex(e => e.TypeId, "UQ__dim_type__2C000599A0FEB9ED").IsUnique(); entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) @@ -3495,7 +3507,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_user__3213E83FFD3436E7"); + entity.HasKey(e => e.Id).HasName("PK__dim_user__3213E83F25B5D78A"); entity.ToTable("dim_user_choices"); @@ -3529,7 +3541,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_user__3213E83F22C2C42D"); + entity.HasKey(e => e.Id).HasName("PK__dim_user__3213E83FE7143FF9"); entity.ToTable("dim_user_profile"); @@ -3669,7 +3681,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => e.Id).HasName("PK__dim_word__3213E83F20E9BF27"); + entity.HasKey(e => e.Id).HasName("PK__dim_word__3213E83F52D7957F"); entity.ToTable("dim_word_cluster"); @@ -3692,7 +3704,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => new { e.DimFundingDecisionId, e.DimOrganizationId, e.DimDateId, e.DimNameId, e.DimPublicationId, e.DimGeoId, e.DimInfrastructureId, e.DimNewsFeedId, e.DimResearchDatasetId, e.DimResearchDataCatalogId, e.DimIdentifierlessDataId, e.DimResearchActivityId, e.DimResearchCommunityId, e.DimReferencedataActorRoleId, e.DimResearchProjectId }).HasName("PK__fact_con__7D4857052B440C05"); + entity.HasKey(e => new { e.DimFundingDecisionId, e.DimOrganizationId, e.DimDateId, e.DimNameId, e.DimPublicationId, e.DimGeoId, e.DimInfrastructureId, e.DimNewsFeedId, e.DimResearchDatasetId, e.DimResearchDataCatalogId, e.DimIdentifierlessDataId, e.DimResearchActivityId, e.DimResearchCommunityId, e.DimReferencedataActorRoleId, e.DimResearchProjectId }).HasName("PK__fact_con__7D4857056EF5A938"); entity.ToTable("fact_contribution"); @@ -3802,7 +3814,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => new { e.DimReferencedataId, e.DimResearchDatasetId, e.DimKnownPersonId, e.DimPublicationId, e.DimResearchActivityId, e.DimFundingDecisionId, e.DimInfrastructureId }).HasName("PK__fact_dim__3CB15DD385E216DB"); + entity.HasKey(e => new { e.DimReferencedataId, e.DimResearchDatasetId, e.DimKnownPersonId, e.DimPublicationId, e.DimResearchActivityId, e.DimFundingDecisionId, e.DimInfrastructureId }).HasName("PK__fact_dim__3CB15DD34F793838"); entity.ToTable("fact_dim_referencedata_field_of_science"); @@ -4037,7 +4049,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => new { e.DimKeywordId, e.DimServiceId, e.DimServicePointId, e.DimInfrastructureId }).HasName("PK__fact_inf__3C29B680B73BD4FA"); + entity.HasKey(e => new { e.DimKeywordId, e.DimServiceId, e.DimServicePointId, e.DimInfrastructureId }).HasName("PK__fact_inf__3C29B6806599E9CD"); entity.ToTable("fact_infra_keywords"); @@ -4081,7 +4093,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(entity => { - entity.HasKey(e => new { e.DimOrganizationId, e.DimGeoId, e.DimInfrastructureId, e.DimServiceId, e.DimServicePointId, e.DimDateIdStart, e.DimDateIdEnd }).HasName("PK__fact_upk__850A8E30C04C858F"); + entity.HasKey(e => new { e.DimOrganizationId, e.DimGeoId, e.DimInfrastructureId, e.DimServiceId, e.DimServicePointId, e.DimDateIdStart, e.DimDateIdEnd }).HasName("PK__fact_upk__850A8E300E64352E"); entity.ToTable("fact_upkeep"); diff --git a/aspnetcore/src/DatabaseContext/Entities/DimPublication.cs b/aspnetcore/src/DatabaseContext/Entities/DimPublication.cs index 8024f1cd..6ab443bd 100644 --- a/aspnetcore/src/DatabaseContext/Entities/DimPublication.cs +++ b/aspnetcore/src/DatabaseContext/Entities/DimPublication.cs @@ -123,6 +123,10 @@ public partial class DimPublication public int? DimPublicationId { get; set; } + public int JufoClassCodeFrozen { get; set; } + + public int DimPublicationChannelIdFrozen { get; set; } + public virtual DimReferencedatum? ArticleTypeCodeNavigation { get; set; } public virtual ICollection DimLocallyReportedPubInfos { get; set; } = new List(); @@ -131,6 +135,8 @@ public partial class DimPublication public virtual DimPublicationChannel DimPublicationChannel { get; set; } = null!; + public virtual DimPublicationChannel DimPublicationChannelIdFrozenNavigation { get; set; } = null!; + public virtual DimPublication? DimPublicationNavigation { get; set; } public virtual DimRegisteredDataSource DimRegisteredDataSource { get; set; } = null!; @@ -143,6 +149,8 @@ public partial class DimPublication public virtual ICollection InverseDimPublicationNavigation { get; set; } = new List(); + public virtual DimReferencedatum JufoClassCodeFrozenNavigation { get; set; } = null!; + public virtual DimReferencedatum JufoClassNavigation { get; set; } = null!; public virtual DimReferencedatum LanguageCodeNavigation { get; set; } = null!; diff --git a/aspnetcore/src/DatabaseContext/Entities/DimPublicationChannel.cs b/aspnetcore/src/DatabaseContext/Entities/DimPublicationChannel.cs index 9f3417f3..3a89035e 100644 --- a/aspnetcore/src/DatabaseContext/Entities/DimPublicationChannel.cs +++ b/aspnetcore/src/DatabaseContext/Entities/DimPublicationChannel.cs @@ -23,7 +23,9 @@ public partial class DimPublicationChannel public virtual ICollection DimPids { get; set; } = new List(); - public virtual ICollection DimPublications { get; set; } = new List(); + public virtual ICollection DimPublicationDimPublicationChannelIdFrozenNavigations { get; set; } = new List(); + + public virtual ICollection DimPublicationDimPublicationChannels { get; set; } = new List(); public virtual ICollection DimResearchActivities { get; set; } = new List(); } diff --git a/aspnetcore/src/DatabaseContext/Entities/DimReferencedatum.cs b/aspnetcore/src/DatabaseContext/Entities/DimReferencedatum.cs index f06b28b5..123a73f3 100644 --- a/aspnetcore/src/DatabaseContext/Entities/DimReferencedatum.cs +++ b/aspnetcore/src/DatabaseContext/Entities/DimReferencedatum.cs @@ -69,6 +69,8 @@ public partial class DimReferencedatum public virtual ICollection DimPublicationArticleTypeCodeNavigations { get; set; } = new List(); + public virtual ICollection DimPublicationJufoClassCodeFrozenNavigations { get; set; } = new List(); + public virtual ICollection DimPublicationJufoClassNavigations { get; set; } = new List(); public virtual ICollection DimPublicationLanguageCodeNavigations { get; set; } = new List(); diff --git a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/PublicationQueryGenerator.cs b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/PublicationQueryGenerator.cs index 1f7b9a8b..e92bb7b3 100644 --- a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/PublicationQueryGenerator.cs +++ b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/PublicationQueryGenerator.cs @@ -289,6 +289,13 @@ private static IEnumerable, QueryCont t.Term(s => s.Field(f => f.JufoCode) .Value(parameters.JufoCode))); } + + if (parameters.JufoCodeRecorded is not null) + { + filters.Add(t => + t.Term(s => s.Field(f => f.JufoCodeRecorded) + .Value(parameters.JufoCodeRecorded))); + } if (parameters.Doi is not null) { diff --git a/aspnetcore/src/ElasticService/SearchParameters/PublicationSearchParameters.cs b/aspnetcore/src/ElasticService/SearchParameters/PublicationSearchParameters.cs index 9d5dc8c7..346256cd 100644 --- a/aspnetcore/src/ElasticService/SearchParameters/PublicationSearchParameters.cs +++ b/aspnetcore/src/ElasticService/SearchParameters/PublicationSearchParameters.cs @@ -40,6 +40,8 @@ public class PublicationSearchParameters public string? JufoCode { get; set; } + public string? JufoCodeRecorded { get; set; } + public string? Doi { get; set; } public string? Keywords { get; set; } diff --git a/aspnetcore/src/Repositories/Maps/PublicationProfile.cs b/aspnetcore/src/Repositories/Maps/PublicationProfile.cs index 7826bbc4..4145b02d 100644 --- a/aspnetcore/src/Repositories/Maps/PublicationProfile.cs +++ b/aspnetcore/src/Repositories/Maps/PublicationProfile.cs @@ -53,6 +53,8 @@ public PublicationProfile() .ForMember(dst => dst.PublisherLocation, opt => opt.MapFrom(src => src.PublisherLocation)) .ForMember(dst => dst.JufoCode, opt => opt.MapFrom(src => src.DimPublicationChannel.JufoCode)) .ForMember(dst => dst.JufoClass, opt => opt.MapFrom(src => src.JufoClassNavigation)) + .ForMember(dst => dst.JufoCodeRecorded, opt => opt.MapFrom(src => src.DimPublicationChannelIdFrozenNavigation.JufoCode)) + .ForMember(dst => dst.JufoClassRecorded, opt => opt.MapFrom(src => src.JufoClassCodeFrozenNavigation)) .ForMember(dst => dst.Doi, opt => opt.MapFrom(src => src.Doi)) .ForMember(dst => dst.DoiHandle, opt => opt.MapFrom(src => src.DoiHandle)) .ForMember(dst => dst.FieldsOfScience, opt => opt.MapFrom(src => src.FactDimReferencedataFieldOfSciences.Select(f => f.DimReferencedata))) diff --git a/aspnetcore/src/Service.Models/Publication/Publication.cs b/aspnetcore/src/Service.Models/Publication/Publication.cs index 890c1414..b27ba5d3 100644 --- a/aspnetcore/src/Service.Models/Publication/Publication.cs +++ b/aspnetcore/src/Service.Models/Publication/Publication.cs @@ -137,6 +137,16 @@ public class Publication /// public ReferenceData? JufoClass { get; set; } + /// + /// Julkaisufoorumi (jäädytetty) + /// + public string? JufoCodeRecorded { get; set; } + + /// + /// Julkaisufoorumitaso (jäädytetty) + /// + public ReferenceData? JufoClassRecorded { get; set; } + /// /// Linkit /// diff --git a/aspnetcore/test/Indexer.Tests/Maps/PublicationProfileTest.cs b/aspnetcore/test/Indexer.Tests/Maps/PublicationProfileTest.cs index 5fb7b979..b6aa86d2 100644 --- a/aspnetcore/test/Indexer.Tests/Maps/PublicationProfileTest.cs +++ b/aspnetcore/test/Indexer.Tests/Maps/PublicationProfileTest.cs @@ -261,6 +261,19 @@ private static DimPublication GetEntity() ChannelNameAnylang = "channelNameAnylang", PublisherNameText = "publisherNameText", }, + JufoClassCodeFrozenNavigation = new DimReferencedatum + { + CodeValue = "jufoClassCodeFrozen", + NameFi = "jufoClassCodeFrozenNameFi", + NameEn = "jufoClassCodeFrozenNameEn", + NameSv = "jufoClassCodeFrozenNameSv" + }, + DimPublicationChannelIdFrozenNavigation = new() + { + JufoCode = "jufoCodeFrozen", + ChannelNameAnylang = "channelNameAnylang2", + PublisherNameText = "publisherNameText2", + }, PublisherOpenAccessCodeNavigation = new DimReferencedatum { CodeValue = "publisherOpenAccessCode", @@ -495,6 +508,14 @@ private Publication GetModel() NameEn = "jufoClassNameEn", NameSv = "jufoClassNameSv" }, + JufoCodeRecorded = "jufoCodeFrozen", + JufoClassRecorded = new ReferenceData + { + Code = "jufoClassCodeFrozen", + NameFi = "jufoClassCodeFrozenNameFi", + NameEn = "jufoClassCodeFrozenNameEn", + NameSv = "jufoClassCodeFrozenNameSv" + }, Doi = "doi", DoiHandle = "doiHandle", Keywords = new List From d5dc0af42023a849f69249b165ed23e94170a95c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Sa=CC=88rkikoski?= Date: Fri, 29 Nov 2024 09:08:56 +0200 Subject: [PATCH 2/3] Upgrade Microsoft.Extensions.Caching.Memory version --- aspnetcore/src/Indexer/Indexer.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aspnetcore/src/Indexer/Indexer.csproj b/aspnetcore/src/Indexer/Indexer.csproj index ab3953a1..8657115d 100644 --- a/aspnetcore/src/Indexer/Indexer.csproj +++ b/aspnetcore/src/Indexer/Indexer.csproj @@ -13,7 +13,7 @@ - + From c2d9212ced3c346a0bf3bcdf6e88a2bb76246359 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Sa=CC=88rkikoski?= Date: Thu, 12 Dec 2024 14:32:19 +0200 Subject: [PATCH 3/3] Add search parameters jufoClass and jufoClassRecorded --- .../Query/GetPublicationsQueryParameters.cs | 24 ++++++++++--- .../PublicationQueryGenerator.cs | 36 ++++++++++++++----- .../PublicationSearchParameters.cs | 4 +++ 3 files changed, 51 insertions(+), 13 deletions(-) diff --git a/aspnetcore/src/ApiModels/Query/GetPublicationsQueryParameters.cs b/aspnetcore/src/ApiModels/Query/GetPublicationsQueryParameters.cs index 6920ed79..35372c5d 100644 --- a/aspnetcore/src/ApiModels/Query/GetPublicationsQueryParameters.cs +++ b/aspnetcore/src/ApiModels/Query/GetPublicationsQueryParameters.cs @@ -71,7 +71,7 @@ public class GetPublicationsQueryParameters /// /// The field type:code is exactly equal to the text. /// - /// Code: http://uri.suomi.fi/codelist/research/Julkaisutyyppiluokitus + /// Code: https://koodistot.suomi.fi/codescheme;registryCode=research;schemeCode=Julkaisutyyppiluokitus /// /// public string? Type { get; set; } @@ -127,11 +127,27 @@ public class GetPublicationsQueryParameters public string? JufoCode { get; set; } /// - /// The field jufoCodeRecorded contains text. + /// The field jufoCodeRecorded contains text. Recorded as part of national publication data collection. /// /// public string? JufoCodeRecorded { get; set; } + /// + /// The field jufoClass is exactly equal to text. + /// + /// Code: https://koodistot.suomi.fi/codescheme;registryCode=research;schemeCode=Julkaisufoorumiluokitus + /// + /// + public string? JufoClass { get; set; } + + /// + /// The field jufoClassRecorded is exactly equal to text. Recorded as part of national publication data collection. + /// + /// Code: https://koodistot.suomi.fi/codescheme;registryCode=research;schemeCode=Julkaisufoorumiluokitus + /// + /// + public string? JufoClassRecorded { get; set; } + /// /// The field doi is exactly equal to the text. /// @@ -148,7 +164,7 @@ public class GetPublicationsQueryParameters /// /// The field publisherOpenAccess:code is exactly equal to the text. /// - /// Code: http://uri.suomi.fi/codelist/research/JulkaisuKanavaOA + /// Code: https://koodistot.suomi.fi/codescheme;registryCode=research;schemeCode=JulkaisuKanavaOA /// /// public string? PublisherOpenAccess { get; set; } @@ -162,7 +178,7 @@ public class GetPublicationsQueryParameters /// /// The field status is exactly equal to the text. /// - /// Code: http://uri.suomi.fi/codelist/research/julkaisuntila + /// Code: https://koodistot.suomi.fi/codescheme;registryCode=research;schemeCode=julkaisuntila /// /// public string? Status { get; set; } diff --git a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/PublicationQueryGenerator.cs b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/PublicationQueryGenerator.cs index e92bb7b3..1d9e996e 100644 --- a/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/PublicationQueryGenerator.cs +++ b/aspnetcore/src/ElasticService/ElasticSearchQueryGenerators/PublicationQueryGenerator.cs @@ -258,15 +258,6 @@ private static IEnumerable, QueryCont .Value(parameters.TypeCode) )); } - - // Searching with publisher open access code requires exact match. - if (!string.IsNullOrWhiteSpace(parameters.PublisherOpenAccess)) - { - filters.Add(t => t.Term(term => term - .Field(f => f.PublisherOpenAccess!.Code) - .Value(parameters.PublisherOpenAccess) - )); - } if (parameters.Issn is not null) { @@ -304,6 +295,33 @@ private static IEnumerable, QueryCont .Value(parameters.Doi))); } + // Searching with jufo class requires exact match. + if (!string.IsNullOrWhiteSpace(parameters.JufoClass)) + { + filters.Add(t => t.Term(term => term + .Field(f => f.JufoClass!.Code) + .Value(parameters.JufoClass) + )); + } + + // Searching with jufo class recorded requires exact match. + if (!string.IsNullOrWhiteSpace(parameters.JufoClassRecorded)) + { + filters.Add(t => t.Term(term => term + .Field(f => f.JufoClassRecorded!.Code) + .Value(parameters.JufoClassRecorded) + )); + } + + // Searching with publisher open access code requires exact match. + if (!string.IsNullOrWhiteSpace(parameters.PublisherOpenAccess)) + { + filters.Add(t => t.Term(term => term + .Field(f => f.PublisherOpenAccess!.Code) + .Value(parameters.PublisherOpenAccess) + )); + } + // Searching with status requires exact match. if (!string.IsNullOrWhiteSpace(parameters.Status)) { diff --git a/aspnetcore/src/ElasticService/SearchParameters/PublicationSearchParameters.cs b/aspnetcore/src/ElasticService/SearchParameters/PublicationSearchParameters.cs index 346256cd..d5b98ce9 100644 --- a/aspnetcore/src/ElasticService/SearchParameters/PublicationSearchParameters.cs +++ b/aspnetcore/src/ElasticService/SearchParameters/PublicationSearchParameters.cs @@ -41,6 +41,10 @@ public class PublicationSearchParameters public string? JufoCode { get; set; } public string? JufoCodeRecorded { get; set; } + + public string? JufoClass { get; set; } + + public string? JufoClassRecorded { get; set; } public string? Doi { get; set; }