Skip to content

Commit 50b8974

Browse files
authored
CSCTTV-4276 TTV model update 2025_03 (#266)
* CSCTTV-4276 TTV model update 2025_03 * Modify SQL query to get publication DOI from dim_pid * Refine DOI retrieval logic in PublicationController to ensure correct filtering of DimPids * Add debug logging for fact contribution retrieval in UserProfileService * Add debug logging to UserProfileService for improved traceability * Remove redundant debug logging statements in UserProfileService for cleaner code
1 parent f0280c6 commit 50b8974

11 files changed

+2170
-2079
lines changed

aspnetcore/src/api/Controllers/PublicationController.cs

+3-2
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,8 @@ public async Task<IActionResult> PostMany([FromBody] List<ProfileEditorPublicati
8383
.ThenInclude(ffv => ffv.DimRegisteredDataSource)
8484
.ThenInclude(drds => drds.DimOrganization).AsNoTracking()
8585
.Include(dup => dup.FactFieldValues)
86-
.ThenInclude(ffv => ffv.DimPublication).AsNoTracking().FirstOrDefaultAsync(dup => dup.Id == userprofileId);
86+
.ThenInclude(ffv => ffv.DimPublication)
87+
.ThenInclude(publication => publication.DimPids.Where(pid => pid.PidType == "doi")).AsNoTracking().FirstOrDefaultAsync(dup => dup.Id == userprofileId);
8788

8889
// TODO: Currently all added publications get the same data source (Tiedejatutkimus.fi)
8990

@@ -165,7 +166,7 @@ public async Task<IActionResult> PostMany([FromBody] List<ProfileEditorPublicati
165166
PublicationId = dimPublication.PublicationId,
166167
PublicationName = dimPublication.PublicationName,
167168
PublicationYear = dimPublication.PublicationYear,
168-
Doi = dimPublication.Doi,
169+
Doi = dimPublication.DimPids.Select(pid => pid.PidContent).FirstOrDefault(),
169170
TypeCode = "", // TODO: get value from dim_referencedata relation
170171
itemMeta = new ProfileEditorItemMeta(
171172
id: dimPublication.Id,
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3-
3+
44
namespace api.Models.Ttv;
55

66
/// <summary>
@@ -9,27 +9,27 @@ namespace api.Models.Ttv;
99
public partial class DimCallDecision
1010
{
1111
public int Id { get; set; }
12-
12+
1313
public int DecisionMaker { get; set; }
14-
14+
1515
public int DimDateIdApproval { get; set; }
16-
16+
1717
public int DimCallProgrammeId { get; set; }
18-
18+
1919
/// <summary>
2020
/// Rahoituspäätöspaneeli - Haun vaihe
2121
/// </summary>
2222
public string CallProcessingPhase { get; set; }
23-
23+
2424
public string SourceId { get; set; }
25-
25+
2626
public string SourceDescription { get; set; }
27-
27+
2828
public virtual DimReferencedatum DecisionMakerNavigation { get; set; }
29-
29+
3030
public virtual DimCallProgramme DimCallProgramme { get; set; }
31-
31+
3232
public virtual DimDate DimDateIdApprovalNavigation { get; set; }
33-
33+
3434
public virtual ICollection<DimFundingDecision> DimFundingDecisions { get; set; } = new List<DimFundingDecision>();
3535
}
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,80 @@
11
using System;
22
using System.Collections.Generic;
3-
3+
44
namespace api.Models.Ttv;
55

66
/// <summary>
7-
/// https://iri.suomi.fi/model/researchfi_core_project/
8-
/// Projektin kuvailutiedot ajassa
7+
/// https://iri.suomi.fi/model/researchfi_core_project/
8+
/// Projektin kuvailutiedot ajassa
99
/// https://iri.suomi.fi/model/researchfi_core_project/cl_project_descriptive_in_time
1010
/// </summary>
1111
public partial class DimDescriptiveItem
1212
{
1313
public int Id { get; set; }
14-
14+
1515
/// <summary>
16-
/// https://iri.suomi.fi/model/researchfi_core_project/
17-
/// Projektin kuvailutiedot ajassa
18-
/// https://iri.suomi.fi/model/researchfi_core_project/cl_project_descriptive_in_time
16+
/// https://iri.suomi.fi/model/researchfi_core_project/
17+
/// Projektin kuvailutiedot ajassa
18+
/// https://iri.suomi.fi/model/researchfi_core_project/cl_project_descriptive_in_time
1919
/// - liittyy projektiin
2020
/// </summary>
2121
public int DimResearchProjectId { get; set; }
22-
22+
2323
/// <summary>
24-
/// https://iri.suomi.fi/model/researchfi_core_project/
25-
/// Projektin kuvailutiedot ajassa
26-
/// https://iri.suomi.fi/model/researchfi_core_project/cl_project_descriptive_in_time
24+
/// https://iri.suomi.fi/model/researchfi_core_project/
25+
/// Projektin kuvailutiedot ajassa
26+
/// https://iri.suomi.fi/model/researchfi_core_project/cl_project_descriptive_in_time
2727
/// * alkamispäivämäärä
2828
/// </summary>
2929
public int DimStartDate { get; set; }
30-
30+
3131
/// <summary>
32-
/// https://iri.suomi.fi/model/researchfi_core_project/
33-
/// Projektin kuvailutiedot ajassa
34-
/// https://iri.suomi.fi/model/researchfi_core_project/cl_project_descriptive_in_time
32+
/// https://iri.suomi.fi/model/researchfi_core_project/
33+
/// Projektin kuvailutiedot ajassa
34+
/// https://iri.suomi.fi/model/researchfi_core_project/cl_project_descriptive_in_time
3535
/// * päättymispäivämäärä
3636
/// </summary>
3737
public int? DimEndDate { get; set; }
38-
38+
3939
/// <summary>
40-
/// https://iri.suomi.fi/model/researchfi_core_project/
41-
/// Projektin kuvailutiedot ajassa
42-
/// https://iri.suomi.fi/model/researchfi_core_project/cl_project_descriptive_in_time
40+
/// https://iri.suomi.fi/model/researchfi_core_project/
41+
/// Projektin kuvailutiedot ajassa
42+
/// https://iri.suomi.fi/model/researchfi_core_project/cl_project_descriptive_in_time
4343
/// * kuvailutiedon sisältö
4444
/// </summary>
4545
public string DescriptiveItem { get; set; }
46-
46+
4747
/// <summary>
48-
/// https://iri.suomi.fi/model/researchfi_core_project/
49-
/// https://iri.suomi.fi/model/researchfi_core_project/cl_project_descriptive_type
50-
/// - description
51-
/// - name
52-
/// - goal
53-
/// - outcome_effect
48+
/// https://iri.suomi.fi/model/researchfi_core_project/
49+
/// https://iri.suomi.fi/model/researchfi_core_project/cl_project_descriptive_type
50+
/// - description
51+
/// - name
52+
/// - goal
53+
/// - outcome_effect
5454
/// - abberviation
5555
/// </summary>
5656
public string DescriptiveItemType { get; set; }
57-
57+
5858
/// <summary>
5959
/// fi, en, sv, NULL
6060
/// </summary>
6161
public string DescriptiveItemLanguage { get; set; }
62-
62+
6363
public string SourceId { get; set; }
64-
64+
6565
public string SourceDescription { get; set; }
66-
66+
6767
public DateTime? Created { get; set; }
68-
68+
6969
public DateTime? Modified { get; set; }
70-
70+
7171
public int DimRegisteredDataSourceId { get; set; }
72-
72+
7373
public virtual DimDate DimEndDateNavigation { get; set; }
74-
74+
7575
public virtual DimRegisteredDataSource DimRegisteredDataSource { get; set; }
76-
76+
7777
public virtual DimResearchProject DimResearchProject { get; set; }
78-
78+
7979
public virtual DimDate DimStartDateNavigation { get; set; }
8080
}
Original file line numberDiff line numberDiff line change
@@ -1,119 +1,119 @@
11
using System;
22
using System.Collections.Generic;
3-
3+
44
namespace api.Models.Ttv;
55

66
public partial class DimFundingDecision
77
{
88
public int Id { get; set; }
9-
9+
1010
public int DimDateIdApproval { get; set; }
11-
11+
1212
public int DimDateIdStart { get; set; }
13-
13+
1414
public int DimDateIdEnd { get; set; }
15-
15+
1616
public long DimNameIdContactPerson { get; set; }
17-
17+
1818
public int DimCallProgrammeId { get; set; }
19-
19+
2020
public int DimGeoId { get; set; }
21-
21+
2222
public int DimTypeOfFundingId { get; set; }
23-
23+
2424
public int? DimOrganizationIdFunder { get; set; }
25-
25+
2626
public string DimPidPidContent { get; set; }
27-
27+
2828
public int DimFundingDecisionIdParentDecision { get; set; }
29-
29+
3030
/// <summary>
3131
/// Päätöksen paikallinen tunniste (tiedon toimittajan)
3232
/// </summary>
3333
public string FunderProjectNumber { get; set; }
34-
34+
3535
public string Acronym { get; set; }
36-
36+
3737
public string NameFi { get; set; }
38-
38+
3939
public string NameSv { get; set; }
40-
40+
4141
public string NameEn { get; set; }
42-
42+
4343
public string NameUnd { get; set; }
44-
44+
4545
public string DescriptionFi { get; set; }
46-
46+
4747
public string DescriptionEn { get; set; }
48-
48+
4949
public string DescriptionSv { get; set; }
50-
50+
5151
public int? HasInternationalCollaboration { get; set; }
52-
52+
5353
public int? HasBusinessCollaboration { get; set; }
54-
54+
5555
public decimal AmountInEur { get; set; }
56-
56+
5757
public decimal? AmountInFundingDecisionCurrency { get; set; }
58-
58+
5959
public string FundingDecisionCurrencyAbbreviation { get; set; }
60-
60+
6161
public string SourceId { get; set; }
62-
62+
6363
public string SourceDescription { get; set; }
64-
64+
6565
public DateTime? Created { get; set; }
66-
66+
6767
public DateTime? Modified { get; set; }
68-
68+
6969
public int DimRegisteredDataSourceId { get; set; }
70-
70+
7171
/// <summary>
7272
/// Rahoituspäätös - Päätöspaneeli
7373
/// </summary>
7474
public int? DimCallDecisionsId { get; set; }
75-
75+
7676
public virtual ICollection<BrFundingConsortiumParticipation> BrFundingConsortiumParticipations { get; set; } = new List<BrFundingConsortiumParticipation>();
77-
77+
7878
public virtual ICollection<BrParticipatesInFundingGroup> BrParticipatesInFundingGroups { get; set; } = new List<BrParticipatesInFundingGroup>();
79-
79+
8080
public virtual ICollection<BrWordClusterDimFundingDecision> BrWordClusterDimFundingDecisions { get; set; } = new List<BrWordClusterDimFundingDecision>();
81-
81+
8282
public virtual DimCallDecision DimCallDecisions { get; set; }
83-
83+
8484
public virtual DimCallProgramme DimCallProgramme { get; set; }
85-
85+
8686
public virtual DimDate DimDateIdApprovalNavigation { get; set; }
87-
87+
8888
public virtual DimDate DimDateIdEndNavigation { get; set; }
89-
89+
9090
public virtual DimDate DimDateIdStartNavigation { get; set; }
91-
91+
9292
public virtual DimFundingDecision DimFundingDecisionIdParentDecisionNavigation { get; set; }
93-
93+
9494
public virtual DimGeo DimGeo { get; set; }
95-
95+
9696
public virtual DimName DimNameIdContactPersonNavigation { get; set; }
97-
97+
9898
public virtual DimOrganization DimOrganizationIdFunderNavigation { get; set; }
99-
99+
100100
public virtual DimRegisteredDataSource DimRegisteredDataSource { get; set; }
101-
101+
102102
public virtual DimReferencedatum DimTypeOfFunding { get; set; }
103-
103+
104104
public virtual ICollection<DimWebLink> DimWebLinks { get; set; } = new List<DimWebLink>();
105-
105+
106106
public virtual ICollection<FactContribution> FactContributions { get; set; } = new List<FactContribution>();
107-
107+
108108
public virtual ICollection<FactDimReferencedataFieldOfScience> FactDimReferencedataFieldOfSciences { get; set; } = new List<FactDimReferencedataFieldOfScience>();
109-
109+
110110
public virtual ICollection<FactFieldValue> FactFieldValues { get; set; } = new List<FactFieldValue>();
111-
111+
112112
public virtual ICollection<DimFundingDecision> InverseDimFundingDecisionIdParentDecisionNavigation { get; set; } = new List<DimFundingDecision>();
113-
113+
114114
public virtual ICollection<DimFundingDecision> DimFundingDecisionFroms { get; set; } = new List<DimFundingDecision>();
115-
115+
116116
public virtual ICollection<DimFundingDecision> DimFundingDecisionTos { get; set; } = new List<DimFundingDecision>();
117-
117+
118118
public virtual ICollection<DimKeyword> DimKeywords { get; set; } = new List<DimKeyword>();
119119
}

aspnetcore/src/api/Models/Ttv/DimOrganization.cs

+2
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ public partial class DimOrganization
6161

6262
public int DimRegisteredDataSourceId { get; set; }
6363

64+
public bool ResearchFiVisibilityLimited { get; set; }
65+
6466
public virtual ICollection<BrFundingConsortiumParticipation> BrFundingConsortiumParticipations { get; set; } = new List<BrFundingConsortiumParticipation>();
6567

6668
public virtual ICollection<BrParticipatesInFundingGroup> BrParticipatesInFundingGroups { get; set; } = new List<BrParticipatesInFundingGroup>();

0 commit comments

Comments
 (0)