Example #1
0
        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;
                        }
                    }
                }
            }
        }
Example #2
0
        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);
            }
        }