diff --git a/aspnetcore/src/api.Tests/Services_Tests/UserProfileServiceTest.cs b/aspnetcore/src/api.Tests/Services_Tests/UserProfileServiceTest.cs index 0cf69a1..ba5a860 100644 --- a/aspnetcore/src/api.Tests/Services_Tests/UserProfileServiceTest.cs +++ b/aspnetcore/src/api.Tests/Services_Tests/UserProfileServiceTest.cs @@ -281,7 +281,8 @@ public void getEmptyDimPid_01() Assert.Equal(-1, actualDimPid.DimInfrastructureId); Assert.Equal(-1, actualDimPid.DimPublicationChannelId); Assert.Equal(-1, actualDimPid.DimResearchDatasetId); - Assert.Equal(-1, actualDimPid.DimFundingDecisionId); + Assert.Equal(-1, (int)actualDimPid.DimResearchProjectId); + Assert.Equal(-1, (int)actualDimPid.DimResearchCommunityId); Assert.Equal(-1, actualDimPid.DimResearchDataCatalogId); Assert.Equal(-1, actualDimPid.DimResearchActivityId); Assert.Equal(-1, actualDimPid.DimEventId); @@ -538,5 +539,26 @@ public void GetProfileEditorSource() Assert.Equal(expectedProfileEditorSource.Organization.NameSv, actualProfileEditorSource.Organization.NameSv); Assert.Equal(expectedProfileEditorSource.Organization.SectorId, actualProfileEditorSource.Organization.SectorId); } + + [Fact(DisplayName = "ProfileSettings from DimUserProfile")] + public void GetProfileSettings() + { + // Arrange + UserProfileService userProfileService = new(); + DimUserProfile dimUserProfile = new() + { + Hidden = true, + PublishNewOrcidData = true + }; + ProfileSettings expectedProfileSettings = new ProfileSettings() { + Hidden = true, + PublishNewOrcidData = true + }; + // Act + ProfileSettings actualProfileSettings = userProfileService.GetProfileSettings(dimUserProfile); + // Assert + Assert.Equal(expectedProfileSettings.Hidden, actualProfileSettings.Hidden); + Assert.Equal(expectedProfileSettings.PublishNewOrcidData, actualProfileSettings.PublishNewOrcidData); + } } } \ No newline at end of file diff --git a/aspnetcore/src/api/Controllers/ProfileSettingsController.cs b/aspnetcore/src/api/Controllers/ProfileSettingsController.cs index 5005556..08247b0 100644 --- a/aspnetcore/src/api/Controllers/ProfileSettingsController.cs +++ b/aspnetcore/src/api/Controllers/ProfileSettingsController.cs @@ -1,21 +1,16 @@ -using api.Services; -using api.Models.Api; -using api.Models.Common; -using api.Models.Ttv; -using api.Models.ProfileEditor; +using api.Services; +using api.Models.Api; +using api.Models.Common; +using api.Models.Ttv; +using api.Models.ProfileEditor; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System.Threading.Tasks; -using Microsoft.EntityFrameworkCore; -using System.Linq; -using System.Collections.Generic; using Microsoft.Extensions.Caching.Memory; using Microsoft.AspNetCore.Http; using System; using Microsoft.Extensions.Logging; using api.Models.Log; -using api.Models.ProfileEditor.Items; -using static api.Models.Common.Constants; namespace api.Controllers { @@ -48,6 +43,15 @@ public async Task GetSettings() // Get ORCID id string orcidId = GetOrcidId(); + // Get user profile + DimUserProfile dimUserProfile = await _userProfileService.GetUserprofile(orcidId); + + // Check that userprofile exists. + if (dimUserProfile == null) + { + return Ok(new ApiResponse(success: false, reason: "profile not found")); + } + // Cache key string cacheKey = _userProfileService.GetCMemoryCacheKey_ProfileSettings(orcidId); @@ -57,26 +61,8 @@ public async Task GetSettings() return Ok(new ApiResponseProfileSettingsGet(success: true, reason: "", data: cachedProfileSettings, fromCache: true)); } - // Cached response was not found, get data - DimUserProfile dimUserProfile; - ProfileSettings profileSettings = new(); - try - { - dimUserProfile = await _userProfileService.GetUserprofile(orcidId); - profileSettings.Hidden = dimUserProfile.Hidden; - } - catch (Exception ex) - { - _logger.LogInformation( - LogContent.MESSAGE_TEMPLATE, - this.GetLogUserIdentification(), - new LogApiInfo( - action: LogContent.Action.SETTINGS_GET, - error: true, - state: LogContent.ActionState.FAILED, - message: $"{ex.ToString()}")); - return Ok(new ApiResponse(success: false, reason: "profile not found", fromCache: false)); - } + // Get settings data + ProfileSettings profileSettings = _userProfileService.GetProfileSettings(dimUserProfile); // Store data into cache MemoryCacheEntryOptions cacheEntryOptions = new MemoryCacheEntryOptions() @@ -84,13 +70,16 @@ public async Task GetSettings() .SetSlidingExpiration(TimeSpan.FromSeconds(Constants.Cache.MEMORY_CACHE_EXPIRATION_SECONDS)); _cache.Set(cacheKey, profileSettings, cacheEntryOptions); - return Ok(new ApiResponseProfileSettingsGet(success: true, reason: "", data: profileSettings, fromCache: false)); + return Ok( + new ApiResponseProfileSettingsGet( + success: true, + reason: "", + data: profileSettings, + fromCache: false)); } /// /// Set profile settings. - /// Setting "hidden" to true removes profile from Elasticsearch and disables Elasticsearch sync for the profile. - /// Setting "hidden" to false adds profile to Elasticsearch and enables Elasticsearch sync for the profile. /// [HttpPost] [ProducesResponseType(typeof(ApiResponse), StatusCodes.Status200OK)] @@ -104,55 +93,45 @@ public async Task SetSettings([FromBody] ProfileSettings profileS // Get ORCID id string orcidId = GetOrcidId(); + // Get user profile + DimUserProfile dimUserProfile = await _userProfileService.GetUserprofileTracking(orcidId); + + // Check that userprofile exists. + if (dimUserProfile == null) + { + return Ok(new ApiResponse(success: false, reason: "profile not found")); + } + // Remove cached data string cacheKey = _userProfileService.GetCMemoryCacheKey_ProfileSettings(orcidId); _cache.Remove(cacheKey); LogUserIdentification logUserIdentification = this.GetLogUserIdentification(); - // Handle setting "hidden" - if (profileSettings.Hidden != null) - { - if (profileSettings.Hidden == true) - { - // Hide profile - await _userProfileService.HideProfile(orcidId: orcidId, logUserIdentification: logUserIdentification); - } - else if (profileSettings.Hidden == false) - { - // Reveal profile - await _userProfileService.RevealProfile(orcidId: orcidId, logUserIdentification: logUserIdentification); - } - } - - return Ok(new ApiResponse()); - } + string settingsToLogMessage = $"hidden={profileSettings.Hidden}, publishNewOrcidData={profileSettings.PublishNewOrcidData}"; + _logger.LogInformation( + LogContent.MESSAGE_TEMPLATE, + logUserIdentification, + new LogApiInfo( + action: LogContent.Action.SETTINGS_SET, + state: LogContent.ActionState.START, + message: settingsToLogMessage)); + // Save settings + await _userProfileService.SaveProfileSettings( + orcidId: orcidId, + dimUserProfile: dimUserProfile, + profileSettings: profileSettings, + logUserIdentification: logUserIdentification); - /// - /// DEPRECATED - /// Set profile state to "hidden". - /// Profile is removed from Elasticsearch index. - /// - [HttpGet] - [Route("hideprofile")] - [ProducesResponseType(typeof(ApiResponse), StatusCodes.Status200OK)] - public async Task HideProfileFromPortal() - { - // Get ORCID id - string orcidId = GetOrcidId(); - - LogUserIdentification logUserIdentification = this.GetLogUserIdentification(); _logger.LogInformation( LogContent.MESSAGE_TEMPLATE, logUserIdentification, new LogApiInfo( - action: LogContent.Action.PROFILE_HIDE, - state: LogContent.ActionState.START)); - - // Set profile state to "hidden" - await _userProfileService.HideProfile(orcidId: orcidId, logUserIdentification: logUserIdentification); + action: LogContent.Action.SETTINGS_SET, + state: LogContent.ActionState.COMPLETE, + message: settingsToLogMessage)); return Ok(new ApiResponse()); } diff --git a/aspnetcore/src/api/Models/ProfileEditor/ProfileSettings.cs b/aspnetcore/src/api/Models/ProfileEditor/ProfileSettings.cs index 9bed6f0..24534b8 100644 --- a/aspnetcore/src/api/Models/ProfileEditor/ProfileSettings.cs +++ b/aspnetcore/src/api/Models/ProfileEditor/ProfileSettings.cs @@ -6,6 +6,16 @@ public ProfileSettings() { } + /// + /// When true, removes profile from Elasticsearch and disables Elasticsearch sync for the profile. + /// When false, adds profile to Elasticsearch and enables Elasticsearch sync for the profile. + /// public bool? Hidden { get; set; } + + /// + /// When true, new ORCID data items are automatically made public. + /// When false, user must manually set new ORCID data items public. + /// + public bool? PublishNewOrcidData { get; set; } } } diff --git a/aspnetcore/src/api/Models/StructuredLog/LogContent.cs b/aspnetcore/src/api/Models/StructuredLog/LogContent.cs index 6a16c57..c089d43 100644 --- a/aspnetcore/src/api/Models/StructuredLog/LogContent.cs +++ b/aspnetcore/src/api/Models/StructuredLog/LogContent.cs @@ -41,6 +41,7 @@ public static class Action public const string ORCID_WEBHOOK_UNREGISTER = "ORCID: webhook: unregister"; public const string ORCID_WEBHOOK_RECEIVED = "ORCID: webhook: received"; public const string SETTINGS_GET = "Settings: get"; + public const string SETTINGS_SET = "Settings: set"; } public static class ActionState diff --git a/aspnetcore/src/api/Models/Ttv/DimCallDecision.cs b/aspnetcore/src/api/Models/Ttv/DimCallDecision.cs new file mode 100644 index 0000000..55481e3 --- /dev/null +++ b/aspnetcore/src/api/Models/Ttv/DimCallDecision.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; + +namespace api.Models.Ttv; + +/// +/// Rahoituspäätöspaneeli +/// +public partial class DimCallDecision +{ + public int Id { get; set; } + + public int DecisionMaker { get; set; } + + public int DimDateIdApproval { get; set; } + + public int DimCallProgrammeId { get; set; } + + /// + /// Rahoituspäätöspaneeli - Haun vaihe + /// + public string CallProcessingPhase { get; set; } + + public string SourceId { get; set; } + + public string SourceDescription { get; set; } + + public virtual DimReferencedatum DecisionMakerNavigation { get; set; } + + public virtual DimCallProgramme DimCallProgramme { get; set; } + + public virtual DimDate DimDateIdApprovalNavigation { get; set; } + + public virtual ICollection DimFundingDecisions { get; set; } = new List(); +} diff --git a/aspnetcore/src/api/Models/Ttv/DimCallProgramme.cs b/aspnetcore/src/api/Models/Ttv/DimCallProgramme.cs index e4d076c..69a26fa 100644 --- a/aspnetcore/src/api/Models/Ttv/DimCallProgramme.cs +++ b/aspnetcore/src/api/Models/Ttv/DimCallProgramme.cs @@ -63,6 +63,14 @@ public partial class DimCallProgramme public string CallNameDetailsSv { get; set; } + public string LocalIdentifier { get; set; } + + public int? TypeOfFunding { get; set; } + + public virtual ICollection DimCallDecisions { get; set; } = new List(); + + public virtual DimCallProgramme DimCallProgrammeNavigation { get; set; } + public virtual DimDate DimDateIdDueNavigation { get; set; } public virtual DimDate DimDateIdOpenNavigation { get; set; } @@ -75,6 +83,10 @@ public partial class DimCallProgramme public virtual ICollection DimWebLinks { get; set; } = new List(); + public virtual ICollection InverseDimCallProgrammeNavigation { get; set; } = new List(); + + public virtual DimReferencedatum TypeOfFundingNavigation { get; set; } + public virtual ICollection DimCallProgrammeId2s { get; set; } = new List(); public virtual ICollection DimCallProgrammes { get; set; } = new List(); diff --git a/aspnetcore/src/api/Models/Ttv/DimDate.cs b/aspnetcore/src/api/Models/Ttv/DimDate.cs index fb21d14..3f69d98 100644 --- a/aspnetcore/src/api/Models/Ttv/DimDate.cs +++ b/aspnetcore/src/api/Models/Ttv/DimDate.cs @@ -25,6 +25,8 @@ public partial class DimDate public virtual ICollection DimAffiliationStartDateNavigations { get; set; } = new List(); + public virtual ICollection DimCallDecisions { get; set; } = new List(); + public virtual ICollection DimCallProgrammeDimDateIdDueNavigations { get; set; } = new List(); public virtual ICollection DimCallProgrammeDimDateIdOpenNavigations { get; set; } = new List(); @@ -57,6 +59,10 @@ public partial class DimDate public virtual ICollection DimResearchActivityDimStartDateNavigations { get; set; } = new List(); + public virtual ICollection DimResearchProjectEndDateNavigations { get; set; } = new List(); + + public virtual ICollection DimResearchProjectStartDateNavigations { get; set; } = new List(); + public virtual ICollection DimResearcherToResearchCommunityEndDateNavigations { get; set; } = new List(); public virtual ICollection DimResearcherToResearchCommunityStartDateNavigations { get; set; } = new List(); diff --git a/aspnetcore/src/api/Models/Ttv/DimFundingDecision.cs b/aspnetcore/src/api/Models/Ttv/DimFundingDecision.cs index 5cf259b..46dfdf5 100644 --- a/aspnetcore/src/api/Models/Ttv/DimFundingDecision.cs +++ b/aspnetcore/src/api/Models/Ttv/DimFundingDecision.cs @@ -27,6 +27,9 @@ public partial class DimFundingDecision public int DimFundingDecisionIdParentDecision { get; set; } + /// + /// Päätöksen paikallinen tunniste (tiedon toimittajan) + /// public string FunderProjectNumber { get; set; } public string Acronym { get; set; } @@ -65,12 +68,19 @@ public partial class DimFundingDecision public int DimRegisteredDataSourceId { get; set; } + /// + /// Rahoituspäätös - Päätöspaneeli + /// + public int? DimCallDecisionsId { get; set; } + public virtual ICollection BrFundingConsortiumParticipations { get; set; } = new List(); public virtual ICollection BrParticipatesInFundingGroups { get; set; } = new List(); public virtual ICollection BrWordClusterDimFundingDecisions { get; set; } = new List(); + public virtual DimCallDecision DimCallDecisions { get; set; } + public virtual DimCallProgramme DimCallProgramme { get; set; } public virtual DimDate DimDateIdApprovalNavigation { get; set; } @@ -87,11 +97,9 @@ public partial class DimFundingDecision public virtual DimOrganization DimOrganizationIdFunderNavigation { get; set; } - public virtual ICollection DimPids { get; set; } = new List(); - public virtual DimRegisteredDataSource DimRegisteredDataSource { get; set; } - public virtual DimTypeOfFunding DimTypeOfFunding { get; set; } + public virtual DimReferencedatum DimTypeOfFunding { get; set; } public virtual ICollection DimWebLinks { get; set; } = new List(); @@ -105,11 +113,7 @@ public partial class DimFundingDecision public virtual ICollection DimFundingDecisionFroms { get; set; } = new List(); - public virtual ICollection DimFundingDecisionFromsNavigation { get; set; } = new List(); - public virtual ICollection DimFundingDecisionTos { get; set; } = new List(); - public virtual ICollection DimFundingDecisionTosNavigation { get; set; } = new List(); - public virtual ICollection DimKeywords { get; set; } = new List(); } diff --git a/aspnetcore/src/api/Models/Ttv/DimName.cs b/aspnetcore/src/api/Models/Ttv/DimName.cs index 7575ed0..f711d20 100644 --- a/aspnetcore/src/api/Models/Ttv/DimName.cs +++ b/aspnetcore/src/api/Models/Ttv/DimName.cs @@ -35,6 +35,8 @@ public partial class DimName public virtual DimRegisteredDataSource DimRegisteredDataSource { get; set; } + public virtual ICollection DimResearchProjects { get; set; } = new List(); + public virtual ICollection FactContributions { get; set; } = new List(); public virtual ICollection FactFieldValues { get; set; } = new List(); diff --git a/aspnetcore/src/api/Models/Ttv/DimOrganization.cs b/aspnetcore/src/api/Models/Ttv/DimOrganization.cs index eace6dd..a81e2eb 100644 --- a/aspnetcore/src/api/Models/Ttv/DimOrganization.cs +++ b/aspnetcore/src/api/Models/Ttv/DimOrganization.cs @@ -87,6 +87,8 @@ public partial class DimOrganization public virtual ICollection DimResearchActivities { get; set; } = new List(); + public virtual ICollection DimResearchProjects { get; set; } = new List(); + public virtual DimSector DimSector { get; set; } public virtual ICollection DimWebLinks { get; set; } = new List(); diff --git a/aspnetcore/src/api/Models/Ttv/DimPid.cs b/aspnetcore/src/api/Models/Ttv/DimPid.cs index 1abaa97..c3f34ce 100644 --- a/aspnetcore/src/api/Models/Ttv/DimPid.cs +++ b/aspnetcore/src/api/Models/Ttv/DimPid.cs @@ -1,81 +1,83 @@ using System; using System.Collections.Generic; - + namespace api.Models.Ttv; public partial class DimPid { public int Id { get; set; } - + public string PidContent { get; set; } - + public string PidType { get; set; } - + public int DimOrganizationId { get; set; } - + public int DimKnownPersonId { get; set; } - + public int DimPublicationId { get; set; } - + public int DimServiceId { get; set; } - + public int DimInfrastructureId { get; set; } - + public int DimPublicationChannelId { get; set; } - + public int DimResearchDatasetId { get; set; } - - public int DimFundingDecisionId { get; set; } - + public int DimResearchDataCatalogId { get; set; } - + public int DimResearchActivityId { get; set; } - + public int DimEventId { get; set; } - + public int DimProfileOnlyPublicationId { get; set; } - + public string SourceId { get; set; } - + public string SourceDescription { get; set; } - + public DateTime? Created { get; set; } - + public DateTime? Modified { get; set; } - + public int? DimProfileOnlyDatasetId { get; set; } - + public int? DimProfileOnlyFundingDecisionId { get; set; } - + + public int? DimResearchProjectId { get; set; } + + public int? DimResearchCommunityId { get; set; } + public virtual DimEvent DimEvent { get; set; } - - public virtual DimFundingDecision DimFundingDecision { get; set; } - + public virtual DimInfrastructure DimInfrastructure { get; set; } - + public virtual DimKnownPerson DimKnownPerson { get; set; } - + public virtual DimOrganization DimOrganization { get; set; } - + public virtual DimProfileOnlyDataset DimProfileOnlyDataset { get; set; } - + public virtual DimProfileOnlyFundingDecision DimProfileOnlyFundingDecision { get; set; } - + public virtual DimProfileOnlyPublication DimProfileOnlyPublication { get; set; } - + public virtual DimPublication DimPublication { get; set; } - + public virtual DimPublicationChannel DimPublicationChannel { get; set; } - + public virtual DimResearchActivity DimResearchActivity { get; set; } - + + public virtual DimResearchCommunity DimResearchCommunity { get; set; } + public virtual DimResearchDataCatalog DimResearchDataCatalog { get; set; } - + public virtual DimResearchDataset DimResearchDataset { get; set; } - + public virtual DimService DimService { get; set; } - + public virtual ICollection FactFieldValueDimPidIdOrcidPutCodeNavigations { get; set; } = new List(); - + public virtual ICollection FactFieldValueDimPids { get; set; } = new List(); } diff --git a/aspnetcore/src/api/Models/Ttv/DimReferencedatum.cs b/aspnetcore/src/api/Models/Ttv/DimReferencedatum.cs index e6e7750..f826153 100644 --- a/aspnetcore/src/api/Models/Ttv/DimReferencedatum.cs +++ b/aspnetcore/src/api/Models/Ttv/DimReferencedatum.cs @@ -35,8 +35,14 @@ public partial class DimReferencedatum public virtual ICollection DimAffiliations { get; set; } = new List(); + public virtual ICollection DimCallDecisions { get; set; } = new List(); + + public virtual ICollection DimCallProgrammesNavigation { get; set; } = new List(); + public virtual ICollection DimEducations { get; set; } = new List(); + public virtual ICollection DimFundingDecisions { get; set; } = new List(); + public virtual ICollection DimLocallyReportedPubInfoSelfArchivedLicenseCodeNavigations { get; set; } = new List(); public virtual ICollection DimLocallyReportedPubInfoSelfArchivedVersionCodeNavigations { get; set; } = new List(); diff --git a/aspnetcore/src/api/Models/Ttv/DimRegisteredDataSource.cs b/aspnetcore/src/api/Models/Ttv/DimRegisteredDataSource.cs index 0219d04..7384513 100644 --- a/aspnetcore/src/api/Models/Ttv/DimRegisteredDataSource.cs +++ b/aspnetcore/src/api/Models/Ttv/DimRegisteredDataSource.cs @@ -59,6 +59,8 @@ public partial class DimRegisteredDataSource public virtual ICollection DimResearchDatasets { get; set; } = new List(); + public virtual ICollection DimResearchProjects { get; set; } = new List(); + public virtual ICollection DimResearcherDescriptions { get; set; } = new List(); public virtual ICollection DimResearcherToResearchCommunities { get; set; } = new List(); diff --git a/aspnetcore/src/api/Models/Ttv/DimResearchCommunity.cs b/aspnetcore/src/api/Models/Ttv/DimResearchCommunity.cs index 0e267b9..a99bcf0 100644 --- a/aspnetcore/src/api/Models/Ttv/DimResearchCommunity.cs +++ b/aspnetcore/src/api/Models/Ttv/DimResearchCommunity.cs @@ -33,6 +33,8 @@ public partial class DimResearchCommunity public int DimRegisteredDataSourceId { get; set; } + public virtual ICollection DimPids { get; set; } = new List(); + public virtual DimRegisteredDataSource DimRegisteredDataSource { get; set; } public virtual ICollection DimResearcherToResearchCommunities { get; set; } = new List(); diff --git a/aspnetcore/src/api/Models/Ttv/DimResearchProject.cs b/aspnetcore/src/api/Models/Ttv/DimResearchProject.cs new file mode 100644 index 0000000..0d41765 --- /dev/null +++ b/aspnetcore/src/api/Models/Ttv/DimResearchProject.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; + +namespace api.Models.Ttv; + +public partial class DimResearchProject +{ + public int Id { get; set; } + + /// + /// Hanke - vastuuorganisaatio + /// + public int ResponsibleOrganization { get; set; } + + /// + /// Hanke - nimi + /// + public string NameFi { get; set; } + + public string NameEn { get; set; } + + public string NameSv { get; set; } + + /// + /// Hanke - lyhenne + /// + public string AbbrevationFi { get; set; } + + public string AbbrevationEn { get; set; } + + public string AbbrevationSv { get; set; } + + /// + /// Hanke - tiivistelmä + /// + public string SummaryFi { get; set; } + + public string SummaryEn { get; set; } + + public string SummarySv { get; set; } + + /// + /// Hanke - lisätieto + /// + public string AdditionalInfromationFi { get; set; } + + public string AdditionalInformationEn { get; set; } + + public string AddtitionalInformationSv { get; set; } + + /// + /// Hanke - alkamispäivämäärä + /// + public int? StartDate { get; set; } + + /// + /// Hanke - päättymispäivämäärä + /// + public int? EndDate { get; set; } + + public string SourceId { get; set; } + + public string SourceDescription { get; set; } + + public DateTime? Created { get; set; } + + public DateTime? Modified { get; set; } + + public int DimRegisteredDataSourceId { get; set; } + + public int? ResponsiblePerson { get; set; } + + public string GoalsFi { get; set; } + + public string GoalsEn { get; set; } + + public string GoalsSv { get; set; } + + public string OutcomeEffectFi { get; set; } + + public string OutcomeEffectEn { get; set; } + + public string OutcomeEffectSv { get; set; } + + public virtual DimRegisteredDataSource DimRegisteredDataSource { get; set; } + + public virtual DimDate EndDateNavigation { get; set; } + + public virtual DimOrganization ResponsibleOrganizationNavigation { get; set; } + + public virtual DimName ResponsiblePersonNavigation { get; set; } + + public virtual DimDate StartDateNavigation { get; set; } +} diff --git a/aspnetcore/src/api/Models/Ttv/DimTypeOfFunding.cs b/aspnetcore/src/api/Models/Ttv/DimTypeOfFunding.cs index f25f090..6ddd436 100644 --- a/aspnetcore/src/api/Models/Ttv/DimTypeOfFunding.cs +++ b/aspnetcore/src/api/Models/Ttv/DimTypeOfFunding.cs @@ -25,8 +25,6 @@ public partial class DimTypeOfFunding public int DimTypeOfFundingId { get; set; } - public virtual ICollection DimFundingDecisions { get; set; } = new List(); - public virtual ICollection DimProfileOnlyFundingDecisions { get; set; } = new List(); public virtual DimTypeOfFunding DimTypeOfFundingNavigation { get; set; } diff --git a/aspnetcore/src/api/Models/Ttv/DimUserProfile.cs b/aspnetcore/src/api/Models/Ttv/DimUserProfile.cs index e116512..e28dc3e 100644 --- a/aspnetcore/src/api/Models/Ttv/DimUserProfile.cs +++ b/aspnetcore/src/api/Models/Ttv/DimUserProfile.cs @@ -33,6 +33,8 @@ public partial class DimUserProfile public bool Hidden { get; set; } + public bool PublishNewOrcidData { get; set; } + public virtual ICollection BrGrantedPermissions { get; set; } = new List(); public virtual ICollection DimFieldDisplaySettings { get; set; } = new List(); diff --git a/aspnetcore/src/api/Models/Ttv/DimWebLink.cs b/aspnetcore/src/api/Models/Ttv/DimWebLink.cs index bbe8b7f..5de6e4d 100644 --- a/aspnetcore/src/api/Models/Ttv/DimWebLink.cs +++ b/aspnetcore/src/api/Models/Ttv/DimWebLink.cs @@ -47,6 +47,8 @@ public partial class DimWebLink public int? DimProfileOnlyFundingDecisionId { get; set; } + public int? DimResearchProjectId { get; set; } + public virtual DimCallProgramme DimCallProgramme { get; set; } public virtual DimFundingDecision DimFundingDecision { get; set; } diff --git a/aspnetcore/src/api/Models/Ttv/FactContribution.cs b/aspnetcore/src/api/Models/Ttv/FactContribution.cs index 1b46973..e54cecd 100644 --- a/aspnetcore/src/api/Models/Ttv/FactContribution.cs +++ b/aspnetcore/src/api/Models/Ttv/FactContribution.cs @@ -43,6 +43,8 @@ public partial class FactContribution public DateTime? Modified { get; set; } + public int DimResearchProjectId { get; set; } + public virtual DimDate DimDate { get; set; } public virtual DimFundingDecision DimFundingDecision { get; set; } diff --git a/aspnetcore/src/api/Models/Ttv/TtvContext.cs b/aspnetcore/src/api/Models/Ttv/TtvContext.cs index 646f349..51e923b 100644 --- a/aspnetcore/src/api/Models/Ttv/TtvContext.cs +++ b/aspnetcore/src/api/Models/Ttv/TtvContext.cs @@ -1,4110 +1,4230 @@ -using System; -using System.Collections.Generic; -using Microsoft.EntityFrameworkCore; - -namespace api.Models.Ttv; - -public partial class TtvContext : DbContext -{ - public TtvContext() - { - } - - public TtvContext(DbContextOptions options) - : base(options) - { - } - - public virtual DbSet BrDatasetDatasetRelationships { get; set; } - - public virtual DbSet BrFundingConsortiumParticipations { get; set; } - - public virtual DbSet BrGrantedPermissions { get; set; } - - public virtual DbSet BrParticipatesInFundingGroups { get; set; } - - public virtual DbSet BrServiceSubscriptions { get; set; } - - public virtual DbSet BrWordClusterDimFundingDecisions { get; set; } - - public virtual DbSet BrWordsDefineAClusters { get; set; } - - public virtual DbSet DimAffiliations { get; set; } - - public virtual DbSet DimCallProgrammes { get; set; } - - public virtual DbSet DimCompetences { get; set; } - - public virtual DbSet DimDates { get; set; } - - public virtual DbSet DimEducations { get; set; } - - public virtual DbSet DimEmailAddrresses { get; set; } - - public virtual DbSet DimEsfris { get; set; } - - public virtual DbSet DimEvents { get; set; } - - public virtual DbSet DimExternalServices { get; set; } - - public virtual DbSet DimFieldDisplaySettings { get; set; } - - public virtual DbSet DimFundingDecisions { get; set; } - - public virtual DbSet DimGeos { get; set; } - - public virtual DbSet DimIdentifierlessData { get; set; } - - public virtual DbSet DimInfrastructures { get; set; } - - public virtual DbSet DimKeywords { get; set; } - - public virtual DbSet DimKnownPeople { get; set; } - - public virtual DbSet DimLocallyReportedPubInfos { get; set; } - - public virtual DbSet DimMerils { get; set; } - - public virtual DbSet DimMinedWords { get; set; } - - public virtual DbSet DimNames { get; set; } - - public virtual DbSet DimNewsFeeds { get; set; } - - public virtual DbSet DimNewsItems { get; set; } - - public virtual DbSet DimOrganisationMedia { get; set; } - - public virtual DbSet DimOrganizations { get; set; } - - public virtual DbSet DimPids { get; set; } - - public virtual DbSet DimProfileOnlyDatasets { get; set; } - - public virtual DbSet DimProfileOnlyFundingDecisions { get; set; } - - public virtual DbSet DimProfileOnlyPublications { get; set; } - - public virtual DbSet DimProfileOnlyResearchActivities { get; set; } - - public virtual DbSet DimPublications { get; set; } - - public virtual DbSet DimPublicationChannels { get; set; } - - public virtual DbSet DimPurposes { get; set; } - - public virtual DbSet DimReferencedata { get; set; } - - public virtual DbSet DimRegisteredDataSources { get; set; } - - public virtual DbSet DimResearchActivities { get; set; } - - public virtual DbSet DimResearchActivityDimKeywords { get; set; } - - public virtual DbSet DimResearchCommunities { get; set; } - - public virtual DbSet DimResearchDataCatalogs { get; set; } - - public virtual DbSet DimResearchDatasets { get; set; } - - public virtual DbSet DimResearcherDescriptions { get; set; } - - public virtual DbSet DimResearcherToResearchCommunities { get; set; } - - public virtual DbSet DimSectors { get; set; } - - public virtual DbSet DimServices { get; set; } - - public virtual DbSet DimServicePoints { get; set; } - - public virtual DbSet DimTelephoneNumbers { get; set; } - - public virtual DbSet DimTypeOfFundings { get; set; } - - public virtual DbSet DimUserChoices { get; set; } - - public virtual DbSet DimUserProfiles { get; set; } - - public virtual DbSet DimWebLinks { get; set; } - - public virtual DbSet DimWordClusters { get; set; } - - public virtual DbSet FactContributions { get; set; } - - public virtual DbSet FactDimReferencedataFieldOfSciences { get; set; } - - public virtual DbSet FactFieldValues { get; set; } - - public virtual DbSet FactInfraKeywords { get; set; } - - public virtual DbSet FactUpkeeps { get; set; } - - protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) - => optionsBuilder.UseSqlServer("Name=ConnectionStrings:DefaultConnection"); - - protected override void OnModelCreating(ModelBuilder modelBuilder) - { - modelBuilder.Entity(entity => - { - entity.HasKey(e => new { e.DimResearchDatasetId, e.DimResearchDatasetId2 }).HasName("PK__br_datas__9FEA685A8D199EEE"); - - entity.ToTable("br_dataset_dataset_relationship"); - - entity.Property(e => e.DimResearchDatasetId).HasColumnName("dim_research_dataset_id"); - entity.Property(e => e.DimResearchDatasetId2).HasColumnName("dim_research_dataset_id2"); +using System; +using System.Collections.Generic; +using Microsoft.EntityFrameworkCore; + +namespace api.Models.Ttv; + +public partial class TtvContext : DbContext +{ + public TtvContext() + { + } + + public TtvContext(DbContextOptions options) + : base(options) + { + } + + public virtual DbSet BrDatasetDatasetRelationships { get; set; } + + public virtual DbSet BrFundingConsortiumParticipations { get; set; } + + public virtual DbSet BrGrantedPermissions { get; set; } + + public virtual DbSet BrParticipatesInFundingGroups { get; set; } + + public virtual DbSet BrServiceSubscriptions { get; set; } + + public virtual DbSet BrWordClusterDimFundingDecisions { get; set; } + + public virtual DbSet BrWordsDefineAClusters { get; set; } + + public virtual DbSet DimAffiliations { get; set; } + + public virtual DbSet DimCallDecisions { get; set; } + + public virtual DbSet DimCallProgrammes { get; set; } + + public virtual DbSet DimCompetences { get; set; } + + public virtual DbSet DimDates { get; set; } + + public virtual DbSet DimEducations { get; set; } + + public virtual DbSet DimEmailAddrresses { get; set; } + + public virtual DbSet DimEsfris { get; set; } + + public virtual DbSet DimEvents { get; set; } + + public virtual DbSet DimExternalServices { get; set; } + + public virtual DbSet DimFieldDisplaySettings { get; set; } + + public virtual DbSet DimFundingDecisions { get; set; } + + public virtual DbSet DimGeos { get; set; } + + public virtual DbSet DimIdentifierlessData { get; set; } + + public virtual DbSet DimInfrastructures { get; set; } + + public virtual DbSet DimKeywords { get; set; } + + public virtual DbSet DimKnownPeople { get; set; } + + public virtual DbSet DimLocallyReportedPubInfos { get; set; } + + public virtual DbSet DimMerils { get; set; } + + public virtual DbSet DimMinedWords { get; set; } + + public virtual DbSet DimNames { get; set; } + + public virtual DbSet DimNewsFeeds { get; set; } + + public virtual DbSet DimNewsItems { get; set; } + + public virtual DbSet DimOrganisationMedia { get; set; } + + public virtual DbSet DimOrganizations { get; set; } + + public virtual DbSet DimPids { get; set; } + + public virtual DbSet DimProfileOnlyDatasets { get; set; } + + public virtual DbSet DimProfileOnlyFundingDecisions { get; set; } + + public virtual DbSet DimProfileOnlyPublications { get; set; } + + public virtual DbSet DimProfileOnlyResearchActivities { get; set; } + + public virtual DbSet DimPublications { get; set; } + + public virtual DbSet DimPublicationChannels { get; set; } + + public virtual DbSet DimPurposes { get; set; } + + public virtual DbSet DimReferencedata { get; set; } + + public virtual DbSet DimRegisteredDataSources { get; set; } + + public virtual DbSet DimResearchActivities { get; set; } + + public virtual DbSet DimResearchActivityDimKeywords { get; set; } + + public virtual DbSet DimResearchCommunities { get; set; } + + public virtual DbSet DimResearchDataCatalogs { get; set; } + + public virtual DbSet DimResearchDatasets { get; set; } + + public virtual DbSet DimResearchProjects { get; set; } + + public virtual DbSet DimResearcherDescriptions { get; set; } + + public virtual DbSet DimResearcherToResearchCommunities { get; set; } + + public virtual DbSet DimSectors { get; set; } + + public virtual DbSet DimServices { get; set; } + + public virtual DbSet DimServicePoints { get; set; } + + public virtual DbSet DimTelephoneNumbers { get; set; } + + public virtual DbSet DimTypeOfFundings { get; set; } + + public virtual DbSet DimUserChoices { get; set; } + + public virtual DbSet DimUserProfiles { get; set; } + + public virtual DbSet DimWebLinks { get; set; } + + public virtual DbSet DimWordClusters { get; set; } + + public virtual DbSet FactContributions { get; set; } + + public virtual DbSet FactDimReferencedataFieldOfSciences { get; set; } + + public virtual DbSet FactFieldValues { get; set; } + + public virtual DbSet FactInfraKeywords { get; set; } + + public virtual DbSet FactUpkeeps { get; set; } + + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) + => optionsBuilder.UseSqlServer("Name=ConnectionStrings:DefaultConnection"); + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.DimResearchDatasetId, e.DimResearchDatasetId2 }).HasName("PK__br_datas__9FEA685A42BC14F8"); + + entity.ToTable("br_dataset_dataset_relationship"); + + entity.Property(e => e.DimResearchDatasetId).HasColumnName("dim_research_dataset_id"); + entity.Property(e => e.DimResearchDatasetId2).HasColumnName("dim_research_dataset_id2"); entity.Property(e => e.Type) .HasMaxLength(255) .IsUnicode(false) - .HasColumnName("type"); + .HasColumnName("type"); entity.HasOne(d => d.DimResearchDataset).WithMany(p => p.BrDatasetDatasetRelationshipDimResearchDatasets) .HasForeignKey(d => d.DimResearchDatasetId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_dataset173300"); + .HasConstraintName("FKbr_dataset173300"); entity.HasOne(d => d.DimResearchDatasetId2Navigation).WithMany(p => p.BrDatasetDatasetRelationshipDimResearchDatasetId2Navigations) .HasForeignKey(d => d.DimResearchDatasetId2) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_dataset168991"); - }); + .HasConstraintName("FKbr_dataset168991"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => new { e.DimFundingDecisionId, e.DimOrganizationid }).HasName("PK__br_fundi__3DB567F8ABF72B46"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.DimFundingDecisionId, e.DimOrganizationid }).HasName("PK__br_fundi__3DB567F8049F75A0"); - entity.ToTable("br_funding_consortium_participation"); + entity.ToTable("br_funding_consortium_participation"); - entity.Property(e => e.DimFundingDecisionId).HasColumnName("dim_funding_decision_id"); - entity.Property(e => e.DimOrganizationid).HasColumnName("dim_organizationid"); - entity.Property(e => e.EndOfParticipation).HasColumnName("end_of_participation"); + entity.Property(e => e.DimFundingDecisionId).HasColumnName("dim_funding_decision_id"); + entity.Property(e => e.DimOrganizationid).HasColumnName("dim_organizationid"); + entity.Property(e => e.EndOfParticipation).HasColumnName("end_of_participation"); entity.Property(e => e.RoleInConsortium) .HasMaxLength(255) - .HasColumnName("role_in_consortium"); + .HasColumnName("role_in_consortium"); entity.Property(e => e.ShareOfFundingInEur) .HasColumnType("decimal(18, 2)") - .HasColumnName("share_of_funding_in_EUR"); + .HasColumnName("share_of_funding_in_EUR"); entity.HasOne(d => d.DimFundingDecision).WithMany(p => p.BrFundingConsortiumParticipations) .HasForeignKey(d => d.DimFundingDecisionId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_funding504308"); + .HasConstraintName("FKbr_funding504308"); entity.HasOne(d => d.DimOrganization).WithMany(p => p.BrFundingConsortiumParticipations) .HasForeignKey(d => d.DimOrganizationid) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_funding503907"); - }); + .HasConstraintName("FKbr_funding503907"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => new { e.DimUserProfileId, e.DimExternalServiceId, e.DimPermittedFieldGroup }).HasName("PK__br_grant__F51F7BCBD90F1E17"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.DimUserProfileId, e.DimExternalServiceId, e.DimPermittedFieldGroup }).HasName("PK__br_grant__F51F7BCBBAD8CEA9"); - entity.ToTable("br_granted_permissions"); + entity.ToTable("br_granted_permissions"); - entity.Property(e => e.DimUserProfileId).HasColumnName("dim_user_profile_id"); - entity.Property(e => e.DimExternalServiceId).HasColumnName("dim_external_service_id"); - entity.Property(e => e.DimPermittedFieldGroup).HasColumnName("dim_permitted_field_group"); + entity.Property(e => e.DimUserProfileId).HasColumnName("dim_user_profile_id"); + entity.Property(e => e.DimExternalServiceId).HasColumnName("dim_external_service_id"); + entity.Property(e => e.DimPermittedFieldGroup).HasColumnName("dim_permitted_field_group"); entity.HasOne(d => d.DimExternalService).WithMany(p => p.BrGrantedPermissions) .HasForeignKey(d => d.DimExternalServiceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_granted953402"); + .HasConstraintName("FKbr_granted953402"); entity.HasOne(d => d.DimPermittedFieldGroupNavigation).WithMany(p => p.BrGrantedPermissions) .HasForeignKey(d => d.DimPermittedFieldGroup) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("field group"); + .HasConstraintName("field group"); entity.HasOne(d => d.DimUserProfile).WithMany(p => p.BrGrantedPermissions) .HasForeignKey(d => d.DimUserProfileId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("permitted_services"); - }); + .HasConstraintName("permitted_services"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => new { e.DimFundingDecisionid, e.DimNameId }).HasName("PK__br_parti__5EC9BC6425248D7B"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.DimFundingDecisionid, e.DimNameId }).HasName("PK_br_participates_in_funding_group_1"); - entity.ToTable("br_participates_in_funding_group"); + entity.ToTable("br_participates_in_funding_group"); - entity.Property(e => e.DimFundingDecisionid).HasColumnName("dim_funding_decisionid"); - entity.Property(e => e.DimNameId).HasColumnName("dim_name_id"); - entity.Property(e => e.DimOrganizationId).HasColumnName("dim_organization_id"); - entity.Property(e => e.EndOfParticipation).HasColumnName("end_of_participation"); + entity.Property(e => e.DimFundingDecisionid).HasColumnName("dim_funding_decisionid"); + entity.Property(e => e.DimNameId).HasColumnName("dim_name_id"); + entity.Property(e => e.DimOrganizationId).HasColumnName("dim_organization_id"); + entity.Property(e => e.EndOfParticipation).HasColumnName("end_of_participation"); entity.Property(e => e.RoleInFundingGroup) .HasMaxLength(255) - .HasColumnName("role_in_funding_group"); + .HasColumnName("role_in_funding_group"); entity.Property(e => e.ShareOfFundingInEur) .HasColumnType("decimal(18, 2)") - .HasColumnName("share_of_funding_in_EUR"); + .HasColumnName("share_of_funding_in_EUR"); entity.Property(e => e.SourceId) .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.HasOne(d => d.DimFundingDecision).WithMany(p => p.BrParticipatesInFundingGroups) .HasForeignKey(d => d.DimFundingDecisionid) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_partici137682"); + .HasConstraintName("FKbr_partici137682"); entity.HasOne(d => d.DimName).WithMany(p => p.BrParticipatesInFundingGroups) .HasForeignKey(d => d.DimNameId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_partici869162"); + .HasConstraintName("FKbr_partici869162"); entity.HasOne(d => d.DimOrganization).WithMany(p => p.BrParticipatesInFundingGroups) .HasForeignKey(d => d.DimOrganizationId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("get_funding_in_name_of_org"); - }); + .HasConstraintName("get_funding_in_name_of_org"); + }); - modelBuilder.Entity(entity => - { + modelBuilder.Entity(entity => + { entity .HasNoKey() - .ToTable("br_service_subscription"); + .ToTable("br_service_subscription"); - entity.Property(e => e.DimExternalServiceId).HasColumnName("dim_external_service_id"); - entity.Property(e => e.DimUserProfileId).HasColumnName("dim_user_profile_id"); + entity.Property(e => e.DimExternalServiceId).HasColumnName("dim_external_service_id"); + entity.Property(e => e.DimUserProfileId).HasColumnName("dim_user_profile_id"); entity.HasOne(d => d.DimExternalService).WithMany() .HasForeignKey(d => d.DimExternalServiceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_service763943"); + .HasConstraintName("FKbr_service763943"); entity.HasOne(d => d.DimUserProfile).WithMany() .HasForeignKey(d => d.DimUserProfileId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("permitted services"); - }); + .HasConstraintName("permitted services"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => new { e.DimWordClusterId, e.DimFundingDecisionId }).HasName("PK__br_word___7D640B5A043D2C38"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.DimWordClusterId, e.DimFundingDecisionId }).HasName("PK__br_word___7D640B5A5D4D7F32"); - entity.ToTable("br_word_cluster_dim_funding_decision"); + entity.ToTable("br_word_cluster_dim_funding_decision"); - entity.Property(e => e.DimWordClusterId).HasColumnName("dim_word_cluster_id"); - entity.Property(e => e.DimFundingDecisionId).HasColumnName("dim_funding_decision_id"); + entity.Property(e => e.DimWordClusterId).HasColumnName("dim_word_cluster_id"); + entity.Property(e => e.DimFundingDecisionId).HasColumnName("dim_funding_decision_id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.HasOne(d => d.DimFundingDecision).WithMany(p => p.BrWordClusterDimFundingDecisions) .HasForeignKey(d => d.DimFundingDecisionId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_word_cl350721"); + .HasConstraintName("FKbr_word_cl350721"); entity.HasOne(d => d.DimWordCluster).WithMany(p => p.BrWordClusterDimFundingDecisions) .HasForeignKey(d => d.DimWordClusterId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_word_cl424955"); - }); + .HasConstraintName("FKbr_word_cl424955"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => new { e.DimMinedWordsId, e.DimWordClusterId }).HasName("PK__br_words__0602FA37415A3F94"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.DimMinedWordsId, e.DimWordClusterId }).HasName("PK__br_words__0602FA376B95D316"); - entity.ToTable("br_words_define_a_cluster"); + entity.ToTable("br_words_define_a_cluster"); - entity.Property(e => e.DimMinedWordsId).HasColumnName("dim_mined_words_id"); - entity.Property(e => e.DimWordClusterId).HasColumnName("dim_word_cluster_id"); + entity.Property(e => e.DimMinedWordsId).HasColumnName("dim_mined_words_id"); + entity.Property(e => e.DimWordClusterId).HasColumnName("dim_word_cluster_id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.HasOne(d => d.DimMinedWords).WithMany(p => p.BrWordsDefineAClusters) .HasForeignKey(d => d.DimMinedWordsId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_words_d537149"); + .HasConstraintName("FKbr_words_d537149"); entity.HasOne(d => d.DimWordCluster).WithMany(p => p.BrWordsDefineAClusters) .HasForeignKey(d => d.DimWordClusterId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_words_d714819"); - }); + .HasConstraintName("FKbr_words_d714819"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_affi__3213E83F9011D88A"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_affi__3213E83F0077CB53"); - entity.ToTable("dim_affiliation"); + entity.ToTable("dim_affiliation"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.AffiliationTypeEn) .HasMaxLength(255) - .HasColumnName("affiliation_type_en"); + .HasColumnName("affiliation_type_en"); entity.Property(e => e.AffiliationTypeFi) .HasMaxLength(255) - .HasColumnName("affiliation_type_fi"); + .HasColumnName("affiliation_type_fi"); entity.Property(e => e.AffiliationTypeSv) .HasMaxLength(255) - .HasColumnName("affiliation_type_sv"); + .HasColumnName("affiliation_type_sv"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DimKnownPersonId).HasColumnName("dim_known_person_id"); - entity.Property(e => e.DimOrganizationId).HasColumnName("dim_organization_id"); - entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); - entity.Property(e => e.EndDate).HasColumnName("end_date"); + .HasColumnName("created"); + entity.Property(e => e.DimKnownPersonId).HasColumnName("dim_known_person_id"); + entity.Property(e => e.DimOrganizationId).HasColumnName("dim_organization_id"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + entity.Property(e => e.EndDate).HasColumnName("end_date"); entity.Property(e => e.LocalIdentifier) .HasMaxLength(255) - .HasColumnName("local_identifier"); + .HasColumnName("local_identifier"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); - entity.Property(e => e.PositionCode).HasColumnName("position_code"); + .HasColumnName("modified"); + entity.Property(e => e.PositionCode).HasColumnName("position_code"); entity.Property(e => e.PositionNameEn) .HasMaxLength(255) - .HasColumnName("position_name_en"); + .HasColumnName("position_name_en"); entity.Property(e => e.PositionNameFi) .HasMaxLength(255) - .HasColumnName("position_name_fi"); + .HasColumnName("position_name_fi"); entity.Property(e => e.PositionNameSv) .HasMaxLength(255) - .HasColumnName("position_name_sv"); + .HasColumnName("position_name_sv"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); - entity.Property(e => e.StartDate).HasColumnName("start_date"); + .HasColumnName("source_id"); + entity.Property(e => e.StartDate).HasColumnName("start_date"); entity.HasOne(d => d.DimKnownPerson).WithMany(p => p.DimAffiliations) .HasForeignKey(d => d.DimKnownPersonId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_affili162369"); + .HasConstraintName("FKdim_affili162369"); entity.HasOne(d => d.DimOrganization).WithMany(p => p.DimAffiliations) .HasForeignKey(d => d.DimOrganizationId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_affili510828"); + .HasConstraintName("FKdim_affili510828"); entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.DimAffiliations) .HasForeignKey(d => d.DimRegisteredDataSourceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_affili501573"); + .HasConstraintName("FKdim_affili501573"); entity.HasOne(d => d.EndDateNavigation).WithMany(p => p.DimAffiliationEndDateNavigations) .HasForeignKey(d => d.EndDate) - .HasConstraintName("FKdim_affili435050"); + .HasConstraintName("FKdim_affili435050"); entity.HasOne(d => d.PositionCodeNavigation).WithMany(p => p.DimAffiliations) .HasForeignKey(d => d.PositionCode) - .HasConstraintName("FKdim_affili562212"); + .HasConstraintName("FKdim_affili562212"); entity.HasOne(d => d.StartDateNavigation).WithMany(p => p.DimAffiliationStartDateNavigations) .HasForeignKey(d => d.StartDate) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_affili706343"); - }); + .HasConstraintName("FKdim_affili706343"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_call__3213E83FDE9183B2"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_call__3213E83F0851E58E"); - entity.ToTable("dim_call_programme"); + entity.ToTable("dim_call_decisions", tb => tb.HasComment("Rahoituspäätöspaneeli")); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.CallProcessingPhase) + .IsRequired() + .HasMaxLength(255) + .HasComment("Rahoituspäätöspaneeli - Haun vaihe") + .HasColumnName("call_processing_phase"); + entity.Property(e => e.DecisionMaker).HasColumnName("decision_maker"); + entity.Property(e => e.DimCallProgrammeId).HasColumnName("dim_call_programme_id"); + entity.Property(e => e.DimDateIdApproval).HasColumnName("dim_date_id_approval"); + entity.Property(e => e.SourceDescription) + .HasMaxLength(255) + .HasColumnName("source_description"); + entity.Property(e => e.SourceId) + .HasMaxLength(255) + .HasColumnName("source_id"); + + entity.HasOne(d => d.DecisionMakerNavigation).WithMany(p => p.DimCallDecisions) + .HasForeignKey(d => d.DecisionMaker) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("decision_maker"); + + entity.HasOne(d => d.DimCallProgramme).WithMany(p => p.DimCallDecisions) + .HasForeignKey(d => d.DimCallProgrammeId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("FKdim_call_d831756"); + + entity.HasOne(d => d.DimDateIdApprovalNavigation).WithMany(p => p.DimCallDecisions) + .HasForeignKey(d => d.DimDateIdApproval) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("FKdim_call_d543999"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_call__3213E83FDE9183B2"); + + entity.ToTable("dim_call_programme"); + + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Abbreviation) .HasMaxLength(511) - .HasColumnName("abbreviation"); - entity.Property(e => e.ApplicationTermsEn).HasColumnName("application_terms_en"); - entity.Property(e => e.ApplicationTermsFi).HasColumnName("application_terms_fi"); - entity.Property(e => e.ApplicationTermsSv).HasColumnName("application_terms_sv"); + .HasColumnName("abbreviation"); + entity.Property(e => e.ApplicationTermsEn).HasColumnName("application_terms_en"); + entity.Property(e => e.ApplicationTermsFi).HasColumnName("application_terms_fi"); + entity.Property(e => e.ApplicationTermsSv).HasColumnName("application_terms_sv"); entity.Property(e => e.CallNameDetailsEn) .HasMaxLength(255) - .HasColumnName("call_name_details_en"); + .HasColumnName("call_name_details_en"); entity.Property(e => e.CallNameDetailsFi) .HasMaxLength(255) - .HasColumnName("call_name_details_fi"); + .HasColumnName("call_name_details_fi"); entity.Property(e => e.CallNameDetailsSv) .HasMaxLength(255) - .HasColumnName("call_name_details_sv"); - entity.Property(e => e.ContactInformation).HasColumnName("contact_information"); - entity.Property(e => e.ContinuousApplicationPeriod).HasColumnName("continuous_application_period"); + .HasColumnName("call_name_details_sv"); + entity.Property(e => e.ContactInformation).HasColumnName("contact_information"); + entity.Property(e => e.ContinuousApplicationPeriod).HasColumnName("continuous_application_period"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DescriptionEn).HasColumnName("description_en"); - entity.Property(e => e.DescriptionFi).HasColumnName("description_fi"); - entity.Property(e => e.DescriptionSv).HasColumnName("description_sv"); - entity.Property(e => e.DimCallProgrammeId).HasColumnName("dim_call_programme_id"); - entity.Property(e => e.DimDateIdDue).HasColumnName("dim_date_id_due"); - entity.Property(e => e.DimDateIdOpen).HasColumnName("dim_date_id_open"); - entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + .HasColumnName("created"); + entity.Property(e => e.DescriptionEn).HasColumnName("description_en"); + entity.Property(e => e.DescriptionFi).HasColumnName("description_fi"); + entity.Property(e => e.DescriptionSv).HasColumnName("description_sv"); + entity.Property(e => e.DimCallProgrammeId).HasColumnName("dim_call_programme_id"); + entity.Property(e => e.DimDateIdDue).HasColumnName("dim_date_id_due"); + entity.Property(e => e.DimDateIdOpen).HasColumnName("dim_date_id_open"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); entity.Property(e => e.DueDateDueTime) .HasPrecision(0) - .HasColumnName("due_date_due_time"); + .HasColumnName("due_date_due_time"); entity.Property(e => e.EuCallId) .HasMaxLength(511) - .HasColumnName("eu_call_id"); - entity.Property(e => e.IsOpenCall).HasColumnName("is_open_call"); + .HasColumnName("eu_call_id"); + entity.Property(e => e.IsOpenCall).HasColumnName("is_open_call"); + entity.Property(e => e.LocalIdentifier) + .HasMaxLength(255) + .HasColumnName("local_identifier"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.NameEn) .HasMaxLength(511) - .HasColumnName("name_en"); + .HasColumnName("name_en"); entity.Property(e => e.NameFi) .HasMaxLength(511) - .HasColumnName("name_fi"); + .HasColumnName("name_fi"); entity.Property(e => e.NameSv) .HasMaxLength(511) - .HasColumnName("name_sv"); + .HasColumnName("name_sv"); entity.Property(e => e.NameUnd) .HasMaxLength(511) - .HasColumnName("name_und"); + .HasColumnName("name_und"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.Property(e => e.SourceProgrammeId) .HasMaxLength(55) - .HasColumnName("source_programme_id"); + .HasColumnName("source_programme_id"); + entity.Property(e => e.TypeOfFunding).HasColumnName("type_of_funding"); + + entity.HasOne(d => d.DimCallProgrammeNavigation).WithMany(p => p.InverseDimCallProgrammeNavigation) + .HasForeignKey(d => d.DimCallProgrammeId) + .HasConstraintName("parent_programme"); entity.HasOne(d => d.DimDateIdDueNavigation).WithMany(p => p.DimCallProgrammeDimDateIdDueNavigations) .HasForeignKey(d => d.DimDateIdDue) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("open "); + .HasConstraintName("open "); entity.HasOne(d => d.DimDateIdOpenNavigation).WithMany(p => p.DimCallProgrammeDimDateIdOpenNavigations) .HasForeignKey(d => d.DimDateIdOpen) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("close"); + .HasConstraintName("close"); entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.DimCallProgrammes) .HasForeignKey(d => d.DimRegisteredDataSourceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_call_p102028"); + .HasConstraintName("FKdim_call_p102028"); - entity.HasMany(d => d.DimCallProgrammeId2s).WithMany(p => p.DimCallProgrammes) - .UsingEntity>( - "BrCallProgrammeDimCallProgramme", + entity.HasOne(d => d.TypeOfFundingNavigation).WithMany(p => p.DimCallProgrammesNavigation) + .HasForeignKey(d => d.TypeOfFunding) + .HasConstraintName("type_of_funding"); + + entity.HasMany(d => d.DimCallProgrammeId2s).WithMany(p => p.DimCallProgrammes) + .UsingEntity>( + "BrCallProgrammeDimCallProgramme", r => r.HasOne().WithMany() .HasForeignKey("DimCallProgrammeId2") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_call_pr785575"), + .HasConstraintName("FKbr_call_pr785575"), l => l.HasOne().WithMany() .HasForeignKey("DimCallProgrammeId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("belongs to / a part of "), - j => - { - j.HasKey("DimCallProgrammeId", "DimCallProgrammeId2").HasName("PK__br_call___6F0CEDFBC6832712"); - j.ToTable("br_call_programme_dim_call_programme"); - j.IndexerProperty("DimCallProgrammeId").HasColumnName("dim_call_programme_id"); - j.IndexerProperty("DimCallProgrammeId2").HasColumnName("dim_call_programme_id2"); - }); - - entity.HasMany(d => d.DimCallProgrammes).WithMany(p => p.DimCallProgrammeId2s) - .UsingEntity>( - "BrCallProgrammeDimCallProgramme", + .HasConstraintName("belongs to / a part of "), + j => + { + j.HasKey("DimCallProgrammeId", "DimCallProgrammeId2").HasName("PK__br_call___6F0CEDFB0AA05110"); + j.ToTable("br_call_programme_dim_call_programme"); + j.IndexerProperty("DimCallProgrammeId").HasColumnName("dim_call_programme_id"); + j.IndexerProperty("DimCallProgrammeId2").HasColumnName("dim_call_programme_id2"); + }); + + entity.HasMany(d => d.DimCallProgrammes).WithMany(p => p.DimCallProgrammeId2s) + .UsingEntity>( + "BrCallProgrammeDimCallProgramme", r => r.HasOne().WithMany() .HasForeignKey("DimCallProgrammeId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("belongs to / a part of "), + .HasConstraintName("belongs to / a part of "), l => l.HasOne().WithMany() .HasForeignKey("DimCallProgrammeId2") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_call_pr785575"), - j => - { - j.HasKey("DimCallProgrammeId", "DimCallProgrammeId2").HasName("PK__br_call___6F0CEDFBC6832712"); - j.ToTable("br_call_programme_dim_call_programme"); - j.IndexerProperty("DimCallProgrammeId").HasColumnName("dim_call_programme_id"); - j.IndexerProperty("DimCallProgrammeId2").HasColumnName("dim_call_programme_id2"); - }); - - entity.HasMany(d => d.DimReferencedata).WithMany(p => p.DimCallProgrammes) - .UsingEntity>( - "BrDimReferencedataDimCallProgramme", + .HasConstraintName("FKbr_call_pr785575"), + j => + { + j.HasKey("DimCallProgrammeId", "DimCallProgrammeId2").HasName("PK__br_call___6F0CEDFB0AA05110"); + j.ToTable("br_call_programme_dim_call_programme"); + j.IndexerProperty("DimCallProgrammeId").HasColumnName("dim_call_programme_id"); + j.IndexerProperty("DimCallProgrammeId2").HasColumnName("dim_call_programme_id2"); + }); + + entity.HasMany(d => d.DimReferencedata).WithMany(p => p.DimCallProgrammes) + .UsingEntity>( + "BrDimReferencedataDimCallProgramme", r => r.HasOne().WithMany() .HasForeignKey("DimReferencedataId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_dim_ref172472"), + .HasConstraintName("FKbr_dim_ref172472"), l => l.HasOne().WithMany() .HasForeignKey("DimCallProgrammeId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("has disciplines"), - j => - { - j.HasKey("DimCallProgrammeId", "DimReferencedataId").HasName("PK__br_dim_r__0A5B885D68D6B6BA"); - j.ToTable("br_dim_referencedata_dim_call_programme"); - j.IndexerProperty("DimCallProgrammeId").HasColumnName("dim_call_programme_id"); - j.IndexerProperty("DimReferencedataId").HasColumnName("dim_referencedata_id"); - }); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_comp__3213E83F85F9CED1"); - - entity.ToTable("dim_competence"); - - entity.Property(e => e.Id).HasColumnName("id"); - entity.Property(e => e.CompetenceType).HasColumnName("competence_type"); + .HasConstraintName("has disciplines"), + j => + { + j.HasKey("DimCallProgrammeId", "DimReferencedataId").HasName("PK__br_dim_r__0A5B885D12A8CA2F"); + j.ToTable("br_dim_referencedata_dim_call_programme"); + j.IndexerProperty("DimCallProgrammeId").HasColumnName("dim_call_programme_id"); + j.IndexerProperty("DimReferencedataId").HasColumnName("dim_referencedata_id"); + }); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_comp__3213E83FC39C2F2A"); + + entity.ToTable("dim_competence"); + + entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.CompetenceType).HasColumnName("competence_type"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.DescriptionEn) .HasMaxLength(4000) - .HasColumnName("description_en"); + .HasColumnName("description_en"); entity.Property(e => e.DescriptionFi) .HasMaxLength(4000) - .HasColumnName("description_fi"); + .HasColumnName("description_fi"); entity.Property(e => e.DescriptionSv) .HasMaxLength(4000) - .HasColumnName("description_sv"); - entity.Property(e => e.DimKnownPersonId).HasColumnName("dim_known_person_id"); - entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); - entity.Property(e => e.LocalIdentifier).HasColumnName("local_identifier"); + .HasColumnName("description_sv"); + entity.Property(e => e.DimKnownPersonId).HasColumnName("dim_known_person_id"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + entity.Property(e => e.LocalIdentifier).HasColumnName("local_identifier"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.NameEn) .HasMaxLength(4000) - .HasColumnName("name_en"); + .HasColumnName("name_en"); entity.Property(e => e.NameFi) .HasMaxLength(4000) - .HasColumnName("name_fi"); + .HasColumnName("name_fi"); entity.Property(e => e.NameSv) .HasMaxLength(4000) - .HasColumnName("name_sv"); + .HasColumnName("name_sv"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.HasOne(d => d.DimKnownPerson).WithMany(p => p.DimCompetences) .HasForeignKey(d => d.DimKnownPersonId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("competence"); + .HasConstraintName("competence"); entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.DimCompetences) .HasForeignKey(d => d.DimRegisteredDataSourceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_compet151101"); - }); + .HasConstraintName("FKdim_compet151101"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_date__3213E83F0F9EEE9B"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_date__3213E83FD03F9639"); - entity.ToTable("dim_date"); + entity.ToTable("dim_date"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.Day).HasColumnName("day"); + .HasColumnName("created"); + entity.Property(e => e.Day).HasColumnName("day"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); - entity.Property(e => e.Month).HasColumnName("month"); + .HasColumnName("modified"); + entity.Property(e => e.Month).HasColumnName("month"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); - entity.Property(e => e.Year).HasColumnName("year"); - }); + .HasColumnName("source_id"); + entity.Property(e => e.Year).HasColumnName("year"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_educ__3213E83F3BD34AC9"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_educ__3213E83F7D9B4525"); - entity.ToTable("dim_education"); + entity.ToTable("dim_education"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.Credits).HasColumnName("credits"); + .HasColumnName("created"); + entity.Property(e => e.Credits).HasColumnName("credits"); entity.Property(e => e.DegreeGrantingInstitutionName) .HasMaxLength(511) - .HasColumnName("degree_granting_institution_name"); + .HasColumnName("degree_granting_institution_name"); entity.Property(e => e.DegreeNameEn) .HasMaxLength(4000) - .HasColumnName("degree_name_en"); + .HasColumnName("degree_name_en"); entity.Property(e => e.DegreeNameFi) .HasMaxLength(4000) - .HasColumnName("degree_name_fi"); + .HasColumnName("degree_name_fi"); entity.Property(e => e.DegreeNameSv) .HasMaxLength(4000) - .HasColumnName("degree_name_sv"); + .HasColumnName("degree_name_sv"); entity.Property(e => e.DescriptionEn) .HasMaxLength(4000) - .HasColumnName("description_en"); + .HasColumnName("description_en"); entity.Property(e => e.DescriptionFi) .HasMaxLength(4000) - .HasColumnName("description_fi"); + .HasColumnName("description_fi"); entity.Property(e => e.DescriptionSv) .HasMaxLength(4000) - .HasColumnName("description_sv"); - entity.Property(e => e.DimEndDate).HasColumnName("dim_end_date"); - entity.Property(e => e.DimInstructionLanguage).HasColumnName("dim_instruction_language"); - entity.Property(e => e.DimKnownPersonId).HasColumnName("dim_known_person_id"); - entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); - entity.Property(e => e.DimStartDate).HasColumnName("dim_start_date"); + .HasColumnName("description_sv"); + entity.Property(e => e.DimEndDate).HasColumnName("dim_end_date"); + entity.Property(e => e.DimInstructionLanguage).HasColumnName("dim_instruction_language"); + entity.Property(e => e.DimKnownPersonId).HasColumnName("dim_known_person_id"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + entity.Property(e => e.DimStartDate).HasColumnName("dim_start_date"); entity.Property(e => e.LocalIdentifier) .HasMaxLength(255) - .HasColumnName("local_identifier"); + .HasColumnName("local_identifier"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.NameEn) .HasMaxLength(4000) - .HasColumnName("name_en"); + .HasColumnName("name_en"); entity.Property(e => e.NameFi) .HasMaxLength(4000) - .HasColumnName("name_fi"); + .HasColumnName("name_fi"); entity.Property(e => e.NameSv) .HasMaxLength(4000) - .HasColumnName("name_sv"); + .HasColumnName("name_sv"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.HasOne(d => d.DimEndDateNavigation).WithMany(p => p.DimEducationDimEndDateNavigations) .HasForeignKey(d => d.DimEndDate) - .HasConstraintName("education end"); + .HasConstraintName("education end"); entity.HasOne(d => d.DimInstructionLanguageNavigation).WithMany(p => p.DimEducations) .HasForeignKey(d => d.DimInstructionLanguage) - .HasConstraintName("FKdim_educat732488"); + .HasConstraintName("FKdim_educat732488"); entity.HasOne(d => d.DimKnownPerson).WithMany(p => p.DimEducations) .HasForeignKey(d => d.DimKnownPersonId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("education"); + .HasConstraintName("education"); entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.DimEducations) .HasForeignKey(d => d.DimRegisteredDataSourceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_educat81864"); + .HasConstraintName("FKdim_educat81864"); entity.HasOne(d => d.DimStartDateNavigation).WithMany(p => p.DimEducationDimStartDateNavigations) .HasForeignKey(d => d.DimStartDate) - .HasConstraintName("education start"); - }); + .HasConstraintName("education start"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_emai__3213E83FDC54F493"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_emai__3213E83FEC9ACF71"); - entity.ToTable("dim_email_addrress"); + entity.ToTable("dim_email_addrress"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DimKnownPersonId).HasColumnName("dim_known_person_id"); - entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + .HasColumnName("created"); + entity.Property(e => e.DimKnownPersonId).HasColumnName("dim_known_person_id"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); entity.Property(e => e.Email) .HasMaxLength(255) - .HasColumnName("email"); + .HasColumnName("email"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.HasOne(d => d.DimKnownPerson).WithMany(p => p.DimEmailAddrresses) .HasForeignKey(d => d.DimKnownPersonId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_email_322546"); + .HasConstraintName("FKdim_email_322546"); entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.DimEmailAddrresses) .HasForeignKey(d => d.DimRegisteredDataSourceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_email_341396"); - }); + .HasConstraintName("FKdim_email_341396"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_esfr__3213E83F8D84F8F3"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_esfr__3213E83FC4B6A391"); - entity.ToTable("dim_esfri"); + entity.ToTable("dim_esfri"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.NameEn) .HasMaxLength(255) .IsUnicode(false) - .HasColumnName("name_en"); + .HasColumnName("name_en"); entity.Property(e => e.NameFi) .HasMaxLength(255) .IsUnicode(false) - .HasColumnName("name_fi"); + .HasColumnName("name_fi"); entity.Property(e => e.NameSv) .HasMaxLength(255) .IsUnicode(false) - .HasColumnName("name_sv"); + .HasColumnName("name_sv"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); - entity.HasMany(d => d.DimInfrastructures).WithMany(p => p.DimEsfris) - .UsingEntity>( - "BrEsfriDimInfrastructure", + entity.HasMany(d => d.DimInfrastructures).WithMany(p => p.DimEsfris) + .UsingEntity>( + "BrEsfriDimInfrastructure", r => r.HasOne().WithMany() .HasForeignKey("DimInfrastructureId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_esfri_d490989"), + .HasConstraintName("FKbr_esfri_d490989"), l => l.HasOne().WithMany() .HasForeignKey("DimEsfriId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_esfri_d559740"), - j => - { - j.HasKey("DimEsfriId", "DimInfrastructureId").HasName("PK__br_esfri__A4A0FE10AD4EF08B"); - j.ToTable("br_esfri_dim_infrastructure"); - j.IndexerProperty("DimEsfriId").HasColumnName("dim_esfri_id"); - j.IndexerProperty("DimInfrastructureId").HasColumnName("dim_infrastructure_id"); - }); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_even__3213E83FC39C8614"); - - entity.ToTable("dim_event"); - - entity.Property(e => e.Id).HasColumnName("id"); + .HasConstraintName("FKbr_esfri_d559740"), + j => + { + j.HasKey("DimEsfriId", "DimInfrastructureId").HasName("PK__br_esfri__A4A0FE10A76756CD"); + j.ToTable("br_esfri_dim_infrastructure"); + j.IndexerProperty("DimEsfriId").HasColumnName("dim_esfri_id"); + j.IndexerProperty("DimInfrastructureId").HasColumnName("dim_infrastructure_id"); + }); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_even__3213E83FDBEE5880"); + + entity.ToTable("dim_event"); + + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DimDateIdEndDate).HasColumnName("dim_date_id_end_date"); - entity.Property(e => e.DimDateIdStartDate).HasColumnName("dim_date_id_start_date"); - entity.Property(e => e.DimGeoIdEventCountry).HasColumnName("dim_geo_id_event_country"); - entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + .HasColumnName("created"); + entity.Property(e => e.DimDateIdEndDate).HasColumnName("dim_date_id_end_date"); + entity.Property(e => e.DimDateIdStartDate).HasColumnName("dim_date_id_start_date"); + entity.Property(e => e.DimGeoIdEventCountry).HasColumnName("dim_geo_id_event_country"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); entity.Property(e => e.EventLocationText) .HasMaxLength(255) - .HasColumnName("event_location_text"); + .HasColumnName("event_location_text"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.NameEn) .HasMaxLength(400) - .HasColumnName("name_en"); + .HasColumnName("name_en"); entity.Property(e => e.NameFi) .HasMaxLength(400) - .HasColumnName("name_fi"); + .HasColumnName("name_fi"); entity.Property(e => e.NameSv) .HasMaxLength(400) - .HasColumnName("name_sv"); + .HasColumnName("name_sv"); entity.Property(e => e.NameUnd) .HasMaxLength(255) - .HasColumnName("name_und"); + .HasColumnName("name_und"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.HasOne(d => d.DimDateIdEndDateNavigation).WithMany(p => p.DimEventDimDateIdEndDateNavigations) .HasForeignKey(d => d.DimDateIdEndDate) - .HasConstraintName("end_date"); + .HasConstraintName("end_date"); entity.HasOne(d => d.DimDateIdStartDateNavigation).WithMany(p => p.DimEventDimDateIdStartDateNavigations) .HasForeignKey(d => d.DimDateIdStartDate) - .HasConstraintName("start_date"); + .HasConstraintName("start_date"); entity.HasOne(d => d.DimGeoIdEventCountryNavigation).WithMany(p => p.DimEvents) .HasForeignKey(d => d.DimGeoIdEventCountry) - .HasConstraintName("event_location"); + .HasConstraintName("event_location"); entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.DimEvents) .HasForeignKey(d => d.DimRegisteredDataSourceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_event492051"); - }); + .HasConstraintName("FKdim_event492051"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_exte__3213E83F97A37F9B"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_exte__3213E83FBB7678D2"); - entity.ToTable("dim_external_service"); + entity.ToTable("dim_external_service"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.Description) .HasMaxLength(255) .IsUnicode(false) - .HasColumnName("description"); - entity.Property(e => e.DimOrganizationId).HasColumnName("dim_organization_id"); + .HasColumnName("description"); + entity.Property(e => e.DimOrganizationId).HasColumnName("dim_organization_id"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.Name) .HasMaxLength(255) - .HasColumnName("name"); + .HasColumnName("name"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.HasOne(d => d.DimOrganization).WithMany(p => p.DimExternalServices) .HasForeignKey(d => d.DimOrganizationId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_extern413099"); - }); + .HasConstraintName("FKdim_extern413099"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_fiel__3213E83F5AE2342B"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_fiel__3213E83F667BE9CF"); - entity.ToTable("dim_field_display_settings"); + entity.ToTable("dim_field_display_settings"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DimUserProfileId).HasColumnName("dim_user_profile_id"); - entity.Property(e => e.FieldIdentifier).HasColumnName("field_identifier"); + .HasColumnName("created"); + entity.Property(e => e.DimUserProfileId).HasColumnName("dim_user_profile_id"); + entity.Property(e => e.FieldIdentifier).HasColumnName("field_identifier"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); - entity.Property(e => e.Show).HasColumnName("show"); + .HasColumnName("modified"); + entity.Property(e => e.Show).HasColumnName("show"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.HasOne(d => d.DimUserProfile).WithMany(p => p.DimFieldDisplaySettings) .HasForeignKey(d => d.DimUserProfileId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_field_653425"); + .HasConstraintName("FKdim_field_653425"); - entity.HasMany(d => d.DimRegisteredDataSources).WithMany(p => p.DimFieldDisplaySettings) - .UsingEntity>( - "BrFieldDisplaySettingsDimRegisteredDataSource", + entity.HasMany(d => d.DimRegisteredDataSources).WithMany(p => p.DimFieldDisplaySettings) + .UsingEntity>( + "BrFieldDisplaySettingsDimRegisteredDataSource", r => r.HasOne().WithMany() .HasForeignKey("DimRegisteredDataSourceId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_field_d115264"), + .HasConstraintName("FKbr_field_d115264"), l => l.HasOne().WithMany() .HasForeignKey("DimFieldDisplaySettingsId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_field_d783303"), - j => - { - j.HasKey("DimFieldDisplaySettingsId", "DimRegisteredDataSourceId").HasName("PK__br_field__6148A772D0543F96"); - 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"); - }); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_fund__3213E83FC754B6DF"); - - entity.ToTable("dim_funding_decision"); - - entity.Property(e => e.Id).HasColumnName("id"); + .HasConstraintName("FKbr_field_d783303"), + j => + { + j.HasKey("DimFieldDisplaySettingsId", "DimRegisteredDataSourceId").HasName("PK__br_field__6148A77214B78981"); + 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"); + }); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_fund__3213E83FA88E0958"); + + entity.ToTable("dim_funding_decision"); + + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Acronym) .HasMaxLength(255) .IsUnicode(false) - .HasColumnName("acronym"); + .HasColumnName("acronym"); entity.Property(e => e.AmountInEur) .HasColumnType("decimal(18, 2)") - .HasColumnName("amount_in_EUR"); + .HasColumnName("amount_in_EUR"); entity.Property(e => e.AmountInFundingDecisionCurrency) .HasColumnType("decimal(18, 2)") - .HasColumnName("amount_in_funding_decision_currency"); + .HasColumnName("amount_in_funding_decision_currency"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DescriptionEn).HasColumnName("description_en"); - entity.Property(e => e.DescriptionFi).HasColumnName("description_fi"); - entity.Property(e => e.DescriptionSv).HasColumnName("description_sv"); - entity.Property(e => e.DimCallProgrammeId).HasColumnName("dim_call_programme_id"); - entity.Property(e => e.DimDateIdApproval).HasColumnName("dim_date_id_approval"); - entity.Property(e => e.DimDateIdEnd).HasColumnName("dim_date_id_end"); - entity.Property(e => e.DimDateIdStart).HasColumnName("dim_date_id_start"); - entity.Property(e => e.DimFundingDecisionIdParentDecision).HasColumnName("dim_funding_decision_id_parent_decision"); - entity.Property(e => e.DimGeoId).HasColumnName("dim_geo_id"); - entity.Property(e => e.DimNameIdContactPerson).HasColumnName("dim_name_id_contact_person"); - entity.Property(e => e.DimOrganizationIdFunder).HasColumnName("dim_organization_id_funder"); + .HasColumnName("created"); + entity.Property(e => e.DescriptionEn).HasColumnName("description_en"); + entity.Property(e => e.DescriptionFi).HasColumnName("description_fi"); + entity.Property(e => e.DescriptionSv).HasColumnName("description_sv"); + entity.Property(e => e.DimCallDecisionsId) + .HasComment("Rahoituspäätös - Päätöspaneeli") + .HasColumnName("dim_call_decisions_id"); + entity.Property(e => e.DimCallProgrammeId).HasColumnName("dim_call_programme_id"); + entity.Property(e => e.DimDateIdApproval).HasColumnName("dim_date_id_approval"); + entity.Property(e => e.DimDateIdEnd).HasColumnName("dim_date_id_end"); + entity.Property(e => e.DimDateIdStart).HasColumnName("dim_date_id_start"); + entity.Property(e => e.DimFundingDecisionIdParentDecision).HasColumnName("dim_funding_decision_id_parent_decision"); + entity.Property(e => e.DimGeoId).HasColumnName("dim_geo_id"); + entity.Property(e => e.DimNameIdContactPerson).HasColumnName("dim_name_id_contact_person"); + entity.Property(e => e.DimOrganizationIdFunder).HasColumnName("dim_organization_id_funder"); entity.Property(e => e.DimPidPidContent) .HasMaxLength(255) - .HasColumnName("dim_pid_pid_content"); - entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); - entity.Property(e => e.DimTypeOfFundingId).HasColumnName("dim_type_of_funding_id"); + .HasColumnName("dim_pid_pid_content"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + entity.Property(e => e.DimTypeOfFundingId).HasColumnName("dim_type_of_funding_id"); entity.Property(e => e.FunderProjectNumber) .HasMaxLength(255) - .HasColumnName("funder_project_number"); + .HasComment("Päätöksen paikallinen tunniste (tiedon toimittajan)") + .HasColumnName("funder_project_number"); entity.Property(e => e.FundingDecisionCurrencyAbbreviation) .HasMaxLength(255) - .HasColumnName("funding_decision_currency_abbreviation"); - entity.Property(e => e.HasBusinessCollaboration).HasColumnName("has_business_collaboration"); - entity.Property(e => e.HasInternationalCollaboration).HasColumnName("has_international_collaboration"); + .HasColumnName("funding_decision_currency_abbreviation"); + entity.Property(e => e.HasBusinessCollaboration).HasColumnName("has_business_collaboration"); + entity.Property(e => e.HasInternationalCollaboration).HasColumnName("has_international_collaboration"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); - entity.Property(e => e.NameEn).HasColumnName("name_en"); - entity.Property(e => e.NameFi).HasColumnName("name_fi"); - entity.Property(e => e.NameSv).HasColumnName("name_sv"); - entity.Property(e => e.NameUnd).HasColumnName("name_und"); + .HasColumnName("modified"); + entity.Property(e => e.NameEn).HasColumnName("name_en"); + entity.Property(e => e.NameFi).HasColumnName("name_fi"); + entity.Property(e => e.NameSv).HasColumnName("name_sv"); + entity.Property(e => e.NameUnd).HasColumnName("name_und"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); + + entity.HasOne(d => d.DimCallDecisions).WithMany(p => p.DimFundingDecisions) + .HasForeignKey(d => d.DimCallDecisionsId) + .HasConstraintName("FKdim_fundin257658"); entity.HasOne(d => d.DimCallProgramme).WithMany(p => p.DimFundingDecisions) .HasForeignKey(d => d.DimCallProgrammeId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("programme"); + .HasConstraintName("programme"); entity.HasOne(d => d.DimDateIdApprovalNavigation).WithMany(p => p.DimFundingDecisionDimDateIdApprovalNavigations) .HasForeignKey(d => d.DimDateIdApproval) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("project start"); + .HasConstraintName("project start"); entity.HasOne(d => d.DimDateIdEndNavigation).WithMany(p => p.DimFundingDecisionDimDateIdEndNavigations) .HasForeignKey(d => d.DimDateIdEnd) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("approval"); + .HasConstraintName("approval"); entity.HasOne(d => d.DimDateIdStartNavigation).WithMany(p => p.DimFundingDecisionDimDateIdStartNavigations) .HasForeignKey(d => d.DimDateIdStart) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("project end"); + .HasConstraintName("project end"); entity.HasOne(d => d.DimFundingDecisionIdParentDecisionNavigation).WithMany(p => p.InverseDimFundingDecisionIdParentDecisionNavigation) .HasForeignKey(d => d.DimFundingDecisionIdParentDecision) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("Parent decision"); + .HasConstraintName("Parent decision"); entity.HasOne(d => d.DimGeo).WithMany(p => p.DimFundingDecisions) .HasForeignKey(d => d.DimGeoId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("Where work is to be carried out"); + .HasConstraintName("Where work is to be carried out"); entity.HasOne(d => d.DimNameIdContactPersonNavigation).WithMany(p => p.DimFundingDecisions) .HasForeignKey(d => d.DimNameIdContactPerson) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("contact_person"); + .HasConstraintName("contact_person"); entity.HasOne(d => d.DimOrganizationIdFunderNavigation).WithMany(p => p.DimFundingDecisions) .HasForeignKey(d => d.DimOrganizationIdFunder) - .HasConstraintName("funder"); + .HasConstraintName("funder"); entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.DimFundingDecisions) .HasForeignKey(d => d.DimRegisteredDataSourceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_fundin282559"); + .HasConstraintName("FKdim_fundin282559"); entity.HasOne(d => d.DimTypeOfFunding).WithMany(p => p.DimFundingDecisions) .HasForeignKey(d => d.DimTypeOfFundingId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_fundin974924"); + .HasConstraintName("FKdim_fundin974924"); - entity.HasMany(d => d.DimFundingDecisionFroms).WithMany(p => p.DimFundingDecisionTos) - .UsingEntity>( - "BrPreviousFundingDecision", - r => r.HasOne().WithMany() - .HasForeignKey("DimFundingDecisionFromId") - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_previou481541"), - l => l.HasOne().WithMany() - .HasForeignKey("DimFundingDecisionToId") - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_previou440746"), - j => - { - j.HasKey("DimFundingDecisionFromId", "DimFundingDecisionToId").HasName("PK__br_previ__90966491D900CFFE"); - j.ToTable("br_previous_funding_decision"); - j.IndexerProperty("DimFundingDecisionFromId").HasColumnName("dim_funding_decision_from_id"); - j.IndexerProperty("DimFundingDecisionToId").HasColumnName("dim_funding_decision_to_id"); - }); - - entity.HasMany(d => d.DimFundingDecisionFromsNavigation).WithMany(p => p.DimFundingDecisionTosNavigation) - .UsingEntity>( - "BrRelatedFundingDecision", + entity.HasMany(d => d.DimFundingDecisionFroms).WithMany(p => p.DimFundingDecisionTos) + .UsingEntity>( + "BrRelatedFundingDecision", r => r.HasOne().WithMany() .HasForeignKey("DimFundingDecisionFromId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_related232364"), + .HasConstraintName("FKbr_related232364"), l => l.HasOne().WithMany() .HasForeignKey("DimFundingDecisionToId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_related689923"), - j => - { - j.HasKey("DimFundingDecisionFromId", "DimFundingDecisionToId").HasName("PK__br_relat__90966491B1C830A1"); - j.ToTable("br_related_funding_decision"); - j.IndexerProperty("DimFundingDecisionFromId").HasColumnName("dim_funding_decision_from_id"); - j.IndexerProperty("DimFundingDecisionToId").HasColumnName("dim_funding_decision_to_id"); - }); - - entity.HasMany(d => d.DimFundingDecisionTos).WithMany(p => p.DimFundingDecisionFroms) - .UsingEntity>( - "BrPreviousFundingDecision", + .HasConstraintName("FKbr_related689923"), + j => + { + j.HasKey("DimFundingDecisionFromId", "DimFundingDecisionToId").HasName("PK__br_relat__90966491CDC38E05"); + j.ToTable("br_related_funding_decision"); + j.IndexerProperty("DimFundingDecisionFromId").HasColumnName("dim_funding_decision_from_id"); + j.IndexerProperty("DimFundingDecisionToId").HasColumnName("dim_funding_decision_to_id"); + }); + + entity.HasMany(d => d.DimFundingDecisionTos).WithMany(p => p.DimFundingDecisionFroms) + .UsingEntity>( + "BrRelatedFundingDecision", r => r.HasOne().WithMany() .HasForeignKey("DimFundingDecisionToId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_previou440746"), + .HasConstraintName("FKbr_related689923"), l => l.HasOne().WithMany() .HasForeignKey("DimFundingDecisionFromId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_previou481541"), - j => - { - j.HasKey("DimFundingDecisionFromId", "DimFundingDecisionToId").HasName("PK__br_previ__90966491D900CFFE"); - j.ToTable("br_previous_funding_decision"); - j.IndexerProperty("DimFundingDecisionFromId").HasColumnName("dim_funding_decision_from_id"); - j.IndexerProperty("DimFundingDecisionToId").HasColumnName("dim_funding_decision_to_id"); - }); - - entity.HasMany(d => d.DimFundingDecisionTosNavigation).WithMany(p => p.DimFundingDecisionFromsNavigation) - .UsingEntity>( - "BrRelatedFundingDecision", - r => r.HasOne().WithMany() - .HasForeignKey("DimFundingDecisionToId") - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_related689923"), - l => l.HasOne().WithMany() - .HasForeignKey("DimFundingDecisionFromId") - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_related232364"), - j => - { - j.HasKey("DimFundingDecisionFromId", "DimFundingDecisionToId").HasName("PK__br_relat__90966491B1C830A1"); - j.ToTable("br_related_funding_decision"); - j.IndexerProperty("DimFundingDecisionFromId").HasColumnName("dim_funding_decision_from_id"); - j.IndexerProperty("DimFundingDecisionToId").HasColumnName("dim_funding_decision_to_id"); - }); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_geo__3213E83F9D80A8EC"); - - entity.ToTable("dim_geo"); - - entity.Property(e => e.Id).HasColumnName("id"); + .HasConstraintName("FKbr_related232364"), + j => + { + j.HasKey("DimFundingDecisionFromId", "DimFundingDecisionToId").HasName("PK__br_relat__90966491CDC38E05"); + j.ToTable("br_related_funding_decision"); + j.IndexerProperty("DimFundingDecisionFromId").HasColumnName("dim_funding_decision_from_id"); + j.IndexerProperty("DimFundingDecisionToId").HasColumnName("dim_funding_decision_to_id"); + }); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_geo__3213E83F16BA183D"); + + entity.ToTable("dim_geo"); + + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.CountryCode) .HasMaxLength(255) - .HasColumnName("country_code"); + .HasColumnName("country_code"); entity.Property(e => e.CountryEn) .HasMaxLength(255) - .HasColumnName("country_en"); + .HasColumnName("country_en"); entity.Property(e => e.CountryFi) .IsRequired() .HasMaxLength(255) - .HasColumnName("country_fi"); + .HasColumnName("country_fi"); entity.Property(e => e.CountryId) .IsRequired() .HasMaxLength(255) - .HasColumnName("country_id"); + .HasColumnName("country_id"); entity.Property(e => e.CountrySv) .HasMaxLength(255) - .HasColumnName("country_sv"); + .HasColumnName("country_sv"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.MunicipalityFi) .HasMaxLength(255) - .HasColumnName("municipality_fi"); + .HasColumnName("municipality_fi"); entity.Property(e => e.MunicipalityId) .HasMaxLength(255) - .HasColumnName("municipality_id"); + .HasColumnName("municipality_id"); entity.Property(e => e.MunicipalitySv) .HasMaxLength(255) - .HasColumnName("municipality_sv"); + .HasColumnName("municipality_sv"); entity.Property(e => e.RegionFi) .HasMaxLength(255) - .HasColumnName("region_fi"); + .HasColumnName("region_fi"); entity.Property(e => e.RegionId) .HasMaxLength(255) - .HasColumnName("region_id"); + .HasColumnName("region_id"); entity.Property(e => e.RegionSv) .HasMaxLength(255) - .HasColumnName("region_sv"); + .HasColumnName("region_sv"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); - }); + .HasColumnName("source_id"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_iden__3213E83FF2F29E53"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_iden__3213E83F3151E1E6"); - entity.ToTable("dim_identifierless_data"); + entity.ToTable("dim_identifierless_data"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DimIdentifierlessDataId).HasColumnName("dim_identifierless_data_id"); + .HasColumnName("created"); + entity.Property(e => e.DimIdentifierlessDataId).HasColumnName("dim_identifierless_data_id"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(4000) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.Property(e => e.Type) .HasMaxLength(255) .IsUnicode(false) - .HasColumnName("type"); + .HasColumnName("type"); entity.Property(e => e.UnlinkedIdentifier) .HasMaxLength(4000) - .HasColumnName("unlinked_identifier"); + .HasColumnName("unlinked_identifier"); entity.Property(e => e.ValueEn) .HasMaxLength(4000) - .HasColumnName("value_en"); + .HasColumnName("value_en"); entity.Property(e => e.ValueFi) .HasMaxLength(4000) - .HasColumnName("value_fi"); + .HasColumnName("value_fi"); entity.Property(e => e.ValueSv) .HasMaxLength(4000) - .HasColumnName("value_sv"); + .HasColumnName("value_sv"); entity.HasOne(d => d.DimIdentifierlessData).WithMany(p => p.InverseDimIdentifierlessData) .HasForeignKey(d => d.DimIdentifierlessDataId) - .HasConstraintName("parent_data"); - }); + .HasConstraintName("parent_data"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_infr__3213E83F38361AD9"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_infr__3213E83FEFBAEDA1"); - entity.ToTable("dim_infrastructure"); + entity.ToTable("dim_infrastructure"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Acronym) .HasMaxLength(255) .IsUnicode(false) - .HasColumnName("acronym"); + .HasColumnName("acronym"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.DescriptionEn) .HasMaxLength(4000) .IsUnicode(false) - .HasColumnName("description_en"); + .HasColumnName("description_en"); entity.Property(e => e.DescriptionFi) .HasMaxLength(4000) .IsUnicode(false) - .HasColumnName("description_fi"); + .HasColumnName("description_fi"); entity.Property(e => e.DescriptionSv) .HasMaxLength(4000) .IsUnicode(false) - .HasColumnName("description_sv"); - entity.Property(e => e.EndYear).HasColumnName("end_year"); - entity.Property(e => e.FinlandRoadmap).HasColumnName("finland_roadmap"); + .HasColumnName("description_sv"); + entity.Property(e => e.EndYear).HasColumnName("end_year"); + entity.Property(e => e.FinlandRoadmap).HasColumnName("finland_roadmap"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.NameEn) .HasMaxLength(4000) .IsUnicode(false) - .HasColumnName("name_en"); + .HasColumnName("name_en"); entity.Property(e => e.NameFi) .HasMaxLength(4000) .IsUnicode(false) - .HasColumnName("name_fi"); + .HasColumnName("name_fi"); entity.Property(e => e.NameSv) .HasMaxLength(4000) .IsUnicode(false) - .HasColumnName("name_sv"); - entity.Property(e => e.NextInfastructureId).HasColumnName("next_infastructure_id"); + .HasColumnName("name_sv"); + entity.Property(e => e.NextInfastructureId).HasColumnName("next_infastructure_id"); entity.Property(e => e.ScientificDescriptionEn) .HasMaxLength(4000) .IsUnicode(false) - .HasColumnName("scientific_description_en"); + .HasColumnName("scientific_description_en"); entity.Property(e => e.ScientificDescriptionFi) .HasMaxLength(4000) .IsUnicode(false) - .HasColumnName("scientific_description_fi"); + .HasColumnName("scientific_description_fi"); entity.Property(e => e.ScientificDescriptionSv) .HasMaxLength(4000) .IsUnicode(false) - .HasColumnName("scientific_description_sv"); + .HasColumnName("scientific_description_sv"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); - entity.Property(e => e.StartYear).HasColumnName("start_year"); + .HasColumnName("source_id"); + entity.Property(e => e.StartYear).HasColumnName("start_year"); entity.Property(e => e.Urn) .HasMaxLength(255) .IsUnicode(false) - .HasColumnName("urn"); + .HasColumnName("urn"); entity.HasOne(d => d.NextInfastructure).WithMany(p => p.InverseNextInfastructure) .HasForeignKey(d => d.NextInfastructureId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_infras462742"); - }); + .HasConstraintName("FKdim_infras462742"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_keyw__3213E83F905274A0"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_keyw__3213E83F83643615"); - entity.ToTable("dim_keyword"); + entity.ToTable("dim_keyword"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.ConceptUri) .HasMaxLength(255) - .HasColumnName("concept_uri"); + .HasColumnName("concept_uri"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DimKeywordCloseMatch).HasColumnName("dim_keyword_close_match"); - entity.Property(e => e.DimKeywordLanguageVariant).HasColumnName("dim_keyword_language_variant"); - entity.Property(e => e.DimKeywordRelated).HasColumnName("dim_keyword_related"); - entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + .HasColumnName("created"); + entity.Property(e => e.DimKeywordCloseMatch).HasColumnName("dim_keyword_close_match"); + entity.Property(e => e.DimKeywordLanguageVariant).HasColumnName("dim_keyword_language_variant"); + entity.Property(e => e.DimKeywordRelated).HasColumnName("dim_keyword_related"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); entity.Property(e => e.Keyword) .IsRequired() .HasMaxLength(255) - .HasColumnName("keyword"); + .HasColumnName("keyword"); entity.Property(e => e.Language) .HasMaxLength(255) - .HasColumnName("language"); + .HasColumnName("language"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.Scheme) .HasMaxLength(255) - .HasColumnName("scheme"); + .HasColumnName("scheme"); entity.Property(e => e.SchemeUri) .HasMaxLength(255) - .HasColumnName("scheme_uri"); + .HasColumnName("scheme_uri"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.HasOne(d => d.DimKeywordCloseMatchNavigation).WithMany(p => p.InverseDimKeywordCloseMatchNavigation) .HasForeignKey(d => d.DimKeywordCloseMatch) - .HasConstraintName("related"); + .HasConstraintName("related"); entity.HasOne(d => d.DimKeywordLanguageVariantNavigation).WithMany(p => p.InverseDimKeywordLanguageVariantNavigation) .HasForeignKey(d => d.DimKeywordLanguageVariant) - .HasConstraintName("language_variant"); + .HasConstraintName("language_variant"); entity.HasOne(d => d.DimKeywordRelatedNavigation).WithMany(p => p.InverseDimKeywordRelatedNavigation) .HasForeignKey(d => d.DimKeywordRelated) - .HasConstraintName("close_match"); + .HasConstraintName("close_match"); entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.DimKeywords) .HasForeignKey(d => d.DimRegisteredDataSourceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_keywor723976"); + .HasConstraintName("FKdim_keywor723976"); - entity.HasMany(d => d.DimFundingDecisions).WithMany(p => p.DimKeywords) - .UsingEntity>( - "BrKeywordDimFundingDecision", + entity.HasMany(d => d.DimFundingDecisions).WithMany(p => p.DimKeywords) + .UsingEntity>( + "BrKeywordDimFundingDecision", r => r.HasOne().WithMany() .HasForeignKey("DimFundingDecisionId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_keyword955130"), + .HasConstraintName("FKbr_keyword955130"), l => l.HasOne().WithMany() .HasForeignKey("DimKeywordId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_keyword224605"), - j => - { - j.HasKey("DimKeywordId", "DimFundingDecisionId").HasName("PK__br_keywo__8C7B929BDDE68A36"); - j.ToTable("br_keyword_dim_funding_decision"); - j.IndexerProperty("DimKeywordId").HasColumnName("dim_keyword_id"); - j.IndexerProperty("DimFundingDecisionId").HasColumnName("dim_funding_decision_id"); - }); - - entity.HasMany(d => d.DimPublications).WithMany(p => p.DimKeywords) - .UsingEntity>( - "BrKeywordDimPublication", + .HasConstraintName("FKbr_keyword224605"), + j => + { + j.HasKey("DimKeywordId", "DimFundingDecisionId").HasName("PK__br_keywo__8C7B929B2268F773"); + j.ToTable("br_keyword_dim_funding_decision"); + j.IndexerProperty("DimKeywordId").HasColumnName("dim_keyword_id"); + j.IndexerProperty("DimFundingDecisionId").HasColumnName("dim_funding_decision_id"); + }); + + entity.HasMany(d => d.DimPublications).WithMany(p => p.DimKeywords) + .UsingEntity>( + "BrKeywordDimPublication", r => r.HasOne().WithMany() .HasForeignKey("DimPublicationId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_keyword634640"), + .HasConstraintName("FKbr_keyword634640"), l => l.HasOne().WithMany() .HasForeignKey("DimKeywordId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_keyword944303"), - j => - { - j.HasKey("DimKeywordId", "DimPublicationId").HasName("PK__br_keywo__C6E31F1AB85BCEDC"); - j.ToTable("br_keyword_dim_publication"); - j.IndexerProperty("DimKeywordId").HasColumnName("dim_keyword_id"); - j.IndexerProperty("DimPublicationId").HasColumnName("dim_publication_id"); - }); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_know__3213E83F26294537"); - - entity.ToTable("dim_known_person"); - - entity.Property(e => e.Id).HasColumnName("id"); + .HasConstraintName("FKbr_keyword944303"), + j => + { + j.HasKey("DimKeywordId", "DimPublicationId").HasName("PK__br_keywo__C6E31F1AF3BA7AAC"); + j.ToTable("br_keyword_dim_publication"); + j.IndexerProperty("DimKeywordId").HasColumnName("dim_keyword_id"); + j.IndexerProperty("DimPublicationId").HasColumnName("dim_publication_id"); + }); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_know__3213E83F781FEC8F"); + + entity.ToTable("dim_known_person"); + + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + .HasColumnName("created"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.Property(e => e.SourceProjectId) .HasMaxLength(100) - .HasColumnName("source_project_id"); + .HasColumnName("source_project_id"); entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.DimKnownPeople) .HasForeignKey(d => d.DimRegisteredDataSourceId) - .HasConstraintName("FKdim_knownperson_regdatasource"); - }); + .HasConstraintName("FKdim_knownperson_regdatasource"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_loca__3213E83FDE0D8522"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_loca__3213E83FE72E4FBF"); - entity.ToTable("dim_locally_reported_pub_info"); + entity.ToTable("dim_locally_reported_pub_info"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DimPublicationid).HasColumnName("dim_publicationid"); + .HasColumnName("created"); + entity.Property(e => e.DimPublicationid).HasColumnName("dim_publicationid"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.SelfArchivedEmbargoDate) .HasColumnType("datetime") - .HasColumnName("self_archived_embargo_date"); - entity.Property(e => e.SelfArchivedLicenseCode).HasColumnName("self_archived_license_code"); + .HasColumnName("self_archived_embargo_date"); + entity.Property(e => e.SelfArchivedLicenseCode).HasColumnName("self_archived_license_code"); entity.Property(e => e.SelfArchivedType) .HasMaxLength(50) - .HasColumnName("self_archived_type"); + .HasColumnName("self_archived_type"); entity.Property(e => e.SelfArchivedUrl) .HasMaxLength(400) - .HasColumnName("self_archived_url"); - entity.Property(e => e.SelfArchivedVersionCode).HasColumnName("self_archived_version_code"); + .HasColumnName("self_archived_url"); + entity.Property(e => e.SelfArchivedVersionCode).HasColumnName("self_archived_version_code"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.HasOne(d => d.DimPublication).WithMany(p => p.DimLocallyReportedPubInfos) .HasForeignKey(d => d.DimPublicationid) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_locall183416"); + .HasConstraintName("FKdim_locall183416"); entity.HasOne(d => d.SelfArchivedLicenseCodeNavigation).WithMany(p => p.DimLocallyReportedPubInfoSelfArchivedLicenseCodeNavigations) .HasForeignKey(d => d.SelfArchivedLicenseCode) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("licence_code"); + .HasConstraintName("licence_code"); entity.HasOne(d => d.SelfArchivedVersionCodeNavigation).WithMany(p => p.DimLocallyReportedPubInfoSelfArchivedVersionCodeNavigations) .HasForeignKey(d => d.SelfArchivedVersionCode) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("version_code"); - }); + .HasConstraintName("version_code"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_meri__3213E83F92CBC137"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_meri__3213E83F8D89A53F"); - entity.ToTable("dim_meril"); + entity.ToTable("dim_meril"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.NameEn) .HasMaxLength(255) .IsUnicode(false) - .HasColumnName("name_en"); + .HasColumnName("name_en"); entity.Property(e => e.NameFi) .HasMaxLength(255) .IsUnicode(false) - .HasColumnName("name_fi"); + .HasColumnName("name_fi"); entity.Property(e => e.NameSv) .HasMaxLength(255) .IsUnicode(false) - .HasColumnName("name_sv"); + .HasColumnName("name_sv"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); - entity.HasMany(d => d.DimInfrastructures).WithMany(p => p.DimMerils) - .UsingEntity>( - "BrMerilDimInfrastructure", + entity.HasMany(d => d.DimInfrastructures).WithMany(p => p.DimMerils) + .UsingEntity>( + "BrMerilDimInfrastructure", r => r.HasOne().WithMany() .HasForeignKey("DimInfrastructureId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_meril_d901766"), + .HasConstraintName("FKbr_meril_d901766"), l => l.HasOne().WithMany() .HasForeignKey("DimMerilId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_meril_d209645"), - j => - { - j.HasKey("DimMerilId", "DimInfrastructureId").HasName("PK__br_meril__A30C54DA7B91A1D5"); - j.ToTable("br_meril_dim_infrastructure"); - j.IndexerProperty("DimMerilId").HasColumnName("dim_meril_id"); - j.IndexerProperty("DimInfrastructureId").HasColumnName("dim_infrastructure_id"); - }); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_mine__3213E83F8491DEAF"); - - entity.ToTable("dim_mined_words"); - - entity.Property(e => e.Id).HasColumnName("id"); + .HasConstraintName("FKbr_meril_d209645"), + j => + { + j.HasKey("DimMerilId", "DimInfrastructureId").HasName("PK__br_meril__A30C54DA6D039B5E"); + j.ToTable("br_meril_dim_infrastructure"); + j.IndexerProperty("DimMerilId").HasColumnName("dim_meril_id"); + j.IndexerProperty("DimInfrastructureId").HasColumnName("dim_infrastructure_id"); + }); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_mine__3213E83FD5A4815A"); + + entity.ToTable("dim_mined_words"); + + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.Property(e => e.Word) .IsRequired() .HasMaxLength(255) - .HasColumnName("word"); - }); + .HasColumnName("word"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_name__3213E83FC80A36F5"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_name__3213E83FF71506BD"); - entity.ToTable("dim_name"); + entity.ToTable("dim_name"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DimKnownPersonIdConfirmedIdentity).HasColumnName("dim_known_person_id_confirmed_identity"); - entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + .HasColumnName("created"); + entity.Property(e => e.DimKnownPersonIdConfirmedIdentity).HasColumnName("dim_known_person_id_confirmed_identity"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); entity.Property(e => e.FirstNames) .HasMaxLength(255) - .HasColumnName("first_names"); + .HasColumnName("first_names"); entity.Property(e => e.FullName) .HasMaxLength(255) - .HasColumnName("full_name"); + .HasColumnName("full_name"); entity.Property(e => e.LastName) .HasMaxLength(255) - .HasColumnName("last_name"); + .HasColumnName("last_name"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.Property(e => e.SourceProjectId) .HasMaxLength(100) - .HasColumnName("source_project_id"); + .HasColumnName("source_project_id"); entity.HasOne(d => d.DimKnownPersonIdConfirmedIdentityNavigation).WithMany(p => p.DimNames) .HasForeignKey(d => d.DimKnownPersonIdConfirmedIdentity) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("confirmed identity"); + .HasConstraintName("confirmed identity"); entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.DimNames) .HasForeignKey(d => d.DimRegisteredDataSourceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_name798039"); - }); + .HasConstraintName("FKdim_name798039"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_news__3213E83F6D1EDCA0"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_news__3213E83FD368CEA4"); - entity.ToTable("dim_news_feed"); + entity.ToTable("dim_news_feed"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.FeedUrl) .HasMaxLength(4000) - .HasColumnName("feed_url"); + .HasColumnName("feed_url"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.Property(e => e.Title) .HasMaxLength(511) - .HasColumnName("title"); - }); + .HasColumnName("title"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => new { e.Id, e.DimNewsFeedid }).HasName("PK__dim_news__B87E67033A02175D"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.Id, e.DimNewsFeedid }).HasName("PK__dim_news__B87E670333B6CC8B"); - entity.ToTable("dim_news_item"); + entity.ToTable("dim_news_item"); entity.Property(e => e.Id) .ValueGeneratedOnAdd() - .HasColumnName("id"); - entity.Property(e => e.DimNewsFeedid).HasColumnName("dim_news_feedid"); + .HasColumnName("id"); + entity.Property(e => e.DimNewsFeedid).HasColumnName("dim_news_feedid"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); - entity.Property(e => e.NewsContent).HasColumnName("news_content"); - entity.Property(e => e.NewsHeadline).HasColumnName("news_headline"); + .HasColumnName("modified"); + entity.Property(e => e.NewsContent).HasColumnName("news_content"); + entity.Property(e => e.NewsHeadline).HasColumnName("news_headline"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.Property(e => e.Timestamp) .HasColumnType("smalldatetime") - .HasColumnName("timestamp"); + .HasColumnName("timestamp"); entity.Property(e => e.Url) .HasMaxLength(4000) - .HasColumnName("url"); + .HasColumnName("url"); entity.HasOne(d => d.DimNewsFeed).WithMany(p => p.DimNewsItems) .HasForeignKey(d => d.DimNewsFeedid) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_news_i691810"); - }); + .HasConstraintName("FKdim_news_i691810"); + }); - modelBuilder.Entity(entity => - { + modelBuilder.Entity(entity => + { entity .HasNoKey() - .ToTable("dim_organisation_media"); + .ToTable("dim_organisation_media"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DimOrganizationId).HasColumnName("dim_organization_id"); + .HasColumnName("created"); + entity.Property(e => e.DimOrganizationId).HasColumnName("dim_organization_id"); entity.Property(e => e.LanguageVariant) .HasMaxLength(255) - .HasColumnName("language_variant"); + .HasColumnName("language_variant"); entity.Property(e => e.MediaUri) .HasMaxLength(511) - .HasColumnName("media_uri"); + .HasColumnName("media_uri"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.HasOne(d => d.DimOrganization).WithMany() .HasForeignKey(d => d.DimOrganizationId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_organi623202"); - }); + .HasConstraintName("FKdim_organi623202"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_orga__3213E83F0A5DC644"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_orga__3213E83F3D30B1D1"); - entity.ToTable("dim_organization"); + entity.ToTable("dim_organization"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.CountryCode) .HasMaxLength(2) - .HasColumnName("country_code"); + .HasColumnName("country_code"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DegreeCountBsc).HasColumnName("degree_count_bsc"); - entity.Property(e => e.DegreeCountLic).HasColumnName("degree_count_lic"); - entity.Property(e => e.DegreeCountMsc).HasColumnName("degree_count_msc"); - entity.Property(e => e.DegreeCountPhd).HasColumnName("degree_count_phd"); - entity.Property(e => e.DimOrganizationBroader).HasColumnName("dim_organization_broader"); - entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); - entity.Property(e => e.DimSectorid).HasColumnName("dim_sectorid"); + .HasColumnName("created"); + entity.Property(e => e.DegreeCountBsc).HasColumnName("degree_count_bsc"); + entity.Property(e => e.DegreeCountLic).HasColumnName("degree_count_lic"); + entity.Property(e => e.DegreeCountMsc).HasColumnName("degree_count_msc"); + entity.Property(e => e.DegreeCountPhd).HasColumnName("degree_count_phd"); + entity.Property(e => e.DimOrganizationBroader).HasColumnName("dim_organization_broader"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + entity.Property(e => e.DimSectorid).HasColumnName("dim_sectorid"); entity.Property(e => e.Established) .HasColumnType("datetime") - .HasColumnName("established"); + .HasColumnName("established"); entity.Property(e => e.LocalOrganizationSector) .HasMaxLength(255) - .HasColumnName("local_organization_sector"); + .HasColumnName("local_organization_sector"); entity.Property(e => e.LocalOrganizationUnitId) .HasMaxLength(255) - .HasColumnName("local_organization_unit_Id"); + .HasColumnName("local_organization_unit_Id"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.NameEn) .HasMaxLength(255) - .HasColumnName("name_en"); + .HasColumnName("name_en"); entity.Property(e => e.NameFi) .HasMaxLength(255) - .HasColumnName("name_fi"); + .HasColumnName("name_fi"); entity.Property(e => e.NameSv) .HasMaxLength(255) - .HasColumnName("name_sv"); + .HasColumnName("name_sv"); entity.Property(e => e.NameUnd) .HasMaxLength(255) - .HasColumnName("name_und"); + .HasColumnName("name_und"); entity.Property(e => e.NameVariants) .HasMaxLength(1023) - .HasColumnName("name_variants"); - entity.Property(e => e.OrganizationActive).HasColumnName("organization_active"); + .HasColumnName("name_variants"); + entity.Property(e => e.OrganizationActive).HasColumnName("organization_active"); entity.Property(e => e.OrganizationBackground) .HasMaxLength(4000) - .HasColumnName("organization_background"); + .HasColumnName("organization_background"); entity.Property(e => e.OrganizationId) .HasMaxLength(255) - .HasColumnName("organization_id"); + .HasColumnName("organization_id"); entity.Property(e => e.OrganizationType) .HasMaxLength(255) - .HasColumnName("organization_type"); + .HasColumnName("organization_type"); entity.Property(e => e.PostalAddress) .HasMaxLength(511) - .HasColumnName("postal_address"); + .HasColumnName("postal_address"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); - entity.Property(e => e.StaffCountAsFte).HasColumnName("staff_count_as_fte"); + .HasColumnName("source_id"); + entity.Property(e => e.StaffCountAsFte).HasColumnName("staff_count_as_fte"); entity.Property(e => e.VisitingAddress) .HasMaxLength(4000) - .HasColumnName("visiting_address"); + .HasColumnName("visiting_address"); entity.HasOne(d => d.DimOrganizationBroaderNavigation).WithMany(p => p.InverseDimOrganizationBroaderNavigation) .HasForeignKey(d => d.DimOrganizationBroader) - .HasConstraintName("is_part_of"); + .HasConstraintName("is_part_of"); entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.DimOrganizations) .HasForeignKey(d => d.DimRegisteredDataSourceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_organi972074"); + .HasConstraintName("FKdim_organi972074"); entity.HasOne(d => d.DimSector).WithMany(p => p.DimOrganizations) .HasForeignKey(d => d.DimSectorid) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_organi330513"); + .HasConstraintName("FKdim_organi330513"); - entity.HasMany(d => d.DimCallProgrammes).WithMany(p => p.DimOrganizations) - .UsingEntity>( - "BrOrganizationsFundCallProgramme", + entity.HasMany(d => d.DimCallProgrammes).WithMany(p => p.DimOrganizations) + .UsingEntity>( + "BrOrganizationsFundCallProgramme", r => r.HasOne().WithMany() .HasForeignKey("DimCallProgrammeid") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_organiz165034"), + .HasConstraintName("FKbr_organiz165034"), l => l.HasOne().WithMany() .HasForeignKey("DimOrganizationid") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_organiz621686"), - j => - { - j.HasKey("DimOrganizationid", "DimCallProgrammeid").HasName("PK__br_organ__10F219BC2EED0BF5"); - j.ToTable("br_organizations_fund_call_programmes"); - j.IndexerProperty("DimOrganizationid").HasColumnName("dim_organizationid"); - j.IndexerProperty("DimCallProgrammeid").HasColumnName("dim_call_programmeid"); - }); - - entity.HasMany(d => d.DimOrganizationid2s).WithMany(p => p.DimOrganizations) - .UsingEntity>( - "BrPredecessorOrganization", + .HasConstraintName("FKbr_organiz621686"), + j => + { + j.HasKey("DimOrganizationid", "DimCallProgrammeid").HasName("PK__br_organ__10F219BCA44177EA"); + j.ToTable("br_organizations_fund_call_programmes"); + j.IndexerProperty("DimOrganizationid").HasColumnName("dim_organizationid"); + j.IndexerProperty("DimCallProgrammeid").HasColumnName("dim_call_programmeid"); + }); + + entity.HasMany(d => d.DimOrganizationid2s).WithMany(p => p.DimOrganizations) + .UsingEntity>( + "BrPredecessorOrganization", r => r.HasOne().WithMany() .HasForeignKey("DimOrganizationid2") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_predece505451"), + .HasConstraintName("FKbr_predece505451"), l => l.HasOne().WithMany() .HasForeignKey("DimOrganizationid") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_predece849307"), - j => - { - j.HasKey("DimOrganizationid", "DimOrganizationid2").HasName("PK__br_prede__A7CAD2F4A2C83C5C"); - j.ToTable("br_predecessor_organization"); - j.IndexerProperty("DimOrganizationid").HasColumnName("dim_organizationid"); - j.IndexerProperty("DimOrganizationid2").HasColumnName("dim_organizationid2"); - }); - - entity.HasMany(d => d.DimOrganizationid2sNavigation).WithMany(p => p.DimOrganizationsNavigation) - .UsingEntity>( - "BrSuccessorOrganization", + .HasConstraintName("FKbr_predece849307"), + j => + { + j.HasKey("DimOrganizationid", "DimOrganizationid2").HasName("PK__br_prede__A7CAD2F456221723"); + j.ToTable("br_predecessor_organization"); + j.IndexerProperty("DimOrganizationid").HasColumnName("dim_organizationid"); + j.IndexerProperty("DimOrganizationid2").HasColumnName("dim_organizationid2"); + }); + + entity.HasMany(d => d.DimOrganizationid2sNavigation).WithMany(p => p.DimOrganizationsNavigation) + .UsingEntity>( + "BrSuccessorOrganization", r => r.HasOne().WithMany() .HasForeignKey("DimOrganizationid2") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_success902531"), + .HasConstraintName("FKbr_success902531"), l => l.HasOne().WithMany() .HasForeignKey("DimOrganizationid") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_success452227"), - j => - { - j.HasKey("DimOrganizationid", "DimOrganizationid2").HasName("PK__br_succe__A7CAD2F4250F4028"); - j.ToTable("br_successor organization"); - j.IndexerProperty("DimOrganizationid").HasColumnName("dim_organizationid"); - j.IndexerProperty("DimOrganizationid2").HasColumnName("dim_organizationid2"); - }); - - entity.HasMany(d => d.DimOrganizations).WithMany(p => p.DimOrganizationid2s) - .UsingEntity>( - "BrPredecessorOrganization", + .HasConstraintName("FKbr_success452227"), + j => + { + j.HasKey("DimOrganizationid", "DimOrganizationid2").HasName("PK__br_succe__A7CAD2F48D15EF8C"); + j.ToTable("br_successor organization"); + j.IndexerProperty("DimOrganizationid").HasColumnName("dim_organizationid"); + j.IndexerProperty("DimOrganizationid2").HasColumnName("dim_organizationid2"); + }); + + entity.HasMany(d => d.DimOrganizations).WithMany(p => p.DimOrganizationid2s) + .UsingEntity>( + "BrPredecessorOrganization", r => r.HasOne().WithMany() .HasForeignKey("DimOrganizationid") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_predece849307"), + .HasConstraintName("FKbr_predece849307"), l => l.HasOne().WithMany() .HasForeignKey("DimOrganizationid2") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_predece505451"), - j => - { - j.HasKey("DimOrganizationid", "DimOrganizationid2").HasName("PK__br_prede__A7CAD2F4A2C83C5C"); - j.ToTable("br_predecessor_organization"); - j.IndexerProperty("DimOrganizationid").HasColumnName("dim_organizationid"); - j.IndexerProperty("DimOrganizationid2").HasColumnName("dim_organizationid2"); - }); - - entity.HasMany(d => d.DimOrganizationsNavigation).WithMany(p => p.DimOrganizationid2sNavigation) - .UsingEntity>( - "BrSuccessorOrganization", + .HasConstraintName("FKbr_predece505451"), + j => + { + j.HasKey("DimOrganizationid", "DimOrganizationid2").HasName("PK__br_prede__A7CAD2F456221723"); + j.ToTable("br_predecessor_organization"); + j.IndexerProperty("DimOrganizationid").HasColumnName("dim_organizationid"); + j.IndexerProperty("DimOrganizationid2").HasColumnName("dim_organizationid2"); + }); + + entity.HasMany(d => d.DimOrganizationsNavigation).WithMany(p => p.DimOrganizationid2sNavigation) + .UsingEntity>( + "BrSuccessorOrganization", r => r.HasOne().WithMany() .HasForeignKey("DimOrganizationid") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_success452227"), + .HasConstraintName("FKbr_success452227"), l => l.HasOne().WithMany() .HasForeignKey("DimOrganizationid2") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_success902531"), - j => - { - j.HasKey("DimOrganizationid", "DimOrganizationid2").HasName("PK__br_succe__A7CAD2F4250F4028"); - j.ToTable("br_successor organization"); - j.IndexerProperty("DimOrganizationid").HasColumnName("dim_organizationid"); - j.IndexerProperty("DimOrganizationid2").HasColumnName("dim_organizationid2"); - }); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_pid__3213E83F48C4B8B9"); - - entity.ToTable("dim_pid"); - - entity.Property(e => e.Id).HasColumnName("id"); + .HasConstraintName("FKbr_success902531"), + j => + { + j.HasKey("DimOrganizationid", "DimOrganizationid2").HasName("PK__br_succe__A7CAD2F48D15EF8C"); + j.ToTable("br_successor organization"); + j.IndexerProperty("DimOrganizationid").HasColumnName("dim_organizationid"); + j.IndexerProperty("DimOrganizationid2").HasColumnName("dim_organizationid2"); + }); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_pid__3213E83F56AB248C"); + + entity.ToTable("dim_pid"); + + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DimEventId).HasColumnName("dim_event_id"); - entity.Property(e => e.DimFundingDecisionId).HasColumnName("dim_funding_decision_id"); - entity.Property(e => e.DimInfrastructureId).HasColumnName("dim_infrastructure_id"); - entity.Property(e => e.DimKnownPersonId).HasColumnName("dim_known_person_id"); - entity.Property(e => e.DimOrganizationId).HasColumnName("dim_organization_id"); - entity.Property(e => e.DimProfileOnlyDatasetId).HasColumnName("dim_profile_only_dataset_id"); - entity.Property(e => e.DimProfileOnlyFundingDecisionId).HasColumnName("dim_profile_only_funding_decision_id"); - entity.Property(e => e.DimProfileOnlyPublicationId).HasColumnName("dim_profile_only_publication_id"); - entity.Property(e => e.DimPublicationChannelId).HasColumnName("dim_publication_channel_id"); - entity.Property(e => e.DimPublicationId).HasColumnName("dim_publication_id"); - entity.Property(e => e.DimResearchActivityId).HasColumnName("dim_research_activity_id"); - entity.Property(e => e.DimResearchDataCatalogId).HasColumnName("dim_research_data_catalog_id"); - entity.Property(e => e.DimResearchDatasetId).HasColumnName("dim_research_dataset_id"); - entity.Property(e => e.DimServiceId).HasColumnName("dim_service_id"); + .HasColumnName("created"); + entity.Property(e => e.DimEventId).HasColumnName("dim_event_id"); + entity.Property(e => e.DimInfrastructureId).HasColumnName("dim_infrastructure_id"); + entity.Property(e => e.DimKnownPersonId).HasColumnName("dim_known_person_id"); + entity.Property(e => e.DimOrganizationId).HasColumnName("dim_organization_id"); + entity.Property(e => e.DimProfileOnlyDatasetId).HasColumnName("dim_profile_only_dataset_id"); + entity.Property(e => e.DimProfileOnlyFundingDecisionId).HasColumnName("dim_profile_only_funding_decision_id"); + entity.Property(e => e.DimProfileOnlyPublicationId).HasColumnName("dim_profile_only_publication_id"); + entity.Property(e => e.DimPublicationChannelId).HasColumnName("dim_publication_channel_id"); + entity.Property(e => e.DimPublicationId).HasColumnName("dim_publication_id"); + entity.Property(e => e.DimResearchActivityId).HasColumnName("dim_research_activity_id"); + entity.Property(e => e.DimResearchCommunityId).HasColumnName("dim_research_community_id"); + entity.Property(e => e.DimResearchDataCatalogId).HasColumnName("dim_research_data_catalog_id"); + entity.Property(e => e.DimResearchDatasetId).HasColumnName("dim_research_dataset_id"); + entity.Property(e => e.DimResearchProjectId).HasColumnName("dim_research_project_id"); + entity.Property(e => e.DimServiceId).HasColumnName("dim_service_id"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.PidContent) .IsRequired() .HasMaxLength(255) - .HasColumnName("pid_content"); + .HasColumnName("pid_content"); entity.Property(e => e.PidType) .IsRequired() .HasMaxLength(255) - .HasColumnName("pid_type"); + .HasColumnName("pid_type"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.HasOne(d => d.DimEvent).WithMany(p => p.DimPids) .HasForeignKey(d => d.DimEventId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("event_identifier"); - - entity.HasOne(d => d.DimFundingDecision).WithMany(p => p.DimPids) - .HasForeignKey(d => d.DimFundingDecisionId) - .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("ROI/RAID"); + .HasConstraintName("event_identifier"); entity.HasOne(d => d.DimInfrastructure).WithMany(p => p.DimPids) .HasForeignKey(d => d.DimInfrastructureId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("URN/infrastructure"); + .HasConstraintName("URN/infrastructure"); entity.HasOne(d => d.DimKnownPerson).WithMany(p => p.DimPids) .HasForeignKey(d => d.DimKnownPersonId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("Orcid/ISNI"); + .HasConstraintName("Orcid/ISNI"); entity.HasOne(d => d.DimOrganization).WithMany(p => p.DimPids) .HasForeignKey(d => d.DimOrganizationId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("ISNI/GRID/ROR/Business-ID\\PIC"); + .HasConstraintName("ISNI/GRID/ROR/Business-ID\\PIC"); entity.HasOne(d => d.DimProfileOnlyDataset).WithMany(p => p.DimPids) .HasForeignKey(d => d.DimProfileOnlyDatasetId) - .HasConstraintName("FKdim_pid852504"); + .HasConstraintName("FKdim_pid852504"); entity.HasOne(d => d.DimProfileOnlyFundingDecision).WithMany(p => p.DimPids) .HasForeignKey(d => d.DimProfileOnlyFundingDecisionId) - .HasConstraintName("FKdim_pid746176"); + .HasConstraintName("FKdim_pid746176"); entity.HasOne(d => d.DimProfileOnlyPublication).WithMany(p => p.DimPids) .HasForeignKey(d => d.DimProfileOnlyPublicationId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("ll"); + .HasConstraintName("ll"); entity.HasOne(d => d.DimPublicationChannel).WithMany(p => p.DimPids) .HasForeignKey(d => d.DimPublicationChannelId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("mostly ISSN"); + .HasConstraintName("mostly ISSN"); entity.HasOne(d => d.DimPublication).WithMany(p => p.DimPids) .HasForeignKey(d => d.DimPublicationId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("DOI/ISBN1-2"); + .HasConstraintName("DOI/ISBN1-2"); entity.HasOne(d => d.DimResearchActivity).WithMany(p => p.DimPids) .HasForeignKey(d => d.DimResearchActivityId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_pid725718"); + .HasConstraintName("FKdim_pid725718"); + + entity.HasOne(d => d.DimResearchCommunity).WithMany(p => p.DimPids) + .HasForeignKey(d => d.DimResearchCommunityId) + .HasConstraintName("FKdim_pid146045"); entity.HasOne(d => d.DimResearchDataCatalog).WithMany(p => p.DimPids) .HasForeignKey(d => d.DimResearchDataCatalogId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_pid400266"); + .HasConstraintName("FKdim_pid400266"); entity.HasOne(d => d.DimResearchDataset).WithMany(p => p.DimPids) .HasForeignKey(d => d.DimResearchDatasetId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("URN/DOI"); + .HasConstraintName("URN/DOI"); entity.HasOne(d => d.DimService).WithMany(p => p.DimPids) .HasForeignKey(d => d.DimServiceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("URN/service"); - }); + .HasConstraintName("URN/service"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_prof__3213E83F6EC868AD"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_prof__3213E83F1EC394D3"); - entity.ToTable("dim_profile_only_dataset"); + entity.ToTable("dim_profile_only_dataset"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.DatasetCreated) .HasColumnType("datetime") - .HasColumnName("dataset_created"); - entity.Property(e => e.DescriptionEn).HasColumnName("description_en"); - entity.Property(e => e.DescriptionFi).HasColumnName("description_fi"); - entity.Property(e => e.DescriptionSv).HasColumnName("description_sv"); - entity.Property(e => e.DescriptionUnd).HasColumnName("description_und"); - entity.Property(e => e.DimReferencedataIdAvailability).HasColumnName("dim_referencedata_id_availability"); - entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + .HasColumnName("dataset_created"); + entity.Property(e => e.DescriptionEn).HasColumnName("description_en"); + entity.Property(e => e.DescriptionFi).HasColumnName("description_fi"); + entity.Property(e => e.DescriptionSv).HasColumnName("description_sv"); + entity.Property(e => e.DescriptionUnd).HasColumnName("description_und"); + entity.Property(e => e.DimReferencedataIdAvailability).HasColumnName("dim_referencedata_id_availability"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); entity.Property(e => e.LocalIdentifier) .HasMaxLength(255) - .HasColumnName("local_identifier"); + .HasColumnName("local_identifier"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.NameEn) .HasMaxLength(4000) - .HasColumnName("name_en"); + .HasColumnName("name_en"); entity.Property(e => e.NameFi) .HasMaxLength(4000) - .HasColumnName("name_fi"); + .HasColumnName("name_fi"); entity.Property(e => e.NameSv) .HasMaxLength(4000) - .HasColumnName("name_sv"); + .HasColumnName("name_sv"); entity.Property(e => e.NameUnd) .HasMaxLength(4000) - .HasColumnName("name_und"); + .HasColumnName("name_und"); entity.Property(e => e.OrcidWorkType) .HasMaxLength(255) - .HasColumnName("orcid_work_type"); + .HasColumnName("orcid_work_type"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.Property(e => e.VersionInfo) .HasMaxLength(255) - .HasColumnName("version_info"); + .HasColumnName("version_info"); entity.HasOne(d => d.DimReferencedataIdAvailabilityNavigation).WithMany(p => p.DimProfileOnlyDatasets) .HasForeignKey(d => d.DimReferencedataIdAvailability) - .HasConstraintName("availability codes"); + .HasConstraintName("availability codes"); entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.DimProfileOnlyDatasets) .HasForeignKey(d => d.DimRegisteredDataSourceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_profil660906"); - }); + .HasConstraintName("FKdim_profil660906"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_prof__3213E83F4D563766"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_prof__3213E83FBBAFD689"); - entity.ToTable("dim_profile_only_funding_decision"); + entity.ToTable("dim_profile_only_funding_decision"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Acronym) .HasMaxLength(255) .IsUnicode(false) - .HasColumnName("acronym"); + .HasColumnName("acronym"); entity.Property(e => e.AmountInEur) .HasColumnType("decimal(18, 2)") - .HasColumnName("amount_in_EUR"); + .HasColumnName("amount_in_EUR"); entity.Property(e => e.AmountInFundingDecisionCurrency) .HasColumnType("decimal(18, 2)") - .HasColumnName("amount_in_funding_decision_currency"); + .HasColumnName("amount_in_funding_decision_currency"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DescriptionEn).HasColumnName("description_en"); - entity.Property(e => e.DescriptionFi).HasColumnName("description_fi"); - entity.Property(e => e.DescriptionSv).HasColumnName("description_sv"); - entity.Property(e => e.DimCallProgrammeId).HasColumnName("dim_call_programme_id"); - entity.Property(e => e.DimDateIdApproval).HasColumnName("dim_date_id_approval"); - entity.Property(e => e.DimDateIdEnd).HasColumnName("dim_date_id_end"); - entity.Property(e => e.DimDateIdStart).HasColumnName("dim_date_id_start"); - entity.Property(e => e.DimOrganizationIdFunder).HasColumnName("dim_organization_id_funder"); - entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); - entity.Property(e => e.DimTypeOfFundingId).HasColumnName("dim_type_of_funding_id"); + .HasColumnName("created"); + entity.Property(e => e.DescriptionEn).HasColumnName("description_en"); + entity.Property(e => e.DescriptionFi).HasColumnName("description_fi"); + entity.Property(e => e.DescriptionSv).HasColumnName("description_sv"); + entity.Property(e => e.DimCallProgrammeId).HasColumnName("dim_call_programme_id"); + entity.Property(e => e.DimDateIdApproval).HasColumnName("dim_date_id_approval"); + entity.Property(e => e.DimDateIdEnd).HasColumnName("dim_date_id_end"); + entity.Property(e => e.DimDateIdStart).HasColumnName("dim_date_id_start"); + entity.Property(e => e.DimOrganizationIdFunder).HasColumnName("dim_organization_id_funder"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + entity.Property(e => e.DimTypeOfFundingId).HasColumnName("dim_type_of_funding_id"); entity.Property(e => e.FunderProjectNumber) .HasMaxLength(255) - .HasColumnName("funder_project_number"); + .HasColumnName("funder_project_number"); entity.Property(e => e.FundingDecisionCurrencyAbbreviation) .HasMaxLength(255) - .HasColumnName("funding_decision_currency_abbreviation"); + .HasColumnName("funding_decision_currency_abbreviation"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.NameEn) .HasMaxLength(255) - .HasColumnName("name_en"); + .HasColumnName("name_en"); entity.Property(e => e.NameFi) .HasMaxLength(255) - .HasColumnName("name_fi"); + .HasColumnName("name_fi"); entity.Property(e => e.NameSv) .HasMaxLength(255) - .HasColumnName("name_sv"); + .HasColumnName("name_sv"); entity.Property(e => e.NameUnd) .HasMaxLength(255) - .HasColumnName("name_und"); + .HasColumnName("name_und"); entity.Property(e => e.OrcidWorkType) .HasMaxLength(255) - .HasColumnName("orcid_work_type"); + .HasColumnName("orcid_work_type"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.HasOne(d => d.DimCallProgramme).WithMany(p => p.DimProfileOnlyFundingDecisions) .HasForeignKey(d => d.DimCallProgrammeId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_profil901315"); + .HasConstraintName("FKdim_profil901315"); entity.HasOne(d => d.DimDateIdApprovalNavigation).WithMany(p => p.DimProfileOnlyFundingDecisionDimDateIdApprovalNavigations) .HasForeignKey(d => d.DimDateIdApproval) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_profil305481"); + .HasConstraintName("FKdim_profil305481"); entity.HasOne(d => d.DimDateIdEndNavigation).WithMany(p => p.DimProfileOnlyFundingDecisionDimDateIdEndNavigations) .HasForeignKey(d => d.DimDateIdEnd) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_profil258491"); + .HasConstraintName("FKdim_profil258491"); entity.HasOne(d => d.DimDateIdStartNavigation).WithMany(p => p.DimProfileOnlyFundingDecisionDimDateIdStartNavigations) .HasForeignKey(d => d.DimDateIdStart) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_profil96828"); + .HasConstraintName("FKdim_profil96828"); entity.HasOne(d => d.DimOrganizationIdFunderNavigation).WithMany(p => p.DimProfileOnlyFundingDecisions) .HasForeignKey(d => d.DimOrganizationIdFunder) - .HasConstraintName("FKdim_profil261429"); + .HasConstraintName("FKdim_profil261429"); entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.DimProfileOnlyFundingDecisions) .HasForeignKey(d => d.DimRegisteredDataSourceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_profil430683"); + .HasConstraintName("FKdim_profil430683"); entity.HasOne(d => d.DimTypeOfFunding).WithMany(p => p.DimProfileOnlyFundingDecisions) .HasForeignKey(d => d.DimTypeOfFundingId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_profil826800"); - }); + .HasConstraintName("FKdim_profil826800"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_prof__3213E83F5E2E5959"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_prof__3213E83F415C58C9"); - entity.ToTable("dim_profile_only_publication"); + entity.ToTable("dim_profile_only_publication"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.ArticleNumberText) .HasMaxLength(255) - .HasColumnName("article_number_text"); + .HasColumnName("article_number_text"); entity.Property(e => e.ArticleTypeCode) .HasComment("code_scheme = 'Artikkelintyyppikoodi'") - .HasColumnName("article_type_code"); + .HasColumnName("article_type_code"); entity.Property(e => e.AuthorsText) .IsRequired() - .HasColumnName("authors_text"); + .HasColumnName("authors_text"); entity.Property(e => e.ConferenceName) .HasMaxLength(4000) - .HasColumnName("conference_name"); + .HasColumnName("conference_name"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DimKnownPersonId).HasColumnName("dim_known_person_id"); - entity.Property(e => e.DimProfileOnlyPublicationId).HasColumnName("dim_profile_only_publication_id"); - entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + .HasColumnName("created"); + entity.Property(e => e.DimKnownPersonId).HasColumnName("dim_known_person_id"); + entity.Property(e => e.DimProfileOnlyPublicationId).HasColumnName("dim_profile_only_publication_id"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); entity.Property(e => e.DoiHandle) .HasMaxLength(4000) - .HasColumnName("doi_handle"); + .HasColumnName("doi_handle"); entity.Property(e => e.IssueNumber) .HasMaxLength(255) - .HasColumnName("issue_number"); - entity.Property(e => e.LanguageCode).HasColumnName("language_code"); - entity.Property(e => e.LicenseCode).HasColumnName("license_code"); + .HasColumnName("issue_number"); + entity.Property(e => e.LanguageCode).HasColumnName("language_code"); + entity.Property(e => e.LicenseCode).HasColumnName("license_code"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); - entity.Property(e => e.NumberOfAuthors).HasColumnName("number_of_authors"); + .HasColumnName("modified"); + entity.Property(e => e.NumberOfAuthors).HasColumnName("number_of_authors"); entity.Property(e => e.OpenAccessCode) .HasMaxLength(255) - .HasColumnName("open_access_code"); + .HasColumnName("open_access_code"); entity.Property(e => e.OrcidWorkType) .HasMaxLength(255) - .HasColumnName("orcid_work_type"); + .HasColumnName("orcid_work_type"); entity.Property(e => e.OriginalPublicationId) .HasMaxLength(255) - .HasColumnName("original_publication_id"); + .HasColumnName("original_publication_id"); entity.Property(e => e.PageNumberText) .HasMaxLength(255) - .HasColumnName("page_number_text"); + .HasColumnName("page_number_text"); entity.Property(e => e.ParentPublicationEditors) .HasMaxLength(4000) - .HasColumnName("parent_publication_editors"); + .HasColumnName("parent_publication_editors"); entity.Property(e => e.ParentPublicationName) .HasMaxLength(4000) - .HasColumnName("parent_publication_name"); - entity.Property(e => e.ParentTypeClassificationCode).HasColumnName("parent_type_classification_code"); - entity.Property(e => e.PeerReviewed).HasColumnName("peer_reviewed"); - entity.Property(e => e.PublicationCountryCode).HasColumnName("publication_country_code"); + .HasColumnName("parent_publication_name"); + entity.Property(e => e.ParentTypeClassificationCode).HasColumnName("parent_type_classification_code"); + entity.Property(e => e.PeerReviewed).HasColumnName("peer_reviewed"); + entity.Property(e => e.PublicationCountryCode).HasColumnName("publication_country_code"); entity.Property(e => e.PublicationFormatCode) .HasComment("code_scheme = 'julkaisumuoto'") - .HasColumnName("publication_format_code"); + .HasColumnName("publication_format_code"); entity.Property(e => e.PublicationId) .IsRequired() .HasMaxLength(255) - .HasColumnName("publication_id"); + .HasColumnName("publication_id"); entity.Property(e => e.PublicationName) .IsRequired() .HasMaxLength(4000) - .HasColumnName("publication_name"); - entity.Property(e => e.PublicationYear).HasColumnName("publication_year"); + .HasColumnName("publication_name"); + entity.Property(e => e.PublicationYear).HasColumnName("publication_year"); entity.Property(e => e.PublisherLocation) .HasMaxLength(255) - .HasColumnName("publisher_location"); + .HasColumnName("publisher_location"); entity.Property(e => e.PublisherName) .HasMaxLength(4000) - .HasColumnName("publisher_name"); - entity.Property(e => e.Report).HasColumnName("report"); - entity.Property(e => e.ShortDescription).HasColumnName("short_description"); + .HasColumnName("publisher_name"); + entity.Property(e => e.Report).HasColumnName("report"); + entity.Property(e => e.ShortDescription).HasColumnName("short_description"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.Property(e => e.TargetAudienceCode) .HasComment("code_scheme = 'julkaisunyleiso'") - .HasColumnName("target_audience_code"); - entity.Property(e => e.ThesisTypeCode).HasColumnName("thesis_type_code"); + .HasColumnName("target_audience_code"); + entity.Property(e => e.ThesisTypeCode).HasColumnName("thesis_type_code"); entity.Property(e => e.TypeClassificationCode) .HasComment("code_schema = 'julkaisutyyppiluokitus'") - .HasColumnName("type_classification_code"); + .HasColumnName("type_classification_code"); entity.Property(e => e.Volume) .HasMaxLength(255) - .HasColumnName("volume"); + .HasColumnName("volume"); entity.HasOne(d => d.ArticleTypeCodeNavigation).WithMany(p => p.DimProfileOnlyPublicationArticleTypeCodeNavigations) .HasForeignKey(d => d.ArticleTypeCode) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("Or_article_type_code"); + .HasConstraintName("Or_article_type_code"); entity.HasOne(d => d.DimKnownPerson).WithMany(p => p.DimProfileOnlyPublications) .HasForeignKey(d => d.DimKnownPersonId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_orcid_438595"); + .HasConstraintName("FKdim_orcid_438595"); entity.HasOne(d => d.DimProfileOnlyPublicationNavigation).WithMany(p => p.InverseDimProfileOnlyPublicationNavigation) .HasForeignKey(d => d.DimProfileOnlyPublicationId) - .HasConstraintName("parent orcid publication"); + .HasConstraintName("parent orcid publication"); entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.DimProfileOnlyPublications) .HasForeignKey(d => d.DimRegisteredDataSourceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_orcid_729203"); + .HasConstraintName("FKdim_orcid_729203"); entity.HasOne(d => d.LanguageCodeNavigation).WithMany(p => p.DimProfileOnlyPublicationLanguageCodeNavigations) .HasForeignKey(d => d.LanguageCode) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("language_code_profile_only_publication"); + .HasConstraintName("language_code_profile_only_publication"); entity.HasOne(d => d.LicenseCodeNavigation).WithMany(p => p.DimProfileOnlyPublicationLicenseCodeNavigations) .HasForeignKey(d => d.LicenseCode) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("license_code_profile_only_publication"); + .HasConstraintName("license_code_profile_only_publication"); entity.HasOne(d => d.ParentTypeClassificationCodeNavigation).WithMany(p => p.DimProfileOnlyPublicationParentTypeClassificationCodeNavigations) .HasForeignKey(d => d.ParentTypeClassificationCode) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("Or_parent_publication_type_code"); + .HasConstraintName("Or_parent_publication_type_code"); entity.HasOne(d => d.PublicationCountryCodeNavigation).WithMany(p => p.DimProfileOnlyPublicationPublicationCountryCodeNavigations) .HasForeignKey(d => d.PublicationCountryCode) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("publication_country_code_profile_only_publication"); + .HasConstraintName("publication_country_code_profile_only_publication"); entity.HasOne(d => d.PublicationFormatCodeNavigation).WithMany(p => p.DimProfileOnlyPublicationPublicationFormatCodeNavigations) .HasForeignKey(d => d.PublicationFormatCode) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("Or_publication_type_code2"); + .HasConstraintName("Or_publication_type_code2"); entity.HasOne(d => d.TargetAudienceCodeNavigation).WithMany(p => p.DimProfileOnlyPublicationTargetAudienceCodeNavigations) .HasForeignKey(d => d.TargetAudienceCode) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("Or_target_audience_code"); + .HasConstraintName("Or_target_audience_code"); entity.HasOne(d => d.ThesisTypeCodeNavigation).WithMany(p => p.DimProfileOnlyPublicationThesisTypeCodeNavigations) .HasForeignKey(d => d.ThesisTypeCode) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("thesis_type_code_profile_only_publication"); + .HasConstraintName("thesis_type_code_profile_only_publication"); entity.HasOne(d => d.TypeClassificationCodeNavigation).WithMany(p => p.DimProfileOnlyPublicationTypeClassificationCodeNavigations) .HasForeignKey(d => d.TypeClassificationCode) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("type_classification"); - }); + .HasConstraintName("type_classification"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_prof__3213E83F1D126489"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_prof__3213E83F6496EA11"); - entity.ToTable("dim_profile_only_research_activity"); + entity.ToTable("dim_profile_only_research_activity"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DescriptionEn).HasColumnName("description_en"); - entity.Property(e => e.DescriptionFi).HasColumnName("description_fi"); - entity.Property(e => e.DescriptionSv).HasColumnName("description_sv"); - entity.Property(e => e.DimDateIdEnd).HasColumnName("dim_date_id_end"); - entity.Property(e => e.DimDateIdStart).HasColumnName("dim_date_id_start"); - entity.Property(e => e.DimEventId).HasColumnName("dim_event_id"); - entity.Property(e => e.DimGeoIdCountry).HasColumnName("dim_geo_id_country"); - entity.Property(e => e.DimOrganizationId).HasColumnName("dim_organization_id"); - entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + .HasColumnName("created"); + entity.Property(e => e.DescriptionEn).HasColumnName("description_en"); + entity.Property(e => e.DescriptionFi).HasColumnName("description_fi"); + entity.Property(e => e.DescriptionSv).HasColumnName("description_sv"); + entity.Property(e => e.DimDateIdEnd).HasColumnName("dim_date_id_end"); + entity.Property(e => e.DimDateIdStart).HasColumnName("dim_date_id_start"); + entity.Property(e => e.DimEventId).HasColumnName("dim_event_id"); + entity.Property(e => e.DimGeoIdCountry).HasColumnName("dim_geo_id_country"); + entity.Property(e => e.DimOrganizationId).HasColumnName("dim_organization_id"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); entity.Property(e => e.IndentifierlessTargetOrg) .HasMaxLength(511) - .HasColumnName("indentifierless_target_org"); + .HasColumnName("indentifierless_target_org"); entity.Property(e => e.LocalIdentifier) .HasMaxLength(255) - .HasColumnName("local_identifier"); + .HasColumnName("local_identifier"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.NameEn) .HasMaxLength(255) - .HasColumnName("name_en"); + .HasColumnName("name_en"); entity.Property(e => e.NameFi) .HasMaxLength(255) - .HasColumnName("name_fi"); + .HasColumnName("name_fi"); entity.Property(e => e.NameSv) .HasMaxLength(255) - .HasColumnName("name_sv"); + .HasColumnName("name_sv"); entity.Property(e => e.NameUnd) .HasMaxLength(255) - .HasColumnName("name_und"); + .HasColumnName("name_und"); entity.Property(e => e.OrcidWorkType) .HasMaxLength(255) - .HasColumnName("orcid_work_type"); + .HasColumnName("orcid_work_type"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.HasOne(d => d.DimDateIdEndNavigation).WithMany(p => p.DimProfileOnlyResearchActivityDimDateIdEndNavigations) .HasForeignKey(d => d.DimDateIdEnd) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_profil457771"); + .HasConstraintName("FKdim_profil457771"); entity.HasOne(d => d.DimDateIdStartNavigation).WithMany(p => p.DimProfileOnlyResearchActivityDimDateIdStartNavigations) .HasForeignKey(d => d.DimDateIdStart) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_profil158500"); + .HasConstraintName("FKdim_profil158500"); entity.HasOne(d => d.DimEvent).WithMany(p => p.DimProfileOnlyResearchActivities) .HasForeignKey(d => d.DimEventId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_profil693884"); + .HasConstraintName("FKdim_profil693884"); entity.HasOne(d => d.DimGeoIdCountryNavigation).WithMany(p => p.DimProfileOnlyResearchActivities) .HasForeignKey(d => d.DimGeoIdCountry) - .HasConstraintName("FKdim_profil903211"); + .HasConstraintName("FKdim_profil903211"); entity.HasOne(d => d.DimOrganization).WithMany(p => p.DimProfileOnlyResearchActivities) .HasForeignKey(d => d.DimOrganizationId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_profil273177"); + .HasConstraintName("FKdim_profil273177"); entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.DimProfileOnlyResearchActivities) .HasForeignKey(d => d.DimRegisteredDataSourceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_profil285579"); - }); + .HasConstraintName("FKdim_profil285579"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_publ__3213E83F6F582014"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_publ__3213E83F8EF49FB7"); - entity.ToTable("dim_publication"); + entity.ToTable("dim_publication"); - entity.Property(e => e.Id).HasColumnName("id"); - entity.Property(e => e.Abstract).HasColumnName("abstract"); + entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Abstract).HasColumnName("abstract"); entity.Property(e => e.ApcFeeEur) .HasColumnType("decimal(18, 2)") - .HasColumnName("apc_fee_EUR"); - entity.Property(e => e.ApcPaymentYear).HasColumnName("apc_payment_year"); + .HasColumnName("apc_fee_EUR"); + entity.Property(e => e.ApcPaymentYear).HasColumnName("apc_payment_year"); entity.Property(e => e.ArticleNumberText) .HasMaxLength(255) - .HasColumnName("article_number_text"); - entity.Property(e => e.ArticleTypeCode).HasColumnName("article_type_code"); + .HasColumnName("article_number_text"); + entity.Property(e => e.ArticleTypeCode).HasColumnName("article_type_code"); entity.Property(e => e.AuthorsText) .IsRequired() - .HasColumnName("authors_text"); - entity.Property(e => e.BusinessCollaboration).HasColumnName("business_collaboration"); + .HasColumnName("authors_text"); + entity.Property(e => e.BusinessCollaboration).HasColumnName("business_collaboration"); entity.Property(e => e.ConferenceName) .HasMaxLength(4000) - .HasColumnName("conference_name"); + .HasColumnName("conference_name"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DimPublicationChannelId).HasColumnName("dim_publication_channel_id"); - entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + .HasColumnName("created"); + entity.Property(e => e.DimPublicationChannelId).HasColumnName("dim_publication_channel_id"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); entity.Property(e => e.Doi) .HasMaxLength(4000) - .HasColumnName("doi"); + .HasColumnName("doi"); entity.Property(e => e.DoiHandle) .HasMaxLength(4000) - .HasColumnName("doi_handle"); - entity.Property(e => e.GovermentCollaboration).HasColumnName("goverment_collaboration"); - entity.Property(e => e.HospitalDistrictCollaboration).HasColumnName("hospital_district_collaboration"); - entity.Property(e => e.InternationalCollaboration).HasColumnName("international_collaboration"); - entity.Property(e => e.InternationalPublication).HasColumnName("international_publication"); + .HasColumnName("doi_handle"); + entity.Property(e => e.GovermentCollaboration).HasColumnName("goverment_collaboration"); + entity.Property(e => e.HospitalDistrictCollaboration).HasColumnName("hospital_district_collaboration"); + entity.Property(e => e.InternationalCollaboration).HasColumnName("international_collaboration"); + entity.Property(e => e.InternationalPublication).HasColumnName("international_publication"); entity.Property(e => e.Isbn) .HasMaxLength(255) - .HasColumnName("isbn"); + .HasColumnName("isbn"); entity.Property(e => e.Isbn2) .HasMaxLength(255) - .HasColumnName("isbn2"); + .HasColumnName("isbn2"); entity.Property(e => e.Issn) .HasMaxLength(255) - .HasColumnName("issn"); + .HasColumnName("issn"); entity.Property(e => e.Issn2) .HasMaxLength(255) - .HasColumnName("issn2"); + .HasColumnName("issn2"); entity.Property(e => e.IssueNumber) .HasMaxLength(255) - .HasColumnName("issue_number"); + .HasColumnName("issue_number"); entity.Property(e => e.JournalName) .HasMaxLength(4000) - .HasColumnName("journal_name"); - entity.Property(e => e.JufoClass).HasColumnName("jufo_class"); + .HasColumnName("journal_name"); + entity.Property(e => e.JufoClass).HasColumnName("jufo_class"); entity.Property(e => e.JuuliAddress) .HasMaxLength(4000) - .HasColumnName("juuli_address"); - entity.Property(e => e.LanguageCode).HasColumnName("language_code"); - entity.Property(e => e.LicenseCode).HasColumnName("license_code"); + .HasColumnName("juuli_address"); + entity.Property(e => e.LanguageCode).HasColumnName("language_code"); + entity.Property(e => e.LicenseCode).HasColumnName("license_code"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); - entity.Property(e => e.NumberOfAuthors).HasColumnName("number_of_authors"); + .HasColumnName("modified"); + entity.Property(e => e.NumberOfAuthors).HasColumnName("number_of_authors"); entity.Property(e => e.OpenAccess) .HasMaxLength(255) - .HasColumnName("open_access"); + .HasColumnName("open_access"); entity.Property(e => e.OriginalPublicationId) .HasMaxLength(255) - .HasColumnName("original_publication_id"); - entity.Property(e => e.OtherCollaboration).HasColumnName("other_collaboration"); + .HasColumnName("original_publication_id"); + entity.Property(e => e.OtherCollaboration).HasColumnName("other_collaboration"); entity.Property(e => e.PageNumberText) .HasMaxLength(255) - .HasColumnName("page_number_text"); + .HasColumnName("page_number_text"); entity.Property(e => e.ParentPublicationName) .HasMaxLength(4000) - .HasColumnName("parent_publication_name"); + .HasColumnName("parent_publication_name"); entity.Property(e => e.ParentPublicationPublisher) .HasMaxLength(4000) - .HasColumnName("parent_publication_publisher"); - entity.Property(e => e.ParentPublicationTypeCode).HasColumnName("parent_publication_type_code"); - entity.Property(e => e.PeerReviewed).HasColumnName("peer_reviewed"); - entity.Property(e => e.PublicationCountryCode).HasColumnName("publication_country_code"); + .HasColumnName("parent_publication_publisher"); + entity.Property(e => e.ParentPublicationTypeCode).HasColumnName("parent_publication_type_code"); + entity.Property(e => e.PeerReviewed).HasColumnName("peer_reviewed"); + entity.Property(e => e.PublicationCountryCode).HasColumnName("publication_country_code"); entity.Property(e => e.PublicationId) .IsRequired() .HasMaxLength(255) - .HasColumnName("publication_id"); + .HasColumnName("publication_id"); entity.Property(e => e.PublicationName) .IsRequired() .HasMaxLength(4000) - .HasColumnName("publication_name"); + .HasColumnName("publication_name"); entity.Property(e => e.PublicationOrgId) .IsRequired() .HasMaxLength(255) - .HasColumnName("publication_org_id"); - entity.Property(e => e.PublicationStatusCode).HasColumnName("publication_status_code"); - entity.Property(e => e.PublicationTypeCode).HasColumnName("publication_type_code"); - entity.Property(e => e.PublicationTypeCode2).HasColumnName("publication_type_code2"); - entity.Property(e => e.PublicationYear).HasColumnName("publication_year"); + .HasColumnName("publication_org_id"); + entity.Property(e => e.PublicationStatusCode).HasColumnName("publication_status_code"); + entity.Property(e => e.PublicationTypeCode).HasColumnName("publication_type_code"); + entity.Property(e => e.PublicationTypeCode2).HasColumnName("publication_type_code2"); + entity.Property(e => e.PublicationYear).HasColumnName("publication_year"); entity.Property(e => e.PublisherLocation) .HasMaxLength(255) - .HasColumnName("publisher_location"); + .HasColumnName("publisher_location"); entity.Property(e => e.PublisherName) .HasMaxLength(4000) - .HasColumnName("publisher_name"); - entity.Property(e => e.PublisherOpenAccessCode).HasColumnName("publisher_open_access_code"); - entity.Property(e => e.Report).HasColumnName("report"); - entity.Property(e => e.ReportingYear).HasColumnName("reporting_year"); - entity.Property(e => e.SelfArchivedCode).HasColumnName("self_archived_code"); + .HasColumnName("publisher_name"); + entity.Property(e => e.PublisherOpenAccessCode).HasColumnName("publisher_open_access_code"); + entity.Property(e => e.Report).HasColumnName("report"); + entity.Property(e => e.ReportingYear).HasColumnName("reporting_year"); + entity.Property(e => e.SelfArchivedCode).HasColumnName("self_archived_code"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); - entity.Property(e => e.SpecialStateSubsidy).HasColumnName("special_state_subsidy"); - entity.Property(e => e.TargetAudienceCode).HasColumnName("target_audience_code"); - entity.Property(e => e.ThesisTypeCode).HasColumnName("thesis_type_code"); + .HasColumnName("source_id"); + entity.Property(e => e.SpecialStateSubsidy).HasColumnName("special_state_subsidy"); + entity.Property(e => e.TargetAudienceCode).HasColumnName("target_audience_code"); + entity.Property(e => e.ThesisTypeCode).HasColumnName("thesis_type_code"); entity.Property(e => e.Volume) .HasMaxLength(255) - .HasColumnName("volume"); + .HasColumnName("volume"); entity.HasOne(d => d.ArticleTypeCodeNavigation).WithMany(p => p.DimPublicationArticleTypeCodeNavigations) .HasForeignKey(d => d.ArticleTypeCode) - .HasConstraintName("article_type_code"); + .HasConstraintName("article_type_code"); entity.HasOne(d => d.DimPublicationChannel).WithMany(p => p.DimPublications) .HasForeignKey(d => d.DimPublicationChannelId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("publication_channel"); + .HasConstraintName("publication_channel"); entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.DimPublications) .HasForeignKey(d => d.DimRegisteredDataSourceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_public896887"); + .HasConstraintName("FKdim_public896887"); entity.HasOne(d => d.JufoClassNavigation).WithMany(p => p.DimPublicationJufoClassNavigations) .HasForeignKey(d => d.JufoClass) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("jufo_class"); + .HasConstraintName("jufo_class"); entity.HasOne(d => d.LanguageCodeNavigation).WithMany(p => p.DimPublicationLanguageCodeNavigations) .HasForeignKey(d => d.LanguageCode) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("language_code"); + .HasConstraintName("language_code"); entity.HasOne(d => d.LicenseCodeNavigation).WithMany(p => p.DimPublicationLicenseCodeNavigations) .HasForeignKey(d => d.LicenseCode) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("license_code"); + .HasConstraintName("license_code"); entity.HasOne(d => d.ParentPublicationTypeCodeNavigation).WithMany(p => p.DimPublicationParentPublicationTypeCodeNavigations) .HasForeignKey(d => d.ParentPublicationTypeCode) - .HasConstraintName("parent_publication_type_code"); + .HasConstraintName("parent_publication_type_code"); entity.HasOne(d => d.PublicationCountryCodeNavigation).WithMany(p => p.DimPublicationPublicationCountryCodeNavigations) .HasForeignKey(d => d.PublicationCountryCode) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("publication_country_code"); + .HasConstraintName("publication_country_code"); entity.HasOne(d => d.PublicationStatusCodeNavigation).WithMany(p => p.DimPublicationPublicationStatusCodeNavigations) .HasForeignKey(d => d.PublicationStatusCode) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("publication_status_code"); + .HasConstraintName("publication_status_code"); entity.HasOne(d => d.PublicationTypeCodeNavigation).WithMany(p => p.DimPublicationPublicationTypeCodeNavigations) .HasForeignKey(d => d.PublicationTypeCode) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("publication_type_code"); + .HasConstraintName("publication_type_code"); entity.HasOne(d => d.PublicationTypeCode2Navigation).WithMany(p => p.DimPublicationPublicationTypeCode2Navigations) .HasForeignKey(d => d.PublicationTypeCode2) - .HasConstraintName("publication_type_code2"); + .HasConstraintName("publication_type_code2"); entity.HasOne(d => d.PublisherOpenAccessCodeNavigation).WithMany(p => p.DimPublicationPublisherOpenAccessCodeNavigations) .HasForeignKey(d => d.PublisherOpenAccessCode) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("publisher_open_access"); + .HasConstraintName("publisher_open_access"); entity.HasOne(d => d.TargetAudienceCodeNavigation).WithMany(p => p.DimPublicationTargetAudienceCodeNavigations) .HasForeignKey(d => d.TargetAudienceCode) - .HasConstraintName("target_audience_code"); + .HasConstraintName("target_audience_code"); entity.HasOne(d => d.ThesisTypeCodeNavigation).WithMany(p => p.DimPublicationThesisTypeCodeNavigations) .HasForeignKey(d => d.ThesisTypeCode) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("thesis_type_code"); + .HasConstraintName("thesis_type_code"); - entity.HasMany(d => d.DimReferencedata).WithMany(p => p.DimPublications) - .UsingEntity>( - "BrArtpublicationTypecategory", + entity.HasMany(d => d.DimReferencedata).WithMany(p => p.DimPublications) + .UsingEntity>( + "BrArtpublicationTypecategory", r => r.HasOne().WithMany() .HasForeignKey("DimReferencedataid") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_artpubl101187"), + .HasConstraintName("FKbr_artpubl101187"), l => l.HasOne().WithMany() .HasForeignKey("DimPublicationId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_artpubl464312"), - j => - { - j.HasKey("DimPublicationId", "DimReferencedataid").HasName("PK__br_artpu__879F18F32779168B"); - j.ToTable("br_artpublication_typecategory"); - j.IndexerProperty("DimPublicationId").HasColumnName("dim_publication_id"); - j.IndexerProperty("DimReferencedataid").HasColumnName("dim_referencedataid"); - }); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_publ__3213E83F83D56CBF"); - - entity.ToTable("dim_publication_channel"); - - entity.Property(e => e.Id).HasColumnName("id"); + .HasConstraintName("FKbr_artpubl464312"), + j => + { + j.HasKey("DimPublicationId", "DimReferencedataid").HasName("PK__br_artpu__879F18F38C6299C1"); + j.ToTable("br_artpublication_typecategory"); + j.IndexerProperty("DimPublicationId").HasColumnName("dim_publication_id"); + j.IndexerProperty("DimReferencedataid").HasColumnName("dim_referencedataid"); + }); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_publ__3213E83F7914C4BF"); + + entity.ToTable("dim_publication_channel"); + + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.ChannelNameAnylang) .HasMaxLength(4000) - .HasColumnName("channel_name_anylang"); + .HasColumnName("channel_name_anylang"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.JufoCode) .HasMaxLength(255) - .HasColumnName("jufo_code"); + .HasColumnName("jufo_code"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.PublisherNameText) .HasMaxLength(4000) - .HasColumnName("publisher_name_text"); + .HasColumnName("publisher_name_text"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); - }); + .HasColumnName("source_id"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_purp__3213E83F6812F925"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_purp__3213E83F8F230C25"); - entity.ToTable("dim_purpose"); + entity.ToTable("dim_purpose"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DescriptionEn).HasColumnName("description_en"); - entity.Property(e => e.DescriptionFi).HasColumnName("description_fi"); - entity.Property(e => e.DescriptionSv).HasColumnName("description_sv"); - entity.Property(e => e.DimOrganizationId).HasColumnName("dim_organization_id"); + .HasColumnName("created"); + entity.Property(e => e.DescriptionEn).HasColumnName("description_en"); + entity.Property(e => e.DescriptionFi).HasColumnName("description_fi"); + entity.Property(e => e.DescriptionSv).HasColumnName("description_sv"); + entity.Property(e => e.DimOrganizationId).HasColumnName("dim_organization_id"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.NameEn) .HasMaxLength(255) - .HasColumnName("name_en"); + .HasColumnName("name_en"); entity.Property(e => e.NameFi) .HasMaxLength(255) - .HasColumnName("name_fi"); + .HasColumnName("name_fi"); entity.Property(e => e.NameSv) .HasMaxLength(255) - .HasColumnName("name_sv"); + .HasColumnName("name_sv"); entity.Property(e => e.NameUnd) .HasMaxLength(255) - .HasColumnName("name_und"); + .HasColumnName("name_und"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.HasOne(d => d.DimOrganization).WithMany(p => p.DimPurposes) .HasForeignKey(d => d.DimOrganizationId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_purpos656541"); - }); + .HasConstraintName("FKdim_purpos656541"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_refe__3213E83FF73B4B9A"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_refe__3213E83FC08EC622"); - entity.ToTable("dim_referencedata"); + entity.ToTable("dim_referencedata"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.CodeScheme) .IsRequired() .HasMaxLength(511) - .HasColumnName("code_scheme"); + .HasColumnName("code_scheme"); entity.Property(e => e.CodeValue) .IsRequired() .HasMaxLength(511) - .HasColumnName("code_value"); + .HasColumnName("code_value"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.DimReferencedataId) .HasDefaultValueSql("((-1))") - .HasColumnName("dim_referencedata_id"); + .HasColumnName("dim_referencedata_id"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.NameEn) .HasMaxLength(255) - .HasColumnName("name_en"); + .HasColumnName("name_en"); entity.Property(e => e.NameFi) .HasMaxLength(255) - .HasColumnName("name_fi"); + .HasColumnName("name_fi"); entity.Property(e => e.NameSv) .HasMaxLength(255) - .HasColumnName("name_sv"); - entity.Property(e => e.Order).HasColumnName("order"); + .HasColumnName("name_sv"); + entity.Property(e => e.Order).HasColumnName("order"); entity.Property(e => e.SourceDescription) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.Property(e => e.State) .HasMaxLength(255) - .HasColumnName("state"); + .HasColumnName("state"); entity.HasOne(d => d.DimReferencedata).WithMany(p => p.InverseDimReferencedata) .HasForeignKey(d => d.DimReferencedataId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FK_dim_referencedata_dim_referencedata"); + .HasConstraintName("FK_dim_referencedata_dim_referencedata"); - entity.HasMany(d => d.DimPublicationsNavigation).WithMany(p => p.DimReferencedataNavigation) - .UsingEntity>( - "FactDimReferencedataFieldOfArt", + entity.HasMany(d => d.DimPublicationsNavigation).WithMany(p => p.DimReferencedataNavigation) + .UsingEntity>( + "FactDimReferencedataFieldOfArt", r => r.HasOne().WithMany() .HasForeignKey("DimPublicationId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("field_of_art_code"), + .HasConstraintName("field_of_art_code"), l => l.HasOne().WithMany() .HasForeignKey("DimReferencedataId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_dim_r130466"), - j => - { - j.HasKey("DimReferencedataId", "DimPublicationId").HasName("PK__fact_dim__FD761943629A8020"); - j.ToTable("fact_dim_referencedata_field_of_art"); - j.IndexerProperty("DimReferencedataId").HasColumnName("dim_referencedata_id"); - j.IndexerProperty("DimPublicationId").HasColumnName("dim_publication_id"); - }); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_regi__3213E83F93AC9CC7"); - - entity.ToTable("dim_registered_data_source"); - - entity.Property(e => e.Id).HasColumnName("id"); + .HasConstraintName("FKfact_dim_r130466"), + j => + { + j.HasKey("DimReferencedataId", "DimPublicationId").HasName("PK__fact_dim__62A1BBCB4C5919F9"); + j.ToTable("fact_dim_referencedata_field_of_art"); + j.IndexerProperty("DimReferencedataId").HasColumnName("dim_referencedata_id"); + j.IndexerProperty("DimPublicationId").HasColumnName("dim_publication_id"); + }); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_regi__3213E83F42B64A5F"); + + entity.ToTable("dim_registered_data_source"); + + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DimOrganizationId).HasColumnName("dim_organization_id"); + .HasColumnName("created"); + entity.Property(e => e.DimOrganizationId).HasColumnName("dim_organization_id"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.Name) .IsRequired() .HasMaxLength(255) - .HasColumnName("name"); + .HasColumnName("name"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.HasOne(d => d.DimOrganization).WithMany(p => p.DimRegisteredDataSources) .HasForeignKey(d => d.DimOrganizationId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("data source of organisation"); - }); + .HasConstraintName("data source of organisation"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83F2B377137"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83FDACC2790"); - entity.ToTable("dim_research_activity"); + entity.ToTable("dim_research_activity"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DescriptionEn).HasColumnName("description_en"); - entity.Property(e => e.DescriptionFi).HasColumnName("description_fi"); - entity.Property(e => e.DescriptionSv).HasColumnName("description_sv"); - entity.Property(e => e.DimCountryCode).HasColumnName("dim_country_code"); - entity.Property(e => e.DimEndDate).HasColumnName("dim_end_date"); - entity.Property(e => e.DimEventId).HasColumnName("dim_event_id"); - entity.Property(e => e.DimOrganizationId).HasColumnName("dim_organization_id"); - entity.Property(e => e.DimPublicationChannelId).HasColumnName("dim_publication_channel_id"); - entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); - entity.Property(e => e.DimStartDate).HasColumnName("dim_start_date"); + .HasColumnName("created"); + entity.Property(e => e.DescriptionEn).HasColumnName("description_en"); + entity.Property(e => e.DescriptionFi).HasColumnName("description_fi"); + entity.Property(e => e.DescriptionSv).HasColumnName("description_sv"); + entity.Property(e => e.DimCountryCode).HasColumnName("dim_country_code"); + entity.Property(e => e.DimEndDate).HasColumnName("dim_end_date"); + entity.Property(e => e.DimEventId).HasColumnName("dim_event_id"); + entity.Property(e => e.DimOrganizationId).HasColumnName("dim_organization_id"); + entity.Property(e => e.DimPublicationChannelId).HasColumnName("dim_publication_channel_id"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + entity.Property(e => e.DimStartDate).HasColumnName("dim_start_date"); entity.Property(e => e.IndentifierlessTargetOrg) .HasMaxLength(511) - .HasColumnName("indentifierless_target_org"); - entity.Property(e => e.InternationalCollaboration).HasColumnName("international_collaboration"); + .HasColumnName("indentifierless_target_org"); + entity.Property(e => e.InternationalCollaboration).HasColumnName("international_collaboration"); entity.Property(e => e.LocalIdentifier) .HasMaxLength(255) - .HasColumnName("local_identifier"); + .HasColumnName("local_identifier"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.NameEn) .HasMaxLength(400) - .HasColumnName("name_en"); + .HasColumnName("name_en"); entity.Property(e => e.NameFi) .HasMaxLength(400) - .HasColumnName("name_fi"); + .HasColumnName("name_fi"); entity.Property(e => e.NameSv) .HasMaxLength(400) - .HasColumnName("name_sv"); + .HasColumnName("name_sv"); entity.Property(e => e.NameUnd) .HasMaxLength(255) - .HasColumnName("name_und"); + .HasColumnName("name_und"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.HasOne(d => d.DimCountryCodeNavigation).WithMany(p => p.DimResearchActivities) .HasForeignKey(d => d.DimCountryCode) - .HasConstraintName("FKdim_resear758241"); + .HasConstraintName("FKdim_resear758241"); entity.HasOne(d => d.DimEndDateNavigation).WithMany(p => p.DimResearchActivityDimEndDateNavigations) .HasForeignKey(d => d.DimEndDate) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_resear682769"); + .HasConstraintName("FKdim_resear682769"); entity.HasOne(d => d.DimEvent).WithMany(p => p.DimResearchActivities) .HasForeignKey(d => d.DimEventId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("Activity Context "); + .HasConstraintName("Activity Context "); entity.HasOne(d => d.DimOrganization).WithMany(p => p.DimResearchActivities) .HasForeignKey(d => d.DimOrganizationId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_resear921843"); + .HasConstraintName("FKdim_resear921843"); entity.HasOne(d => d.DimPublicationChannel).WithMany(p => p.DimResearchActivities) .HasForeignKey(d => d.DimPublicationChannelId) - .HasConstraintName("FKdim_resear832055"); + .HasConstraintName("FKdim_resear832055"); entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.DimResearchActivities) .HasForeignKey(d => d.DimRegisteredDataSourceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_resear37345"); + .HasConstraintName("FKdim_resear37345"); entity.HasOne(d => d.DimStartDateNavigation).WithMany(p => p.DimResearchActivityDimStartDateNavigations) .HasForeignKey(d => d.DimStartDate) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_resear797546"); - }); + .HasConstraintName("FKdim_resear797546"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => new { e.DimResearchActivityId, e.DimKeywordId }).HasName("PK__dim_rese__F7B536BCFC302E4A"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.DimResearchActivityId, e.DimKeywordId }).HasName("PK__dim_rese__F7B536BC16C738C6"); - entity.ToTable("dim_research_activity_dim_keyword"); + entity.ToTable("dim_research_activity_dim_keyword"); - entity.Property(e => e.DimResearchActivityId).HasColumnName("dim_research_activity_id"); - entity.Property(e => e.DimKeywordId).HasColumnName("dim_keyword_id"); + entity.Property(e => e.DimResearchActivityId).HasColumnName("dim_research_activity_id"); + entity.Property(e => e.DimKeywordId).HasColumnName("dim_keyword_id"); entity.HasOne(d => d.DimResearchActivity).WithMany(p => p.DimResearchActivityDimKeywords) .HasForeignKey(d => d.DimResearchActivityId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_resear970214"); - }); + .HasConstraintName("FKdim_resear970214"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83F359DF386"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83F584CEA61"); - entity.ToTable("dim_research_community"); + entity.ToTable("dim_research_community"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Acronym) .HasMaxLength(255) .IsUnicode(false) - .HasColumnName("acronym"); + .HasColumnName("acronym"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DescriptionEn).HasColumnName("description_en"); - entity.Property(e => e.DescriptionFi).HasColumnName("description_fi"); - entity.Property(e => e.DescriptionSv).HasColumnName("description_sv"); - entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + .HasColumnName("created"); + entity.Property(e => e.DescriptionEn).HasColumnName("description_en"); + entity.Property(e => e.DescriptionFi).HasColumnName("description_fi"); + entity.Property(e => e.DescriptionSv).HasColumnName("description_sv"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.NameEn) .HasMaxLength(255) - .HasColumnName("name_en"); + .HasColumnName("name_en"); entity.Property(e => e.NameFi) .HasMaxLength(255) - .HasColumnName("name_fi"); + .HasColumnName("name_fi"); entity.Property(e => e.NameSv) .HasMaxLength(255) - .HasColumnName("name_sv"); + .HasColumnName("name_sv"); entity.Property(e => e.NameUnd) .HasMaxLength(255) - .HasColumnName("name_und"); + .HasColumnName("name_und"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.DimResearchCommunities) .HasForeignKey(d => d.DimRegisteredDataSourceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_resear59027"); - }); + .HasConstraintName("FKdim_resear59027"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83F050D7511"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83F981C3B59"); - entity.ToTable("dim_research_data_catalog"); + entity.ToTable("dim_research_data_catalog"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.DescriptionEn) .HasMaxLength(4000) - .HasColumnName("description_en"); + .HasColumnName("description_en"); entity.Property(e => e.DescriptionFi) .HasMaxLength(4000) - .HasColumnName("description_fi"); + .HasColumnName("description_fi"); entity.Property(e => e.DescriptionSv) .HasMaxLength(4000) - .HasColumnName("description_sv"); + .HasColumnName("description_sv"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.NameEn) .HasMaxLength(4000) - .HasColumnName("name_en"); + .HasColumnName("name_en"); entity.Property(e => e.NameFi) .HasMaxLength(4000) - .HasColumnName("name_fi"); + .HasColumnName("name_fi"); entity.Property(e => e.NameSv) .HasMaxLength(4000) - .HasColumnName("name_sv"); + .HasColumnName("name_sv"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); - }); + .HasColumnName("source_id"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83F16C07662"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83F16795255"); - entity.ToTable("dim_research_dataset"); + entity.ToTable("dim_research_dataset"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.DatasetCreated) .HasColumnType("datetime") - .HasColumnName("dataset_created"); + .HasColumnName("dataset_created"); entity.Property(e => e.DatasetModified) .HasColumnType("datetime") - .HasColumnName("dataset_modified"); - entity.Property(e => e.DescriptionEn).HasColumnName("description_en"); - entity.Property(e => e.DescriptionFi).HasColumnName("description_fi"); - entity.Property(e => e.DescriptionSv).HasColumnName("description_sv"); - entity.Property(e => e.DescriptionUnd).HasColumnName("description_und"); - entity.Property(e => e.DimReferencedataAvailability).HasColumnName("dim_referencedata_availability"); - entity.Property(e => e.DimReferencedataLicense).HasColumnName("dim_referencedata_license"); - entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); - entity.Property(e => e.DimResearchDataCatalogId).HasColumnName("dim_research_data_catalog_id"); + .HasColumnName("dataset_modified"); + entity.Property(e => e.DescriptionEn).HasColumnName("description_en"); + entity.Property(e => e.DescriptionFi).HasColumnName("description_fi"); + entity.Property(e => e.DescriptionSv).HasColumnName("description_sv"); + entity.Property(e => e.DescriptionUnd).HasColumnName("description_und"); + entity.Property(e => e.DimReferencedataAvailability).HasColumnName("dim_referencedata_availability"); + entity.Property(e => e.DimReferencedataLicense).HasColumnName("dim_referencedata_license"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + entity.Property(e => e.DimResearchDataCatalogId).HasColumnName("dim_research_data_catalog_id"); entity.Property(e => e.GeographicCoverage) .HasMaxLength(4000) - .HasColumnName("geographic_coverage"); - entity.Property(e => e.InternationalCollaboration).HasColumnName("international_collaboration"); + .HasColumnName("geographic_coverage"); + entity.Property(e => e.InternationalCollaboration).HasColumnName("international_collaboration"); entity.Property(e => e.LocalIdentifier) .HasMaxLength(255) - .HasColumnName("local_identifier"); + .HasColumnName("local_identifier"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.NameEn) .HasMaxLength(4000) - .HasColumnName("name_en"); + .HasColumnName("name_en"); entity.Property(e => e.NameFi) .HasMaxLength(4000) - .HasColumnName("name_fi"); + .HasColumnName("name_fi"); entity.Property(e => e.NameSv) .HasMaxLength(4000) - .HasColumnName("name_sv"); + .HasColumnName("name_sv"); entity.Property(e => e.NameUnd) .HasMaxLength(4000) - .HasColumnName("name_und"); + .HasColumnName("name_und"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.Property(e => e.TemporalCoverageEnd) .HasColumnType("datetime") - .HasColumnName("temporal_coverage_end"); + .HasColumnName("temporal_coverage_end"); entity.Property(e => e.TemporalCoverageStart) .HasColumnType("datetime") - .HasColumnName("temporal_coverage_start"); + .HasColumnName("temporal_coverage_start"); entity.Property(e => e.VersionInfo) .HasMaxLength(255) - .HasColumnName("version_info"); + .HasColumnName("version_info"); entity.HasOne(d => d.DimReferencedataAvailabilityNavigation).WithMany(p => p.DimResearchDatasetDimReferencedataAvailabilityNavigations) .HasForeignKey(d => d.DimReferencedataAvailability) - .HasConstraintName("Availibiity classes"); + .HasConstraintName("Availibiity classes"); entity.HasOne(d => d.DimReferencedataLicenseNavigation).WithMany(p => p.DimResearchDatasetDimReferencedataLicenseNavigations) .HasForeignKey(d => d.DimReferencedataLicense) - .HasConstraintName("License"); + .HasConstraintName("License"); entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.DimResearchDatasets) .HasForeignKey(d => d.DimRegisteredDataSourceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_resear76083"); + .HasConstraintName("FKdim_resear76083"); entity.HasOne(d => d.DimResearchDataCatalog).WithMany(p => p.DimResearchDatasets) .HasForeignKey(d => d.DimResearchDataCatalogId) - .HasConstraintName("FKdim_resear753411"); + .HasConstraintName("FKdim_resear753411"); - entity.HasMany(d => d.DimKeywords).WithMany(p => p.DimResearchDatasets) - .UsingEntity>( - "BrResearchDatasetDimKeyword", + entity.HasMany(d => d.DimKeywords).WithMany(p => p.DimResearchDatasets) + .UsingEntity>( + "BrResearchDatasetDimKeyword", r => r.HasOne().WithMany() .HasForeignKey("DimKeywordId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_researc961356"), + .HasConstraintName("FKbr_researc961356"), l => l.HasOne().WithMany() .HasForeignKey("DimResearchDatasetId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("dataset-keywords"), - j => - { - j.HasKey("DimResearchDatasetId", "DimKeywordId").HasName("PK__br_resea__4D226DF251ADDB75"); - j.ToTable("br_research_dataset_dim_keyword"); - j.IndexerProperty("DimResearchDatasetId").HasColumnName("dim_research_dataset_id"); - j.IndexerProperty("DimKeywordId").HasColumnName("dim_keyword_id"); - }); - - entity.HasMany(d => d.DimReferencedata).WithMany(p => p.DimResearchDatasets) - .UsingEntity>( - "BrLanguageCodesForDataset", + .HasConstraintName("dataset-keywords"), + j => + { + j.HasKey("DimResearchDatasetId", "DimKeywordId").HasName("PK__br_resea__4D226DF2E27EABBA"); + j.ToTable("br_research_dataset_dim_keyword"); + j.IndexerProperty("DimResearchDatasetId").HasColumnName("dim_research_dataset_id"); + j.IndexerProperty("DimKeywordId").HasColumnName("dim_keyword_id"); + }); + + entity.HasMany(d => d.DimReferencedata).WithMany(p => p.DimResearchDatasets) + .UsingEntity>( + "BrLanguageCodesForDataset", r => r.HasOne().WithMany() .HasForeignKey("DimReferencedataId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_languag480770"), + .HasConstraintName("FKbr_languag480770"), l => l.HasOne().WithMany() .HasForeignKey("DimResearchDatasetId") .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKbr_languag34243"), - j => - { - j.HasKey("DimResearchDatasetId", "DimReferencedataId").HasName("PK__br_langu__576647BF5ACF45EF"); - j.ToTable("br_language_codes_for_datasets"); - j.IndexerProperty("DimResearchDatasetId").HasColumnName("dim_research_dataset_id"); - j.IndexerProperty("DimReferencedataId").HasColumnName("dim_referencedata_id"); - }); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83FDF70033E"); - - entity.ToTable("dim_researcher_description"); - - entity.Property(e => e.Id).HasColumnName("id"); + .HasConstraintName("FKbr_languag34243"), + j => + { + j.HasKey("DimResearchDatasetId", "DimReferencedataId").HasName("PK__br_langu__576647BFC61E3D4B"); + j.ToTable("br_language_codes_for_datasets"); + j.IndexerProperty("DimResearchDatasetId").HasColumnName("dim_research_dataset_id"); + j.IndexerProperty("DimReferencedataId").HasColumnName("dim_referencedata_id"); + }); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83F137B9F9E"); + + entity.ToTable("dim_research_project"); + + entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.AbbrevationEn) + .HasMaxLength(4000) + .HasColumnName("abbrevation_en"); + entity.Property(e => e.AbbrevationFi) + .HasMaxLength(4000) + .HasComment("Hanke - lyhenne") + .HasColumnName("abbrevation_fi"); + entity.Property(e => e.AbbrevationSv) + .HasMaxLength(4000) + .HasColumnName("abbrevation_sv"); + entity.Property(e => e.AdditionalInformationEn).HasColumnName("additional_information_en"); + entity.Property(e => e.AdditionalInfromationFi) + .HasComment("Hanke - lisätieto") + .HasColumnName("additional_infromation_fi"); + entity.Property(e => e.AddtitionalInformationSv).HasColumnName("addtitional_information_sv"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DescriptionType).HasColumnName("description_type"); - entity.Property(e => e.DimKnownPersonId).HasColumnName("dim_known_person_id"); - entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + .HasColumnName("created"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + entity.Property(e => e.EndDate) + .HasComment("Hanke - päättymispäivämäärä") + .HasColumnName("end_date"); + entity.Property(e => e.GoalsEn).HasColumnName("goals_en"); + entity.Property(e => e.GoalsFi).HasColumnName("goals_fi"); + entity.Property(e => e.GoalsSv).HasColumnName("goals_sv"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); - entity.Property(e => e.ResearchDescriptionEn).HasColumnName("research_description_en"); - entity.Property(e => e.ResearchDescriptionFi).HasColumnName("research_description_fi"); - entity.Property(e => e.ResearchDescriptionSv).HasColumnName("research_description_sv"); + .HasColumnName("modified"); + entity.Property(e => e.NameEn) + .HasMaxLength(4000) + .HasColumnName("name_en"); + entity.Property(e => e.NameFi) + .HasMaxLength(4000) + .HasComment("Hanke - nimi") + .HasColumnName("name_fi"); + entity.Property(e => e.NameSv) + .HasMaxLength(4000) + .HasColumnName("name_sv"); + entity.Property(e => e.OutcomeEffectEn).HasColumnName("outcome_effect_en"); + entity.Property(e => e.OutcomeEffectFi).HasColumnName("outcome_effect_fi"); + entity.Property(e => e.OutcomeEffectSv).HasColumnName("outcome_effect_sv"); + entity.Property(e => e.ResponsibleOrganization) + .HasComment("Hanke - vastuuorganisaatio") + .HasColumnName("responsible_organization"); + entity.Property(e => e.ResponsiblePerson).HasColumnName("responsible_person"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); + entity.Property(e => e.StartDate) + .HasComment("Hanke - alkamispäivämäärä") + .HasColumnName("start_date"); + entity.Property(e => e.SummaryEn).HasColumnName("summary_en"); + entity.Property(e => e.SummaryFi) + .HasComment("Hanke - tiivistelmä") + .HasColumnName("summary_fi"); + entity.Property(e => e.SummarySv).HasColumnName("summary_sv"); + + entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.DimResearchProjects) + .HasForeignKey(d => d.DimRegisteredDataSourceId) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("FKdim_resear450820"); + + entity.HasOne(d => d.EndDateNavigation).WithMany(p => p.DimResearchProjectEndDateNavigations) + .HasForeignKey(d => d.EndDate) + .HasConstraintName("FKdim_resear517343"); + + entity.HasOne(d => d.ResponsibleOrganizationNavigation).WithMany(p => p.DimResearchProjects) + .HasForeignKey(d => d.ResponsibleOrganization) + .OnDelete(DeleteBehavior.ClientSetNull) + .HasConstraintName("FKdim_resear741036"); + + entity.HasOne(d => d.ResponsiblePersonNavigation).WithMany(p => p.DimResearchProjects) + .HasForeignKey(d => d.ResponsiblePerson) + .HasConstraintName("FKdim_resear684392"); + + entity.HasOne(d => d.StartDateNavigation).WithMany(p => p.DimResearchProjectStartDateNavigations) + .HasForeignKey(d => d.StartDate) + .HasConstraintName("FKdim_resear246050"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83FFAFA1A53"); + + entity.ToTable("dim_researcher_description"); + + entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Created) + .HasColumnType("datetime") + .HasColumnName("created"); + entity.Property(e => e.DescriptionType).HasColumnName("description_type"); + entity.Property(e => e.DimKnownPersonId).HasColumnName("dim_known_person_id"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + entity.Property(e => e.Modified) + .HasColumnType("datetime") + .HasColumnName("modified"); + entity.Property(e => e.ResearchDescriptionEn).HasColumnName("research_description_en"); + entity.Property(e => e.ResearchDescriptionFi).HasColumnName("research_description_fi"); + entity.Property(e => e.ResearchDescriptionSv).HasColumnName("research_description_sv"); + entity.Property(e => e.SourceDescription) + .HasMaxLength(255) + .HasColumnName("source_description"); + entity.Property(e => e.SourceId) + .IsRequired() + .HasMaxLength(255) + .HasColumnName("source_id"); entity.HasOne(d => d.DimKnownPerson).WithMany(p => p.DimResearcherDescriptions) .HasForeignKey(d => d.DimKnownPersonId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_resear662094"); + .HasConstraintName("FKdim_resear662094"); entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.DimResearcherDescriptions) .HasForeignKey(d => d.DimRegisteredDataSourceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_resear1848"); - }); + .HasConstraintName("FKdim_resear1848"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83FD058DBCD"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_rese__3213E83F5CF84769"); - entity.ToTable("dim_researcher_to_research_community"); + entity.ToTable("dim_researcher_to_research_community"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.DescriptionEn) .HasMaxLength(511) - .HasColumnName("description_en"); + .HasColumnName("description_en"); entity.Property(e => e.DescriptionFi) .HasMaxLength(511) - .HasColumnName("description_fi"); + .HasColumnName("description_fi"); entity.Property(e => e.DescriptionSv) .HasMaxLength(511) - .HasColumnName("description_sv"); - entity.Property(e => e.DimKnownPersonId).HasColumnName("dim_known_person_id"); - entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); - entity.Property(e => e.DimResearchCommunityId).HasColumnName("dim_research_community_id"); - entity.Property(e => e.EndDate).HasColumnName("end_date"); + .HasColumnName("description_sv"); + entity.Property(e => e.DimKnownPersonId).HasColumnName("dim_known_person_id"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + entity.Property(e => e.DimResearchCommunityId).HasColumnName("dim_research_community_id"); + entity.Property(e => e.EndDate).HasColumnName("end_date"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); - entity.Property(e => e.StartDate).HasColumnName("start_date"); + .HasColumnName("source_id"); + entity.Property(e => e.StartDate).HasColumnName("start_date"); entity.HasOne(d => d.DimKnownPerson).WithMany(p => p.DimResearcherToResearchCommunities) .HasForeignKey(d => d.DimKnownPersonId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_resear255903"); + .HasConstraintName("FKdim_resear255903"); entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.DimResearcherToResearchCommunities) .HasForeignKey(d => d.DimRegisteredDataSourceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_resear408039"); + .HasConstraintName("FKdim_resear408039"); entity.HasOne(d => d.DimResearchCommunity).WithMany(p => p.DimResearcherToResearchCommunities) .HasForeignKey(d => d.DimResearchCommunityId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_resear3824"); + .HasConstraintName("FKdim_resear3824"); entity.HasOne(d => d.EndDateNavigation).WithMany(p => p.DimResearcherToResearchCommunityEndDateNavigations) .HasForeignKey(d => d.EndDate) - .HasConstraintName("FKdim_resear658483"); + .HasConstraintName("FKdim_resear658483"); entity.HasOne(d => d.StartDateNavigation).WithMany(p => p.DimResearcherToResearchCommunityStartDateNavigations) .HasForeignKey(d => d.StartDate) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_resear612809"); - }); + .HasConstraintName("FKdim_resear612809"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_sect__3213E83FDB797418"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_sect__3213E83F5592F30E"); - entity.ToTable("dim_sector"); + entity.ToTable("dim_sector"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.NameEn) .HasMaxLength(255) - .HasColumnName("name_en"); + .HasColumnName("name_en"); entity.Property(e => e.NameFi) .IsRequired() .HasMaxLength(255) - .HasColumnName("name_fi"); + .HasColumnName("name_fi"); entity.Property(e => e.NameSv) .HasMaxLength(255) - .HasColumnName("name_sv"); + .HasColumnName("name_sv"); entity.Property(e => e.SectorId) .IsRequired() .HasMaxLength(255) - .HasColumnName("sector_id"); + .HasColumnName("sector_id"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); - }); + .HasColumnName("source_id"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_serv__3213E83FB0408291"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_serv__3213E83F9DAA3E32"); - entity.ToTable("dim_service"); + entity.ToTable("dim_service"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Acronym) .HasMaxLength(255) .IsUnicode(false) - .HasColumnName("acronym"); + .HasColumnName("acronym"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.DescriptionEn) .HasMaxLength(4000) .IsUnicode(false) - .HasColumnName("description_en"); + .HasColumnName("description_en"); entity.Property(e => e.DescriptionFi) .HasMaxLength(4000) .IsUnicode(false) - .HasColumnName("description_fi"); + .HasColumnName("description_fi"); entity.Property(e => e.DescriptionSv) .HasMaxLength(4000) .IsUnicode(false) - .HasColumnName("description_sv"); + .HasColumnName("description_sv"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.NameEn) .HasMaxLength(4000) .IsUnicode(false) - .HasColumnName("name_en"); + .HasColumnName("name_en"); entity.Property(e => e.NameFi) .HasMaxLength(4000) .IsUnicode(false) - .HasColumnName("name_fi"); + .HasColumnName("name_fi"); entity.Property(e => e.NameSv) .HasMaxLength(4000) .IsUnicode(false) - .HasColumnName("name_sv"); + .HasColumnName("name_sv"); entity.Property(e => e.ScientificDescriptionEn) .HasMaxLength(4000) - .HasColumnName("scientific_description_en"); + .HasColumnName("scientific_description_en"); entity.Property(e => e.ScientificDescriptionFi) .HasMaxLength(4000) - .HasColumnName("scientific_description_fi"); + .HasColumnName("scientific_description_fi"); entity.Property(e => e.ScientificDescriptionSv) .HasMaxLength(4000) - .HasColumnName("scientific_description_sv"); + .HasColumnName("scientific_description_sv"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.Property(e => e.Type) .HasMaxLength(255) .IsUnicode(false) - .HasColumnName("type"); - }); + .HasColumnName("type"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_serv__3213E83F11F1C725"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_serv__3213E83F18056E2A"); - entity.ToTable("dim_service_point"); + entity.ToTable("dim_service_point"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.DescriptionEn) .HasMaxLength(4000) - .HasColumnName("description_en"); + .HasColumnName("description_en"); entity.Property(e => e.DescriptionFi) .HasMaxLength(4000) - .HasColumnName("description_fi"); + .HasColumnName("description_fi"); entity.Property(e => e.DescriptionSv) .HasMaxLength(4000) - .HasColumnName("description_sv"); + .HasColumnName("description_sv"); entity.Property(e => e.Email) .HasMaxLength(255) .IsUnicode(false) - .HasColumnName("email"); + .HasColumnName("email"); entity.Property(e => e.LinkAccessPolicyEn) .HasMaxLength(4000) .IsUnicode(false) - .HasColumnName("link_access_policy_en"); + .HasColumnName("link_access_policy_en"); entity.Property(e => e.LinkAccessPolicyFi) .HasMaxLength(4000) .IsUnicode(false) - .HasColumnName("link_access_policy_fi"); + .HasColumnName("link_access_policy_fi"); entity.Property(e => e.LinkAccessPolicySv) .HasMaxLength(4000) .IsUnicode(false) - .HasColumnName("link_access_policy_sv"); + .HasColumnName("link_access_policy_sv"); entity.Property(e => e.LinkAdditionalInfoEn) .HasMaxLength(4000) .IsUnicode(false) - .HasColumnName("link_additional_info_en"); + .HasColumnName("link_additional_info_en"); entity.Property(e => e.LinkAdditionalInfoFi) .HasMaxLength(4000) .IsUnicode(false) - .HasColumnName("link_additional_info_fi"); + .HasColumnName("link_additional_info_fi"); entity.Property(e => e.LinkAdditionalInfoSv) .HasMaxLength(4000) .IsUnicode(false) - .HasColumnName("link_additional_info_sv"); + .HasColumnName("link_additional_info_sv"); entity.Property(e => e.LinkInternationalInfra) .HasMaxLength(4000) - .HasColumnName("link_international_infra"); + .HasColumnName("link_international_infra"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.NameEn) .HasMaxLength(4000) - .HasColumnName("name_en"); + .HasColumnName("name_en"); entity.Property(e => e.NameFi) .HasMaxLength(4000) - .HasColumnName("name_fi"); + .HasColumnName("name_fi"); entity.Property(e => e.NameSv) .HasMaxLength(4000) - .HasColumnName("name_sv"); + .HasColumnName("name_sv"); entity.Property(e => e.Phone) .HasMaxLength(255) .IsUnicode(false) - .HasColumnName("phone"); + .HasColumnName("phone"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.Property(e => e.VisitingAddress) .HasMaxLength(4000) - .HasColumnName("visiting_address"); - }); + .HasColumnName("visiting_address"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_tele__3213E83F3B6C982D"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_tele__3213E83FED4DA330"); - entity.ToTable("dim_telephone_number"); + entity.ToTable("dim_telephone_number"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DimKnownPersonId).HasColumnName("dim_known_person_id"); - entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + .HasColumnName("created"); + entity.Property(e => e.DimKnownPersonId).HasColumnName("dim_known_person_id"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.Property(e => e.TelephoneNumber) .HasMaxLength(255) - .HasColumnName("telephone_number"); + .HasColumnName("telephone_number"); entity.HasOne(d => d.DimKnownPerson).WithMany(p => p.DimTelephoneNumbers) .HasForeignKey(d => d.DimKnownPersonId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_teleph963809"); + .HasConstraintName("FKdim_teleph963809"); entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.DimTelephoneNumbers) .HasForeignKey(d => d.DimRegisteredDataSourceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_teleph299867"); - }); + .HasConstraintName("FKdim_teleph299867"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_type__3213E83FA83602FC"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_type__3213E83FED969D5F"); - entity.ToTable("dim_type_of_funding"); + entity.ToTable("dim_type_of_funding"); - entity.HasIndex(e => e.TypeId, "UQ__dim_type__2C00059939053CB5").IsUnique(); + entity.HasIndex(e => e.TypeId, "UQ__dim_type__2C000599C4DA9E9E").IsUnique(); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DimTypeOfFundingId).HasColumnName("dim_type_of_funding_id"); + .HasColumnName("created"); + entity.Property(e => e.DimTypeOfFundingId).HasColumnName("dim_type_of_funding_id"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.NameEn) .HasMaxLength(255) - .HasColumnName("name_en"); + .HasColumnName("name_en"); entity.Property(e => e.NameFi) .IsRequired() .HasMaxLength(255) - .HasColumnName("name_fi"); + .HasColumnName("name_fi"); entity.Property(e => e.NameSv) .HasMaxLength(255) - .HasColumnName("name_sv"); + .HasColumnName("name_sv"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.Property(e => e.TypeId) .IsRequired() .HasMaxLength(255) - .HasColumnName("type_id"); + .HasColumnName("type_id"); entity.HasOne(d => d.DimTypeOfFundingNavigation).WithMany(p => p.InverseDimTypeOfFundingNavigation) .HasForeignKey(d => d.DimTypeOfFundingId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("part of "); - }); + .HasConstraintName("part of "); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_user__3213E83FA023C452"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_user__3213E83FD8C5D104"); - entity.ToTable("dim_user_choices"); + entity.ToTable("dim_user_choices"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DimReferencedataIdAsUserChoiceLabel).HasColumnName("dim_referencedata_id_as_user_choice_label"); - entity.Property(e => e.DimUserProfileId).HasColumnName("dim_user_profile_id"); + .HasColumnName("created"); + entity.Property(e => e.DimReferencedataIdAsUserChoiceLabel).HasColumnName("dim_referencedata_id_as_user_choice_label"); + entity.Property(e => e.DimUserProfileId).HasColumnName("dim_user_profile_id"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); - entity.Property(e => e.UserChoiceValue).HasColumnName("user_choice_value"); + .HasColumnName("source_id"); + entity.Property(e => e.UserChoiceValue).HasColumnName("user_choice_value"); entity.HasOne(d => d.DimReferencedataIdAsUserChoiceLabelNavigation).WithMany(p => p.DimUserChoices) .HasForeignKey(d => d.DimReferencedataIdAsUserChoiceLabel) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("user_selection_label"); + .HasConstraintName("user_selection_label"); entity.HasOne(d => d.DimUserProfile).WithMany(p => p.DimUserChoices) .HasForeignKey(d => d.DimUserProfileId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_user_c733293"); - }); + .HasConstraintName("FKdim_user_c733293"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_user__3213E83F53AE6B60"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_user__3213E83FBB3A5E60"); - entity.ToTable("dim_user_profile"); + entity.ToTable("dim_user_profile"); - entity.Property(e => e.Id).HasColumnName("id"); - entity.Property(e => e.AllowAllSubscriptions).HasColumnName("allow_all_subscriptions"); + entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.AllowAllSubscriptions).HasColumnName("allow_all_subscriptions"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DimKnownPersonId).HasColumnName("dim_known_person_id"); - entity.Property(e => e.Hidden).HasColumnName("hidden"); + .HasColumnName("created"); + entity.Property(e => e.DimKnownPersonId).HasColumnName("dim_known_person_id"); + entity.Property(e => e.Hidden).HasColumnName("hidden"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.OrcidAccessToken) .HasMaxLength(255) - .HasColumnName("orcid_access_token"); + .HasColumnName("orcid_access_token"); entity.Property(e => e.OrcidId) .HasMaxLength(20) - .HasColumnName("orcid_id"); + .HasColumnName("orcid_id"); entity.Property(e => e.OrcidRefreshToken) .HasMaxLength(255) - .HasColumnName("orcid_refresh_token"); + .HasColumnName("orcid_refresh_token"); entity.Property(e => e.OrcidTokenExpires) .HasColumnType("datetime") - .HasColumnName("orcid_token_expires"); + .HasColumnName("orcid_token_expires"); entity.Property(e => e.OrcidTokenScope) .HasMaxLength(255) - .HasColumnName("orcid_token_scope"); + .HasColumnName("orcid_token_scope"); + entity.Property(e => e.PublishNewOrcidData).HasColumnName("publish_new_orcid_data"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); - entity.Property(e => e.Statuscode).HasColumnName("statuscode"); + .HasColumnName("source_id"); + entity.Property(e => e.Statuscode).HasColumnName("statuscode"); entity.HasOne(d => d.DimKnownPerson).WithMany(p => p.DimUserProfiles) .HasForeignKey(d => d.DimKnownPersonId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKdim_user_p611467"); - }); + .HasConstraintName("FKdim_user_p611467"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_web___3213E83FED3CB9D2"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_web___3213E83FED3CB9D2"); - entity.ToTable("dim_web_link"); + entity.ToTable("dim_web_link"); - entity.Property(e => e.Id).HasColumnName("id"); + entity.Property(e => e.Id).HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); - entity.Property(e => e.DimCallProgrammeId).HasColumnName("dim_call_programme_id"); - entity.Property(e => e.DimFundingDecisionId).HasColumnName("dim_funding_decision_id"); - entity.Property(e => e.DimKnownPersonId).HasColumnName("dim_known_person_id"); - entity.Property(e => e.DimOrganizationId).HasColumnName("dim_organization_id"); - entity.Property(e => e.DimProfileOnlyDatasetId).HasColumnName("dim_profile_only_dataset_id"); - entity.Property(e => e.DimProfileOnlyFundingDecisionId).HasColumnName("dim_profile_only_funding_decision_id"); - entity.Property(e => e.DimProfileOnlyResearchActivityId).HasColumnName("dim_profile_only_research_activity_id"); - entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); - entity.Property(e => e.DimResearchActivityId).HasColumnName("dim_research_activity_id"); - entity.Property(e => e.DimResearchCommunityId).HasColumnName("dim_research_community_id"); - entity.Property(e => e.DimResearchDataCatalogId).HasColumnName("dim_research_data_catalog_id"); - entity.Property(e => e.DimResearchDatasetId).HasColumnName("dim_research_dataset_id"); + .HasColumnName("created"); + entity.Property(e => e.DimCallProgrammeId).HasColumnName("dim_call_programme_id"); + entity.Property(e => e.DimFundingDecisionId).HasColumnName("dim_funding_decision_id"); + entity.Property(e => e.DimKnownPersonId).HasColumnName("dim_known_person_id"); + entity.Property(e => e.DimOrganizationId).HasColumnName("dim_organization_id"); + entity.Property(e => e.DimProfileOnlyDatasetId).HasColumnName("dim_profile_only_dataset_id"); + entity.Property(e => e.DimProfileOnlyFundingDecisionId).HasColumnName("dim_profile_only_funding_decision_id"); + entity.Property(e => e.DimProfileOnlyResearchActivityId).HasColumnName("dim_profile_only_research_activity_id"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + entity.Property(e => e.DimResearchActivityId).HasColumnName("dim_research_activity_id"); + entity.Property(e => e.DimResearchCommunityId).HasColumnName("dim_research_community_id"); + entity.Property(e => e.DimResearchDataCatalogId).HasColumnName("dim_research_data_catalog_id"); + entity.Property(e => e.DimResearchDatasetId).HasColumnName("dim_research_dataset_id"); + entity.Property(e => e.DimResearchProjectId).HasColumnName("dim_research_project_id"); entity.Property(e => e.LanguageVariant) .HasMaxLength(255) - .HasColumnName("language_variant"); + .HasColumnName("language_variant"); entity.Property(e => e.LinkLabel) .HasMaxLength(255) - .HasColumnName("link_label"); + .HasColumnName("link_label"); entity.Property(e => e.LinkType) .HasMaxLength(255) - .HasColumnName("link_type"); + .HasColumnName("link_type"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.Property(e => e.Url) .HasMaxLength(511) - .HasColumnName("url"); + .HasColumnName("url"); entity.HasOne(d => d.DimCallProgramme).WithMany(p => p.DimWebLinks) .HasForeignKey(d => d.DimCallProgrammeId) - .HasConstraintName("call homepage"); + .HasConstraintName("call homepage"); entity.HasOne(d => d.DimFundingDecision).WithMany(p => p.DimWebLinks) .HasForeignKey(d => d.DimFundingDecisionId) - .HasConstraintName("FKdim_web_li388345"); + .HasConstraintName("FKdim_web_li388345"); entity.HasOne(d => d.DimKnownPerson).WithMany(p => p.DimWebLinks) .HasForeignKey(d => d.DimKnownPersonId) - .HasConstraintName("web presence"); + .HasConstraintName("web presence"); entity.HasOne(d => d.DimOrganization).WithMany(p => p.DimWebLinks) .HasForeignKey(d => d.DimOrganizationId) - .HasConstraintName("language specific homepage"); + .HasConstraintName("language specific homepage"); entity.HasOne(d => d.DimProfileOnlyDataset).WithMany(p => p.DimWebLinks) .HasForeignKey(d => d.DimProfileOnlyDatasetId) - .HasConstraintName("FKdim_web_li121209"); + .HasConstraintName("FKdim_web_li121209"); entity.HasOne(d => d.DimProfileOnlyFundingDecision).WithMany(p => p.DimWebLinks) .HasForeignKey(d => d.DimProfileOnlyFundingDecisionId) - .HasConstraintName("FKdim_web_li251700"); + .HasConstraintName("FKdim_web_li251700"); entity.HasOne(d => d.DimProfileOnlyResearchActivity).WithMany(p => p.DimWebLinks) .HasForeignKey(d => d.DimProfileOnlyResearchActivityId) - .HasConstraintName("weblink"); + .HasConstraintName("weblink"); entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.DimWebLinks) .HasForeignKey(d => d.DimRegisteredDataSourceId) - .HasConstraintName("FKdim_web_regdatasource"); + .HasConstraintName("FKdim_web_regdatasource"); entity.HasOne(d => d.DimResearchActivity).WithMany(p => p.DimWebLinks) .HasForeignKey(d => d.DimResearchActivityId) - .HasConstraintName("FKdim_web_li272158"); + .HasConstraintName("FKdim_web_li272158"); entity.HasOne(d => d.DimResearchCommunity).WithMany(p => p.DimWebLinks) .HasForeignKey(d => d.DimResearchCommunityId) - .HasConstraintName("FKdim_web_li827668"); + .HasConstraintName("FKdim_web_li827668"); entity.HasOne(d => d.DimResearchDataCatalog).WithMany(p => p.DimWebLinks) .HasForeignKey(d => d.DimResearchDataCatalogId) - .HasConstraintName("FKdim_web_li597610"); + .HasConstraintName("FKdim_web_li597610"); entity.HasOne(d => d.DimResearchDataset).WithMany(p => p.DimWebLinks) .HasForeignKey(d => d.DimResearchDatasetId) - .HasConstraintName("fairdata_weblink"); - }); + .HasConstraintName("fairdata_weblink"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => e.Id).HasName("PK__dim_word__3213E83FF69EDF9D"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__dim_word__3213E83F31AAC0AB"); - entity.ToTable("dim_word_cluster"); + entity.ToTable("dim_word_cluster"); entity.Property(e => e.Id) .ValueGeneratedNever() - .HasColumnName("id"); + .HasColumnName("id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); - }); - - 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 }).HasName("PK__fact_con__B7D7E1B56B3DE77D"); - - entity.ToTable("fact_contribution"); - - entity.Property(e => e.DimFundingDecisionId).HasColumnName("dim_funding_decision_id"); - entity.Property(e => e.DimOrganizationId).HasColumnName("dim_organization_id"); - entity.Property(e => e.DimDateId).HasColumnName("dim_date_id"); - entity.Property(e => e.DimNameId).HasColumnName("dim_name_id"); - entity.Property(e => e.DimPublicationId).HasColumnName("dim_publication_id"); - entity.Property(e => e.DimGeoId).HasColumnName("dim_geo_id"); - entity.Property(e => e.DimInfrastructureId).HasColumnName("dim_infrastructure_id"); - entity.Property(e => e.DimNewsFeedId).HasColumnName("dim_news_feed_id"); - entity.Property(e => e.DimResearchDatasetId).HasColumnName("dim_research_dataset_id"); - entity.Property(e => e.DimResearchDataCatalogId).HasColumnName("dim_research_data_catalog_id"); - entity.Property(e => e.DimIdentifierlessDataId).HasColumnName("dim_identifierless_data_id"); - entity.Property(e => e.DimResearchActivityId).HasColumnName("dim_research_activity_id"); - entity.Property(e => e.DimResearchCommunityId).HasColumnName("dim_research_community_id"); - entity.Property(e => e.DimReferencedataActorRoleId).HasColumnName("dim_referencedata_actor_role_id"); + .HasColumnName("source_id"); + }); + + 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__7D4857055BA7D7F9"); + + entity.ToTable("fact_contribution"); + + entity.Property(e => e.DimFundingDecisionId).HasColumnName("dim_funding_decision_id"); + entity.Property(e => e.DimOrganizationId).HasColumnName("dim_organization_id"); + entity.Property(e => e.DimDateId).HasColumnName("dim_date_id"); + entity.Property(e => e.DimNameId).HasColumnName("dim_name_id"); + entity.Property(e => e.DimPublicationId).HasColumnName("dim_publication_id"); + entity.Property(e => e.DimGeoId).HasColumnName("dim_geo_id"); + entity.Property(e => e.DimInfrastructureId).HasColumnName("dim_infrastructure_id"); + entity.Property(e => e.DimNewsFeedId).HasColumnName("dim_news_feed_id"); + entity.Property(e => e.DimResearchDatasetId).HasColumnName("dim_research_dataset_id"); + entity.Property(e => e.DimResearchDataCatalogId).HasColumnName("dim_research_data_catalog_id"); + entity.Property(e => e.DimIdentifierlessDataId).HasColumnName("dim_identifierless_data_id"); + entity.Property(e => e.DimResearchActivityId).HasColumnName("dim_research_activity_id"); + entity.Property(e => e.DimResearchCommunityId).HasColumnName("dim_research_community_id"); + entity.Property(e => e.DimReferencedataActorRoleId).HasColumnName("dim_referencedata_actor_role_id"); + entity.Property(e => e.DimResearchProjectId) + .HasDefaultValueSql("('-1')") + .HasColumnName("dim_research_project_id"); entity.Property(e => e.ContributionType) .IsRequired() .HasMaxLength(50) - .HasColumnName("contribution_type"); + .HasColumnName("contribution_type"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.HasOne(d => d.DimDate).WithMany(p => p.FactContributions) .HasForeignKey(d => d.DimDateId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_contr224183"); + .HasConstraintName("FKfact_contr224183"); entity.HasOne(d => d.DimFundingDecision).WithMany(p => p.FactContributions) .HasForeignKey(d => d.DimFundingDecisionId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_contr321314"); + .HasConstraintName("FKfact_contr321314"); entity.HasOne(d => d.DimGeo).WithMany(p => p.FactContributions) .HasForeignKey(d => d.DimGeoId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_contr711408"); + .HasConstraintName("FKfact_contr711408"); entity.HasOne(d => d.DimIdentifierlessData).WithMany(p => p.FactContributions) .HasForeignKey(d => d.DimIdentifierlessDataId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_contr276794"); + .HasConstraintName("FKfact_contr276794"); entity.HasOne(d => d.DimInfrastructure).WithMany(p => p.FactContributions) .HasForeignKey(d => d.DimInfrastructureId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_contr565219"); + .HasConstraintName("FKfact_contr565219"); entity.HasOne(d => d.DimName).WithMany(p => p.FactContributions) .HasForeignKey(d => d.DimNameId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_contr288640"); + .HasConstraintName("FKfact_contr288640"); entity.HasOne(d => d.DimNewsFeed).WithMany(p => p.FactContributions) .HasForeignKey(d => d.DimNewsFeedId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_contr632925"); + .HasConstraintName("FKfact_contr632925"); entity.HasOne(d => d.DimOrganization).WithMany(p => p.FactContributions) .HasForeignKey(d => d.DimOrganizationId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_contr42449"); + .HasConstraintName("FKfact_contr42449"); entity.HasOne(d => d.DimPublication).WithMany(p => p.FactContributions) .HasForeignKey(d => d.DimPublicationId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_contr481795"); + .HasConstraintName("FKfact_contr481795"); entity.HasOne(d => d.DimReferencedataActorRole).WithMany(p => p.FactContributions) .HasForeignKey(d => d.DimReferencedataActorRoleId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_contr466649"); + .HasConstraintName("FKfact_contr466649"); entity.HasOne(d => d.DimResearchActivity).WithMany(p => p.FactContributions) .HasForeignKey(d => d.DimResearchActivityId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("activity - person -affiliation AND activity - funding decision "); + .HasConstraintName("activity - person -affiliation AND activity - funding decision "); entity.HasOne(d => d.DimResearchCommunity).WithMany(p => p.FactContributions) .HasForeignKey(d => d.DimResearchCommunityId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_contr434262"); + .HasConstraintName("FKfact_contr434262"); entity.HasOne(d => d.DimResearchDataCatalog).WithMany(p => p.FactContributions) .HasForeignKey(d => d.DimResearchDataCatalogId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_contr859541"); + .HasConstraintName("FKfact_contr859541"); entity.HasOne(d => d.DimResearchDataset).WithMany(p => p.FactContributions) .HasForeignKey(d => d.DimResearchDatasetId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("authors, infras, publications, funding decisions"); - }); + .HasConstraintName("authors, infras, publications, funding decisions"); + }); - 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__3CB15DD3757270A4"); + 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__3CB15DD379EDCB7E"); - entity.ToTable("fact_dim_referencedata_field_of_science"); + entity.ToTable("fact_dim_referencedata_field_of_science"); - entity.Property(e => e.DimReferencedataId).HasColumnName("dim_referencedata_id"); - entity.Property(e => e.DimResearchDatasetId).HasColumnName("dim_research_dataset_id"); - entity.Property(e => e.DimKnownPersonId).HasColumnName("dim_known_person_id"); - entity.Property(e => e.DimPublicationId).HasColumnName("dim_publication_id"); - entity.Property(e => e.DimResearchActivityId).HasColumnName("dim_research_activity_id"); - entity.Property(e => e.DimFundingDecisionId).HasColumnName("dim_funding_decision_id"); - entity.Property(e => e.DimInfrastructureId).HasColumnName("dim_infrastructure_id"); + entity.Property(e => e.DimReferencedataId).HasColumnName("dim_referencedata_id"); + entity.Property(e => e.DimResearchDatasetId).HasColumnName("dim_research_dataset_id"); + entity.Property(e => e.DimKnownPersonId).HasColumnName("dim_known_person_id"); + entity.Property(e => e.DimPublicationId).HasColumnName("dim_publication_id"); + entity.Property(e => e.DimResearchActivityId).HasColumnName("dim_research_activity_id"); + entity.Property(e => e.DimFundingDecisionId).HasColumnName("dim_funding_decision_id"); + entity.Property(e => e.DimInfrastructureId).HasColumnName("dim_infrastructure_id"); entity.HasOne(d => d.DimFundingDecision).WithMany(p => p.FactDimReferencedataFieldOfSciences) .HasForeignKey(d => d.DimFundingDecisionId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_dim_r41359"); + .HasConstraintName("FKfact_dim_r41359"); entity.HasOne(d => d.DimInfrastructure).WithMany(p => p.FactDimReferencedataFieldOfSciences) .HasForeignKey(d => d.DimInfrastructureId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_dim_r956301"); + .HasConstraintName("FKfact_dim_r956301"); entity.HasOne(d => d.DimKnownPerson).WithMany(p => p.FactDimReferencedataFieldOfSciences) .HasForeignKey(d => d.DimKnownPersonId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName(" "); + .HasConstraintName(" "); entity.HasOne(d => d.DimPublication).WithMany(p => p.FactDimReferencedataFieldOfSciences) .HasForeignKey(d => d.DimPublicationId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_dim_r127122"); + .HasConstraintName("FKfact_dim_r127122"); entity.HasOne(d => d.DimReferencedata).WithMany(p => p.FactDimReferencedataFieldOfSciences) .HasForeignKey(d => d.DimReferencedataId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_dim_r588766"); + .HasConstraintName("FKfact_dim_r588766"); entity.HasOne(d => d.DimResearchDataset).WithMany(p => p.FactDimReferencedataFieldOfSciences) .HasForeignKey(d => d.DimResearchDatasetId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_dim_r926246"); - }); - - modelBuilder.Entity(entity => - { - entity.HasKey(e => new { e.DimUserProfileId, e.DimFieldDisplaySettingsId, e.DimNameId, e.DimWebLinkId, e.DimFundingDecisionId, e.DimPublicationId, e.DimPidId, e.DimPidIdOrcidPutCode, e.DimResearchActivityId, e.DimEventId, e.DimEducationId, e.DimCompetenceId, e.DimResearchCommunityId, e.DimTelephoneNumberId, e.DimEmailAddrressId, e.DimResearcherDescriptionId, e.DimIdentifierlessDataId, e.DimProfileOnlyPublicationId, e.DimProfileOnlyResearchActivityId, e.DimKeywordId, e.DimAffiliationId, e.DimResearcherToResearchCommunityId, e.DimReferencedataFieldOfScienceId, e.DimResearchDatasetId, e.DimRegisteredDataSourceId, e.DimReferencedataActorRoleId, e.DimProfileOnlyDatasetId, e.DimProfileOnlyFundingDecisionId }); - - entity.ToTable("fact_field_values"); - - entity.Property(e => e.DimUserProfileId).HasColumnName("dim_user_profile_id"); - entity.Property(e => e.DimFieldDisplaySettingsId).HasColumnName("dim_field_display_settings_id"); - entity.Property(e => e.DimNameId).HasColumnName("dim_name_id"); - entity.Property(e => e.DimWebLinkId).HasColumnName("dim_web_link_id"); - entity.Property(e => e.DimFundingDecisionId).HasColumnName("dim_funding_decision_id"); - entity.Property(e => e.DimPublicationId).HasColumnName("dim_publication_id"); - entity.Property(e => e.DimPidId).HasColumnName("dim_pid_id"); - entity.Property(e => e.DimPidIdOrcidPutCode).HasColumnName("dim_pid_id_orcid_put_code"); - entity.Property(e => e.DimResearchActivityId).HasColumnName("dim_research_activity_id"); - entity.Property(e => e.DimEventId).HasColumnName("dim_event_id"); - entity.Property(e => e.DimEducationId).HasColumnName("dim_education_id"); - entity.Property(e => e.DimCompetenceId).HasColumnName("dim_competence_id"); - entity.Property(e => e.DimResearchCommunityId).HasColumnName("dim_research_community_id"); - entity.Property(e => e.DimTelephoneNumberId).HasColumnName("dim_telephone_number_id"); - entity.Property(e => e.DimEmailAddrressId).HasColumnName("dim_email_addrress_id"); - entity.Property(e => e.DimResearcherDescriptionId).HasColumnName("dim_researcher_description_id"); - entity.Property(e => e.DimIdentifierlessDataId).HasColumnName("dim_identifierless_data_id"); - entity.Property(e => e.DimProfileOnlyPublicationId).HasColumnName("dim_profile_only_publication_id"); - entity.Property(e => e.DimProfileOnlyResearchActivityId).HasColumnName("dim_profile_only_research_activity_id"); - entity.Property(e => e.DimKeywordId).HasColumnName("dim_keyword_id"); - entity.Property(e => e.DimAffiliationId).HasColumnName("dim_affiliation_id"); - entity.Property(e => e.DimResearcherToResearchCommunityId).HasColumnName("dim_researcher_to_research_community_id"); - entity.Property(e => e.DimReferencedataFieldOfScienceId).HasColumnName("dim_referencedata_field_of_science_id"); - entity.Property(e => e.DimResearchDatasetId).HasColumnName("dim_research_dataset_id"); - entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); - entity.Property(e => e.DimReferencedataActorRoleId).HasColumnName("dim_referencedata_actor_role_id"); - entity.Property(e => e.DimProfileOnlyDatasetId).HasColumnName("dim_profile_only_dataset_id"); - entity.Property(e => e.DimProfileOnlyFundingDecisionId).HasColumnName("dim_profile_only_funding_decision_id"); + .HasConstraintName("FKfact_dim_r926246"); + }); + + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.DimUserProfileId, e.DimFieldDisplaySettingsId, e.DimNameId, e.DimWebLinkId, e.DimFundingDecisionId, e.DimPublicationId, e.DimPidId, e.DimPidIdOrcidPutCode, e.DimResearchActivityId, e.DimEventId, e.DimEducationId, e.DimCompetenceId, e.DimResearchCommunityId, e.DimTelephoneNumberId, e.DimEmailAddrressId, e.DimResearcherDescriptionId, e.DimIdentifierlessDataId, e.DimProfileOnlyPublicationId, e.DimProfileOnlyResearchActivityId, e.DimKeywordId, e.DimAffiliationId, e.DimResearcherToResearchCommunityId, e.DimReferencedataFieldOfScienceId, e.DimResearchDatasetId, e.DimRegisteredDataSourceId, e.DimReferencedataActorRoleId, e.DimProfileOnlyDatasetId, e.DimProfileOnlyFundingDecisionId }); + + entity.ToTable("fact_field_values"); + + entity.Property(e => e.DimUserProfileId).HasColumnName("dim_user_profile_id"); + entity.Property(e => e.DimFieldDisplaySettingsId).HasColumnName("dim_field_display_settings_id"); + entity.Property(e => e.DimNameId).HasColumnName("dim_name_id"); + entity.Property(e => e.DimWebLinkId).HasColumnName("dim_web_link_id"); + entity.Property(e => e.DimFundingDecisionId).HasColumnName("dim_funding_decision_id"); + entity.Property(e => e.DimPublicationId).HasColumnName("dim_publication_id"); + entity.Property(e => e.DimPidId).HasColumnName("dim_pid_id"); + entity.Property(e => e.DimPidIdOrcidPutCode).HasColumnName("dim_pid_id_orcid_put_code"); + entity.Property(e => e.DimResearchActivityId).HasColumnName("dim_research_activity_id"); + entity.Property(e => e.DimEventId).HasColumnName("dim_event_id"); + entity.Property(e => e.DimEducationId).HasColumnName("dim_education_id"); + entity.Property(e => e.DimCompetenceId).HasColumnName("dim_competence_id"); + entity.Property(e => e.DimResearchCommunityId).HasColumnName("dim_research_community_id"); + entity.Property(e => e.DimTelephoneNumberId).HasColumnName("dim_telephone_number_id"); + entity.Property(e => e.DimEmailAddrressId).HasColumnName("dim_email_addrress_id"); + entity.Property(e => e.DimResearcherDescriptionId).HasColumnName("dim_researcher_description_id"); + entity.Property(e => e.DimIdentifierlessDataId).HasColumnName("dim_identifierless_data_id"); + entity.Property(e => e.DimProfileOnlyPublicationId).HasColumnName("dim_profile_only_publication_id"); + entity.Property(e => e.DimProfileOnlyResearchActivityId).HasColumnName("dim_profile_only_research_activity_id"); + entity.Property(e => e.DimKeywordId).HasColumnName("dim_keyword_id"); + entity.Property(e => e.DimAffiliationId).HasColumnName("dim_affiliation_id"); + entity.Property(e => e.DimResearcherToResearchCommunityId).HasColumnName("dim_researcher_to_research_community_id"); + entity.Property(e => e.DimReferencedataFieldOfScienceId).HasColumnName("dim_referencedata_field_of_science_id"); + entity.Property(e => e.DimResearchDatasetId).HasColumnName("dim_research_dataset_id"); + entity.Property(e => e.DimRegisteredDataSourceId).HasColumnName("dim_registered_data_source_id"); + entity.Property(e => e.DimReferencedataActorRoleId).HasColumnName("dim_referencedata_actor_role_id"); + entity.Property(e => e.DimProfileOnlyDatasetId).HasColumnName("dim_profile_only_dataset_id"); + entity.Property(e => e.DimProfileOnlyFundingDecisionId).HasColumnName("dim_profile_only_funding_decision_id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); - entity.Property(e => e.PrimaryValue).HasColumnName("primary_value"); - entity.Property(e => e.Show).HasColumnName("show"); + .HasColumnName("modified"); + entity.Property(e => e.PrimaryValue).HasColumnName("primary_value"); + entity.Property(e => e.Show).HasColumnName("show"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.HasOne(d => d.DimAffiliation).WithMany(p => p.FactFieldValues) .HasForeignKey(d => d.DimAffiliationId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_field816276"); + .HasConstraintName("FKfact_field816276"); entity.HasOne(d => d.DimCompetence).WithMany(p => p.FactFieldValues) .HasForeignKey(d => d.DimCompetenceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_field746305"); + .HasConstraintName("FKfact_field746305"); entity.HasOne(d => d.DimEducation).WithMany(p => p.FactFieldValues) .HasForeignKey(d => d.DimEducationId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_field445913"); + .HasConstraintName("FKfact_field445913"); entity.HasOne(d => d.DimEmailAddrress).WithMany(p => p.FactFieldValues) .HasForeignKey(d => d.DimEmailAddrressId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_field507571"); + .HasConstraintName("FKfact_field507571"); entity.HasOne(d => d.DimEvent).WithMany(p => p.FactFieldValues) .HasForeignKey(d => d.DimEventId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_field645906"); + .HasConstraintName("FKfact_field645906"); entity.HasOne(d => d.DimFieldDisplaySettings).WithMany(p => p.FactFieldValues) .HasForeignKey(d => d.DimFieldDisplaySettingsId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("field content settings"); + .HasConstraintName("field content settings"); entity.HasOne(d => d.DimFundingDecision).WithMany(p => p.FactFieldValues) .HasForeignKey(d => d.DimFundingDecisionId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_field5141"); + .HasConstraintName("FKfact_field5141"); entity.HasOne(d => d.DimIdentifierlessData).WithMany(p => p.FactFieldValues) .HasForeignKey(d => d.DimIdentifierlessDataId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_field39379"); + .HasConstraintName("FKfact_field39379"); entity.HasOne(d => d.DimKeyword).WithMany(p => p.FactFieldValues) .HasForeignKey(d => d.DimKeywordId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_field786713"); + .HasConstraintName("FKfact_field786713"); entity.HasOne(d => d.DimName).WithMany(p => p.FactFieldValues) .HasForeignKey(d => d.DimNameId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_field604813"); + .HasConstraintName("FKfact_field604813"); entity.HasOne(d => d.DimPid).WithMany(p => p.FactFieldValueDimPids) .HasForeignKey(d => d.DimPidId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_field989816"); + .HasConstraintName("FKfact_field989816"); entity.HasOne(d => d.DimPidIdOrcidPutCodeNavigation).WithMany(p => p.FactFieldValueDimPidIdOrcidPutCodeNavigations) .HasForeignKey(d => d.DimPidIdOrcidPutCode) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("orcid_put_code"); + .HasConstraintName("orcid_put_code"); entity.HasOne(d => d.DimProfileOnlyDataset).WithMany(p => p.FactFieldValues) .HasForeignKey(d => d.DimProfileOnlyDatasetId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_field456895"); + .HasConstraintName("FKfact_field456895"); entity.HasOne(d => d.DimProfileOnlyFundingDecision).WithMany(p => p.FactFieldValues) .HasForeignKey(d => d.DimProfileOnlyFundingDecisionId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_field141786"); + .HasConstraintName("FKfact_field141786"); entity.HasOne(d => d.DimProfileOnlyPublication).WithMany(p => p.FactFieldValues) .HasForeignKey(d => d.DimProfileOnlyPublicationId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_field692932"); + .HasConstraintName("FKfact_field692932"); entity.HasOne(d => d.DimProfileOnlyResearchActivity).WithMany(p => p.FactFieldValues) .HasForeignKey(d => d.DimProfileOnlyResearchActivityId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_field671081"); + .HasConstraintName("FKfact_field671081"); entity.HasOne(d => d.DimPublication).WithMany(p => p.FactFieldValues) .HasForeignKey(d => d.DimPublicationId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("displayed publications"); + .HasConstraintName("displayed publications"); entity.HasOne(d => d.DimReferencedataActorRole).WithMany(p => p.FactFieldValueDimReferencedataActorRoles) .HasForeignKey(d => d.DimReferencedataActorRoleId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("actor role"); + .HasConstraintName("actor role"); entity.HasOne(d => d.DimReferencedataFieldOfScience).WithMany(p => p.FactFieldValueDimReferencedataFieldOfSciences) .HasForeignKey(d => d.DimReferencedataFieldOfScienceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_field192234"); + .HasConstraintName("FKfact_field192234"); entity.HasOne(d => d.DimRegisteredDataSource).WithMany(p => p.FactFieldValues) .HasForeignKey(d => d.DimRegisteredDataSourceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_field346220"); + .HasConstraintName("FKfact_field346220"); entity.HasOne(d => d.DimResearchActivity).WithMany(p => p.FactFieldValues) .HasForeignKey(d => d.DimResearchActivityId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_field878671"); + .HasConstraintName("FKfact_field878671"); entity.HasOne(d => d.DimResearchCommunity).WithMany(p => p.FactFieldValues) .HasForeignKey(d => d.DimResearchCommunityId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_field750435"); + .HasConstraintName("FKfact_field750435"); entity.HasOne(d => d.DimResearchDataset).WithMany(p => p.FactFieldValues) .HasForeignKey(d => d.DimResearchDatasetId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_field998843"); + .HasConstraintName("FKfact_field998843"); entity.HasOne(d => d.DimResearcherDescription).WithMany(p => p.FactFieldValues) .HasForeignKey(d => d.DimResearcherDescriptionId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_field76121"); + .HasConstraintName("FKfact_field76121"); entity.HasOne(d => d.DimResearcherToResearchCommunity).WithMany(p => p.FactFieldValues) .HasForeignKey(d => d.DimResearcherToResearchCommunityId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_field377489"); + .HasConstraintName("FKfact_field377489"); entity.HasOne(d => d.DimTelephoneNumber).WithMany(p => p.FactFieldValues) .HasForeignKey(d => d.DimTelephoneNumberId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_field995052"); + .HasConstraintName("FKfact_field995052"); entity.HasOne(d => d.DimUserProfile).WithMany(p => p.FactFieldValues) .HasForeignKey(d => d.DimUserProfileId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_field936263"); + .HasConstraintName("FKfact_field936263"); entity.HasOne(d => d.DimWebLink).WithMany(p => p.FactFieldValues) .HasForeignKey(d => d.DimWebLinkId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_field475402"); - }); + .HasConstraintName("FKfact_field475402"); + }); - modelBuilder.Entity(entity => - { - entity.HasKey(e => new { e.DimKeywordId, e.DimServiceId, e.DimServicePointId, e.DimInfrastructureId }).HasName("PK__fact_inf__3C29B6806CAFC072"); + modelBuilder.Entity(entity => + { + entity.HasKey(e => new { e.DimKeywordId, e.DimServiceId, e.DimServicePointId, e.DimInfrastructureId }).HasName("PK__fact_inf__3C29B6806204C32C"); - entity.ToTable("fact_infra_keywords"); + entity.ToTable("fact_infra_keywords"); - entity.Property(e => e.DimKeywordId).HasColumnName("dim_keyword_id"); - entity.Property(e => e.DimServiceId).HasColumnName("dim_service_id"); - entity.Property(e => e.DimServicePointId).HasColumnName("dim_service_point_id"); - entity.Property(e => e.DimInfrastructureId).HasColumnName("dim_infrastructure_id"); + entity.Property(e => e.DimKeywordId).HasColumnName("dim_keyword_id"); + entity.Property(e => e.DimServiceId).HasColumnName("dim_service_id"); + entity.Property(e => e.DimServicePointId).HasColumnName("dim_service_point_id"); + entity.Property(e => e.DimInfrastructureId).HasColumnName("dim_infrastructure_id"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.HasOne(d => d.DimInfrastructure).WithMany(p => p.FactInfraKeywords) .HasForeignKey(d => d.DimInfrastructureId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_infra800296"); + .HasConstraintName("FKfact_infra800296"); entity.HasOne(d => d.DimKeyword).WithMany(p => p.FactInfraKeywords) .HasForeignKey(d => d.DimKeywordId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_infra76615"); + .HasConstraintName("FKfact_infra76615"); entity.HasOne(d => d.DimService).WithMany(p => p.FactInfraKeywords) .HasForeignKey(d => d.DimServiceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_infra505599"); + .HasConstraintName("FKfact_infra505599"); entity.HasOne(d => d.DimServicePoint).WithMany(p => p.FactInfraKeywords) .HasForeignKey(d => d.DimServicePointId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_infra619117"); - }); + .HasConstraintName("FKfact_infra619117"); + }); - 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__850A8E30119C2EB4"); + 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__850A8E300A3C70B3"); - entity.ToTable("fact_upkeep"); + entity.ToTable("fact_upkeep"); - entity.Property(e => e.DimOrganizationId).HasColumnName("dim_organization_id"); - entity.Property(e => e.DimGeoId).HasColumnName("dim_geo_id"); - entity.Property(e => e.DimInfrastructureId).HasColumnName("dim_infrastructure_id"); - entity.Property(e => e.DimServiceId).HasColumnName("dim_service_id"); - entity.Property(e => e.DimServicePointId).HasColumnName("dim_service_point_id"); - entity.Property(e => e.DimDateIdStart).HasColumnName("dim_date_id_start"); - entity.Property(e => e.DimDateIdEnd).HasColumnName("dim_date_id_end"); + entity.Property(e => e.DimOrganizationId).HasColumnName("dim_organization_id"); + entity.Property(e => e.DimGeoId).HasColumnName("dim_geo_id"); + entity.Property(e => e.DimInfrastructureId).HasColumnName("dim_infrastructure_id"); + entity.Property(e => e.DimServiceId).HasColumnName("dim_service_id"); + entity.Property(e => e.DimServicePointId).HasColumnName("dim_service_point_id"); + entity.Property(e => e.DimDateIdStart).HasColumnName("dim_date_id_start"); + entity.Property(e => e.DimDateIdEnd).HasColumnName("dim_date_id_end"); entity.Property(e => e.Created) .HasColumnType("datetime") - .HasColumnName("created"); + .HasColumnName("created"); entity.Property(e => e.Modified) .HasColumnType("datetime") - .HasColumnName("modified"); + .HasColumnName("modified"); entity.Property(e => e.SourceDescription) .HasMaxLength(255) - .HasColumnName("source_description"); + .HasColumnName("source_description"); entity.Property(e => e.SourceId) .IsRequired() .HasMaxLength(255) - .HasColumnName("source_id"); + .HasColumnName("source_id"); entity.HasOne(d => d.DimDateIdEndNavigation).WithMany(p => p.FactUpkeepDimDateIdEndNavigations) .HasForeignKey(d => d.DimDateIdEnd) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_upkee332759"); + .HasConstraintName("FKfact_upkee332759"); entity.HasOne(d => d.DimDateIdStartNavigation).WithMany(p => p.FactUpkeepDimDateIdStartNavigations) .HasForeignKey(d => d.DimDateIdStart) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_upkee283512"); + .HasConstraintName("FKfact_upkee283512"); entity.HasOne(d => d.DimGeo).WithMany(p => p.FactUpkeeps) .HasForeignKey(d => d.DimGeoId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_upkee520794"); + .HasConstraintName("FKfact_upkee520794"); entity.HasOne(d => d.DimInfrastructure).WithMany(p => p.FactUpkeeps) .HasForeignKey(d => d.DimInfrastructureId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_upkee374605"); + .HasConstraintName("FKfact_upkee374605"); entity.HasOne(d => d.DimOrganization).WithMany(p => p.FactUpkeeps) .HasForeignKey(d => d.DimOrganizationId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_upkee851834"); + .HasConstraintName("FKfact_upkee851834"); entity.HasOne(d => d.DimService).WithMany(p => p.FactUpkeeps) .HasForeignKey(d => d.DimServiceId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_upkee302288"); + .HasConstraintName("FKfact_upkee302288"); entity.HasOne(d => d.DimServicePoint).WithMany(p => p.FactUpkeeps) .HasForeignKey(d => d.DimServicePointId) .OnDelete(DeleteBehavior.ClientSetNull) - .HasConstraintName("FKfact_upkee415806"); - }); + .HasConstraintName("FKfact_upkee415806"); + }); + + OnModelCreatingPartial(modelBuilder); + } - OnModelCreatingPartial(modelBuilder); - } - - partial void OnModelCreatingPartial(ModelBuilder modelBuilder); -} + partial void OnModelCreatingPartial(ModelBuilder modelBuilder); +} diff --git a/aspnetcore/src/api/Services/IUserProfileService.cs b/aspnetcore/src/api/Services/IUserProfileService.cs index e435a33..6d72ce8 100644 --- a/aspnetcore/src/api/Services/IUserProfileService.cs +++ b/aspnetcore/src/api/Services/IUserProfileService.cs @@ -3,6 +3,7 @@ using System.Threading.Tasks; using api.Models.Log; using api.Models.Orcid; +using api.Models.ProfileEditor; using api.Models.ProfileEditor.Items; using api.Models.Ttv; @@ -29,6 +30,7 @@ public interface IUserProfileService DimKnownPerson GetNewDimKnownPerson(string orcidId, DateTime currentDateTime); Task GetProfileDataAsync(int userprofileId, LogUserIdentification logUserIdentification, bool forElasticsearch = false); Task GetUserprofile(string orcidId); + Task GetUserprofileTracking(string orcidId); Task GetUserprofileById(int Id); Task GetUserprofileId(string orcidId); Task IsUserprofilePublished(int dimUserProfileId); @@ -38,6 +40,8 @@ public interface IUserProfileService Task UserprofileExistsForOrcidId(string orcidId); Task HideProfile(string orcidId, LogUserIdentification logUserIdentification); Task RevealProfile(string orcidId, LogUserIdentification logUserIdentification); + ProfileSettings GetProfileSettings(DimUserProfile dimUserProfile); + Task SaveProfileSettings(string orcidId, DimUserProfile dimUserProfile, ProfileSettings profileSettings, LogUserIdentification logUserIdentification); string GetCMemoryCacheKey_ProfileSettings(string orcidId); } } \ No newline at end of file diff --git a/aspnetcore/src/api/Services/OrcidImportService.cs b/aspnetcore/src/api/Services/OrcidImportService.cs index 0df82d9..7125f6c 100644 --- a/aspnetcore/src/api/Services/OrcidImportService.cs +++ b/aspnetcore/src/api/Services/OrcidImportService.cs @@ -347,6 +347,16 @@ private DimWebLink GetDimWebLink( }; } + /* + * Helper method, set parameter 'show' of new FactFieldValue. + * Setting is determined by presence of ORCID put code and and user's setting DimUserProfile.PublishNewOrcidData. + * Presence of ORCID put code is used as a signal that the data is new. + */ + private bool Set_FactFieldValues_Show(FactFieldValue ffv) + { + return ffv.DimPidIdOrcidPutCodeNavigation != null && ffv.DimUserProfile.PublishNewOrcidData; + } + /* * Import ORCID record json into user profile. */ @@ -562,6 +572,7 @@ public async Task ImportOrcidRecordJsonIntoUserProfile(int userprofileId, factFieldValuesOtherName.DimRegisteredDataSourceId = orcidRegisteredDataSourceId; factFieldValuesOtherName.DimName = dimName_otherName; factFieldValuesOtherName.DimPidIdOrcidPutCodeNavigation = dimPidOrcidPutCodeOtherName; + factFieldValuesOtherName.Show = Set_FactFieldValues_Show(factFieldValuesOtherName); _ttvContext.FactFieldValues.Add(factFieldValuesOtherName); } } @@ -632,6 +643,7 @@ public async Task ImportOrcidRecordJsonIntoUserProfile(int userprofileId, factFieldValuesWebLink.DimWebLink = dimWebLink; factFieldValuesWebLink.DimRegisteredDataSourceId = orcidRegisteredDataSourceId; factFieldValuesWebLink.DimPidIdOrcidPutCodeNavigation = dimPidOrcidPutCodeWebLink; + factFieldValuesWebLink.Show = Set_FactFieldValues_Show(factFieldValuesWebLink); _ttvContext.FactFieldValues.Add(factFieldValuesWebLink); } } @@ -699,6 +711,7 @@ public async Task ImportOrcidRecordJsonIntoUserProfile(int userprofileId, factFieldValuesResearcherDescription.DimFieldDisplaySettings = dimFieldDisplaySettingsResearcherDescription; factFieldValuesResearcherDescription.DimResearcherDescription = dimResearcherDescription; factFieldValuesResearcherDescription.DimRegisteredDataSourceId = orcidRegisteredDataSourceId; + factFieldValuesResearcherDescription.Show = Set_FactFieldValues_Show(factFieldValuesResearcherDescription); _ttvContext.FactFieldValues.Add(factFieldValuesResearcherDescription); } } @@ -777,6 +790,7 @@ public async Task ImportOrcidRecordJsonIntoUserProfile(int userprofileId, factFieldValuesEmail.DimPidIdOrcidPutCodeNavigation = dimPidOrcidPutCodeEmail; } + factFieldValuesEmail.Show = Set_FactFieldValues_Show(factFieldValuesEmail); _ttvContext.FactFieldValues.Add(factFieldValuesEmail); } @@ -854,6 +868,7 @@ public async Task ImportOrcidRecordJsonIntoUserProfile(int userprofileId, factFieldValuesKeyword.DimRegisteredDataSourceId = orcidRegisteredDataSourceId; factFieldValuesKeyword.DimKeyword = dimKeyword; factFieldValuesKeyword.DimPidIdOrcidPutCodeNavigation = dimPidOrcidPutCodeKeyword; + factFieldValuesKeyword.Show = Set_FactFieldValues_Show(factFieldValuesKeyword); _ttvContext.FactFieldValues.Add(factFieldValuesKeyword); } processedKeywordFactFieldValues.Add(factFieldValuesKeyword); @@ -927,6 +942,7 @@ public async Task ImportOrcidRecordJsonIntoUserProfile(int userprofileId, factFieldValuesExternalIdentifier.DimRegisteredDataSourceId = orcidRegisteredDataSourceId; factFieldValuesExternalIdentifier.DimPid = dimPid; factFieldValuesExternalIdentifier.DimPidIdOrcidPutCodeNavigation = dimPidOrcidPutCodeExternalIdentifier; + factFieldValuesExternalIdentifier.Show = Set_FactFieldValues_Show(factFieldValuesExternalIdentifier); _ttvContext.FactFieldValues.Add(factFieldValuesExternalIdentifier); } } @@ -1016,6 +1032,7 @@ public async Task ImportOrcidRecordJsonIntoUserProfile(int userprofileId, factFieldValuesEducation.DimRegisteredDataSourceId = orcidRegisteredDataSourceId; factFieldValuesEducation.DimEducation = dimEducation; factFieldValuesEducation.DimPidIdOrcidPutCodeNavigation = dimPidOrcidPutCodeEducation; + factFieldValuesEducation.Show = Set_FactFieldValues_Show(factFieldValuesEducation); _ttvContext.FactFieldValues.Add(factFieldValuesEducation); } } @@ -1227,6 +1244,7 @@ public async Task ImportOrcidRecordJsonIntoUserProfile(int userprofileId, factFieldValuesAffiliation.DimRegisteredDataSourceId = orcidRegisteredDataSourceId; factFieldValuesAffiliation.DimAffiliation = dimAffiliation_new; factFieldValuesAffiliation.DimPidIdOrcidPutCodeNavigation = dimPidOrcidPutCodeAffiliation; + factFieldValuesAffiliation.Show = Set_FactFieldValues_Show(factFieldValuesAffiliation); // If organization was not found, add organization_name into DimIdentifierlessData if (dimOrganization_id_affiliation == null || dimOrganization_id_affiliation == -1) @@ -1334,6 +1352,7 @@ public async Task ImportOrcidRecordJsonIntoUserProfile(int userprofileId, factFieldValuesPublication.DimRegisteredDataSourceId = orcidRegisteredDataSourceId; factFieldValuesPublication.DimProfileOnlyPublication = dimProfileOnlyPublication; factFieldValuesPublication.DimPidIdOrcidPutCodeNavigation = dimPidOrcidPutCodePublication; + factFieldValuesPublication.Show = Set_FactFieldValues_Show(factFieldValuesPublication); _ttvContext.FactFieldValues.Add(factFieldValuesPublication); } } @@ -1452,6 +1471,7 @@ public async Task ImportOrcidRecordJsonIntoUserProfile(int userprofileId, factFieldValuesProfileOnlyDataset.DimRegisteredDataSourceId = orcidRegisteredDataSourceId; factFieldValuesProfileOnlyDataset.DimProfileOnlyDataset = dimProfileOnlyDataset; factFieldValuesProfileOnlyDataset.DimPidIdOrcidPutCodeNavigation = dimPidOrcidPutCodeDataset; + factFieldValuesProfileOnlyDataset.Show = Set_FactFieldValues_Show(factFieldValuesProfileOnlyDataset); _ttvContext.FactFieldValues.Add(factFieldValuesProfileOnlyDataset); } } @@ -1690,6 +1710,7 @@ public async Task ImportOrcidRecordJsonIntoUserProfile(int userprofileId, factFieldValuesProfileOnlyFundingDecision.DimRegisteredDataSourceId = orcidRegisteredDataSourceId; factFieldValuesProfileOnlyFundingDecision.DimProfileOnlyFundingDecision = dimProfileOnlyFundingDecision_new; factFieldValuesProfileOnlyFundingDecision.DimPidIdOrcidPutCodeNavigation = dimPidOrcidPutCodePublication; + factFieldValuesProfileOnlyFundingDecision.Show = Set_FactFieldValues_Show(factFieldValuesProfileOnlyFundingDecision); // Set correct DimReferenceDatum based on ORCID funding type switch (orcidFunding.Type) @@ -1950,6 +1971,7 @@ public async Task ImportOrcidRecordJsonIntoUserProfile(int userprofileId, factFieldValuesDimProfileOnlyResearchActivity.DimRegisteredDataSourceId = orcidRegisteredDataSourceId; factFieldValuesDimProfileOnlyResearchActivity.DimProfileOnlyResearchActivity = dimProfileOnlyResearchActivity_new; factFieldValuesDimProfileOnlyResearchActivity.DimPidIdOrcidPutCodeNavigation = dimPidOrcidPutCodeResearchActivity; + factFieldValuesDimProfileOnlyResearchActivity.Show = Set_FactFieldValues_Show(factFieldValuesDimProfileOnlyResearchActivity); // Set correct DimReferenceDatum based on ORCID activity type DimReferencedatum dimReferencedata = await _ttvContext.DimReferencedata.Where( dr => dr.CodeScheme == Constants.ReferenceDataCodeSchemes.ORCID_RESEARCH_ACTIVITY && diff --git a/aspnetcore/src/api/Services/UserProfileService.cs b/aspnetcore/src/api/Services/UserProfileService.cs index 0a2ba60..cc6fa9b 100644 --- a/aspnetcore/src/api/Services/UserProfileService.cs +++ b/aspnetcore/src/api/Services/UserProfileService.cs @@ -496,13 +496,15 @@ public DimPid GetEmptyDimPid() DimInfrastructureId = -1, DimPublicationChannelId = -1, DimResearchDatasetId = -1, - DimFundingDecisionId = -1, DimResearchDataCatalogId = -1, DimResearchActivityId = -1, DimEventId = -1, DimProfileOnlyDatasetId = -1, DimProfileOnlyFundingDecisionId = -1, DimProfileOnlyPublicationId = -1, + DimResearchCommunityId = -1, + DimResearchProjectId = -1, + SourceId = Constants.SourceIdentifiers.PROFILE_API, SourceDescription = Constants.SourceDescriptions.PROFILE_API, Created = _utilityService.GetCurrentDateTime(), @@ -1003,7 +1005,8 @@ public async Task CreateProfile(string orcidId, LogUserIdentification logUserIde SourceDescription = Constants.SourceDescriptions.PROFILE_API, Created = currentDateTime, AllowAllSubscriptions = false, - Hidden = false + Hidden = false, + PublishNewOrcidData = false }; _ttvContext.DimUserProfiles.Add(dimUserProfile); } @@ -2626,17 +2629,12 @@ public async Task HideProfile(string orcidId, LogUserIdentification logUserIdent action: LogContent.Action.PROFILE_HIDE, state: LogContent.ActionState.START)); - // Set property "hidden" in user profile - DimUserProfile dimUserProfile = await GetUserprofileTracking(orcidId); - dimUserProfile.Hidden = true; - await _ttvContext.SaveChangesAsync(); - // Delete profile from Elasticsearch await DeleteProfileFromElasticsearch(orcidId, logUserIdentification); } /* - * Reveal profile from state "hidden. + * Reveal profile from state "hidden". */ public async Task RevealProfile(string orcidId, LogUserIdentification logUserIdentification) { @@ -2647,15 +2645,60 @@ public async Task RevealProfile(string orcidId, LogUserIdentification logUserIde action: LogContent.Action.PROFILE_REVEAL, state: LogContent.ActionState.START)); - // Set property "hidden" in user profile - DimUserProfile dimUserProfile = await GetUserprofileTracking(orcidId); - dimUserProfile.Hidden = false; - await _ttvContext.SaveChangesAsync(); - // Update profile in Elasticsearch + DimUserProfile dimUserProfile = await GetUserprofile(orcidId); await UpdateProfileInElasticsearch(orcidId: orcidId, userprofileId: dimUserProfile.Id, logUserIdentification: logUserIdentification); } + /* + * Get profile settings + */ + public ProfileSettings GetProfileSettings(DimUserProfile dimUserProfile) { + return new ProfileSettings + { + Hidden = dimUserProfile.Hidden, + PublishNewOrcidData = dimUserProfile.PublishNewOrcidData + }; + } + + /* + * Save profile settings + */ + public async Task SaveProfileSettings(string orcidId, DimUserProfile dimUserProfile, ProfileSettings profileSettings, LogUserIdentification logUserIdentification) + { + bool hiddenToggled = false; + + // Set 'hidden' to DimSUerProfile + if (profileSettings.Hidden != null) + { + dimUserProfile.Hidden = profileSettings.Hidden.Value; + hiddenToggled = true; + } + + // Set'publishNewOrcidData' to DimUserProfile + if (profileSettings.PublishNewOrcidData != null) + { + dimUserProfile.PublishNewOrcidData = profileSettings.PublishNewOrcidData.Value; + } + + // Save DimUserProfile changes before further processing + await _ttvContext.SaveChangesAsync(); + + // Change user profile visibility according to new settings + if (hiddenToggled) { + if (profileSettings.Hidden == true) + { + // Hide profile + await HideProfile(orcidId: orcidId, logUserIdentification: logUserIdentification); + } + else if (profileSettings.Hidden == false) + { + // Reveal profile + await RevealProfile(orcidId: orcidId, logUserIdentification: logUserIdentification); + } + } + } + /* * Returns memory cache key for profile settings */