Skip to content

Commit

Permalink
Merge pull request #158 from CSCfi/CSCTTV-4013-co-publication-handlin…
Browse files Browse the repository at this point in the history
…g-prevent-duplicates

CSCTTV-4013 co publication handling prevent duplicates
  • Loading branch information
sarkikos authored Oct 24, 2024
2 parents 9eb926c + fedacf9 commit 4e2a499
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions aspnetcore/src/Repositories/PublicationIndexRepository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -84,38 +84,48 @@ public override object PerformInMemoryOperation(object entity)
// Add data from OrgPublication DTOs, which hold data collected from publications related to a co-publication (yhteisjulkaisu/osajulkaisu)
if (publication.OrgPublicationDatabaseContributionDTOs != null && publication.OrgPublicationDatabaseContributionDTOs.Count > 0)
{
List<FactContribution> databaseContributions = new();
foreach (OrgPublicationDatabaseContributionDTO op in publication.OrgPublicationDatabaseContributionDTOs.AsEnumerable().ToList())
{
publication.DatabaseContributions.AddRange(op.DatabaseContributions);
databaseContributions.AddRange(op.DatabaseContributions);
}
publication.DatabaseContributions.AddRange(databaseContributions.DistinctBy(x => x.Name));
}
if (publication.OrgPublicationKeywordDTOs != null && publication.OrgPublicationKeywordDTOs.Count > 0)
{
List<Keyword> keywords = new();
foreach (OrgPublicationKeywordDTO kw in publication.OrgPublicationKeywordDTOs.AsEnumerable().ToList())
{
publication.Keywords.AddRange(kw.Keywords);
keywords.AddRange(kw.Keywords);
}
publication.Keywords.AddRange(keywords.DistinctBy(x => x.Value));
}
if (publication.OrgPublicationArtPublicatonTypeCategoryDTOs != null && publication.OrgPublicationArtPublicatonTypeCategoryDTOs.Count > 0)
{
List<ReferenceData> artPublicationTypeCategories = new();
foreach (OrgPublicationArtPublicatonTypeCategoryDTO ap in publication.OrgPublicationArtPublicatonTypeCategoryDTOs.AsEnumerable().ToList())
{
publication.ArtPublicationTypeCategory.AddRange(ap.ArtPublicationTypeCategories);
artPublicationTypeCategories.AddRange(ap.ArtPublicationTypeCategories);
}
publication.ArtPublicationTypeCategory.AddRange(artPublicationTypeCategories.DistinctBy(x => x.Code));
}
if (publication.OrgPublicationFieldsOfScienceDTOs != null && publication.OrgPublicationFieldsOfScienceDTOs.Count > 0)
{
List<ReferenceData> fieldsOfScience = new();
foreach (OrgPublicationFieldsOfScienceDTO fs in publication.OrgPublicationFieldsOfScienceDTOs.AsEnumerable().ToList())
{
publication.FieldsOfScience.AddRange(fs.FieldsOfScience);
fieldsOfScience.AddRange(fs.FieldsOfScience);
}
publication.FieldsOfScience.AddRange(fieldsOfScience.DistinctBy(x => x.Code));
}
if (publication.OrgPublicationFieldsOfArtDTOs != null && publication.OrgPublicationFieldsOfArtDTOs.Count > 0)
{
List<ReferenceData> fieldsOfArt = new();
foreach (OrgPublicationFieldsOfArtDTO fa in publication.OrgPublicationFieldsOfArtDTOs.AsEnumerable().ToList())
{
publication.FieldsOfArt.AddRange(fa.FieldsOfArt);
fieldsOfArt.AddRange(fa.FieldsOfArt);
}
publication.FieldsOfArt.AddRange(fieldsOfArt.DistinctBy(x => x.Code));
}

HandleIssnAndIsbn(publication);
Expand Down

0 comments on commit 4e2a499

Please sign in to comment.