public void SetRelatedArticles() { var articlesToSet = GetImportedArticles(); var repo = new ArticleMappingRepository(new ArticleMappingContext()); foreach (var item in articlesToSet) { var oldValue = item.Fields[RelatedArticles].Value; if (!string.IsNullOrWhiteSpace(oldValue)) { // Get old guids and map to new guids var ids = oldValue.Split('|').Select(i => new Guid(i)); var sw = new Stopwatch(); sw.Start(); var newIds = repo.GetMappingsByIds(ids).Select(i => i.ArticleId); sw.Stop(); Logger.Log("Performance Statistic-(Informa.Library.Publication.ArticleMappingRepository.GetMappingsByIds)", $"Used {sw.Elapsed.TotalSeconds} to Find matches"); // Transform new guids to sitecore field value var transformedValue = IdsToSitecoreStringValue(newIds); if (!string.IsNullOrWhiteSpace(transformedValue)) { using (new EditContext(item, true, false)) { item.Fields[RelatedArticles].Value = transformedValue; } } } } }
public void AddOrUpdateMapping(Item newItem) { var legacyId = new ID(newItem.Fields[LegacySitecoreId].Value).Guid; var repo = new ArticleMappingRepository(new ArticleMappingContext()); if (repo.Exist(legacyId)) { repo.Update(newItem.ID.Guid, newItem.Fields[PmbiArticleNumber].Value, legacyId, newItem.Fields[LegacyArticleNumber].Value); } else { repo.Insert(newItem.ID.Guid, newItem.Fields[PmbiArticleNumber].Value, legacyId, newItem.Fields[LegacyArticleNumber].Value); } }