//todo: commands only in context and create context using ActivatorUtilities.CreateInstance public MergeGraphSyncer( IEnumerable <IContentItemGraphSyncer> itemSyncers, IGraphSyncPartGraphSyncer graphSyncPartGraphSyncer, ISyncNameProvider syncNameProvider, IMergeNodeCommand mergeNodeCommand, IReplaceRelationshipsCommand replaceRelationshipsCommand, IContentItemVersionFactory contentItemVersionFactory, IPublishedContentItemVersion publishedContentItemVersion, IPreviewContentItemVersion previewContentItemVersion, IServiceProvider serviceProvider, IGraphCluster graphCluster, IContentItemsService contentItemsService, ILogger <MergeGraphSyncer> logger) { _itemSyncers = itemSyncers.OrderByDescending(s => s.Priority); _graphSyncPartGraphSyncer = graphSyncPartGraphSyncer; _syncNameProvider = syncNameProvider; MergeNodeCommand = mergeNodeCommand; _replaceRelationshipsCommand = replaceRelationshipsCommand; _contentItemVersionFactory = contentItemVersionFactory; _publishedContentItemVersion = publishedContentItemVersion; _previewContentItemVersion = previewContentItemVersion; _serviceProvider = serviceProvider; _graphCluster = graphCluster; _contentItemsService = contentItemsService; _logger = logger; _graphMergeContext = null; _incomingPreviewContentPickerRelationships = null; }
public GraphMergeContext( IMergeGraphSyncer mergeGraphSyncer, ISyncNameProvider syncNameProvider, IGraphReplicaSet graphReplicaSet, IMergeNodeCommand mergeNodeCommand, IReplaceRelationshipsCommand replaceRelationshipsCommand, ContentItem contentItem, IContentManager contentManager, IContentItemVersionFactory contentItemVersionFactory, IGraphMergeContext?parentGraphMergeContext, IServiceProvider serviceProvider) : base( contentItem, syncNameProvider, contentManager, contentItemVersionFactory.Get(graphReplicaSet.Name), parentGraphMergeContext, serviceProvider.GetRequiredService <ILogger <GraphMergeContext> >()) { MergeGraphSyncer = mergeGraphSyncer; GraphReplicaSet = graphReplicaSet; MergeNodeCommand = mergeNodeCommand; ReplaceRelationshipsCommand = replaceRelationshipsCommand; ExtraCommands = new List <ICommand>(); }