public virtual void Process(MigrateItemPipelineArgs args) { if (args.Source == null || args.Item != null) { return; } var source = args.Source; var id = (Overrides.ContainsKey(source.Id)) ? Overrides[source.Id] : source.Id; var itemId = new ID(id); args.Item = Sitecore.Context.Database.GetItem(itemId); if (args.Item != null) { if (KeepExistingMedia && args.Item.Paths.IsMediaItem && args.Item.TemplateID != TemplateIDs.MediaFolder) { args.AbortPipeline(); } return; } var results = _createItemPipeline.Run(source, itemId); if (results.Aborted) { args.AbortPipeline(); return; } args.Item = results.Item; }
public virtual void Process(MigrateItemPipelineArgs args) { if (args.Source == null) { return; } var source = args.Source; if (_configuration.TemplateExcludes.Any(x => x.SourceTemplateId == source.TemplateId)) { args.AbortPipeline(); return; } // If configured to include media, allow all media through if (IncludeMedia) { if (source.IsMediaItem) { return; } } // If template is registered, we can process. var templateInclude = _configuration.TemplateIncludes.FirstOrDefault(x => x.SourceTemplateId == source.TemplateId); if (templateInclude != null) { return; } // Check to see if a parent template is set to include all children. var parentTemplateIncludes = source.Parents(x => x.Parent) .Select(parent => _configuration.TemplateIncludes.FirstOrDefault(x => x.SourceTemplateId == parent.TemplateId)) .Where(x => x != null); if (parentTemplateIncludes.Any(x => x.IncludeAllDescendants)) { return; } // Skip item args.AbortPipeline(); }
public virtual void Process(MigrateItemPipelineArgs args) { if (args.Source == null) { return; } if (_processed.Contains(args.Source.Id)) { args.AbortPipeline(); return; } _processed.Add(args.Source.Id); }
public virtual void Process(MigrateItemPipelineArgs args) { if (args.Source == null) { return; } var source = args.Source; // Confirm we are processing a Media Item if (!source.IsMediaItem) { return; } // Check if we should process due to KeepExisting var item = Sitecore.Context.Database.GetItem(new ID(source.Id)); if (KeepExisting && item != null) { args.AbortPipeline(); return; } // Grab extension var extensionField = source.Versions.SelectMany(x => x.Fields).FirstOrDefault(x => string.Equals(x.Name, "Extension", StringComparison.OrdinalIgnoreCase)); if (extensionField == null) { return; } var extension = extensionField.Value; var versioned = Sitecore.Configuration.Settings.Media.UploadAsVersionableByDefault; // Create dummy item that is a place holder if (item == null) { var parent = EnsureMediaFolders(args); var templateId = MediaManager.Config.GetTemplate(extension, versioned); var template = parent.Database.Templates[templateId]; item = CreateItem(source.Name, parent, template.ID, new ID(source.Id)); } // Get Alternate Text string alternateText = null; var altField = source.Versions.SelectMany(x => x.Fields).FirstOrDefault(x => string.Equals(x.Name, "Alt", StringComparison.OrdinalIgnoreCase)); if (altField != null) { alternateText = altField.Value; } var fileName = item.Name + "." + extensionField.Value; var mediaCreatorOptions = new MediaCreatorOptions { AlternateText = alternateText, Database = item.Database, Destination = item.Paths.FullPath, FileBased = Sitecore.Configuration.Settings.Media.UploadAsFiles, IncludeExtensionInItemName = false, KeepExisting = KeepExisting, Language = LanguageManager.DefaultLanguage, Versioned = versioned }; using (var stream = new MemoryStream(_hardRockWebServiceProxy.MediaDownloadAttachment(source.Id))) { args.Item = MediaManager.Creator.CreateFromStream(stream, fileName, mediaCreatorOptions); } }