public TreePublishHandler(IRequiredPublishFieldsResolver requiredPublishFieldsResolver, IPublisherOperationService publisherOpsService, IDataStoreFactory dataStoreFactory, IRepositoryFactory<IMediaRepository> mediaRepositoryFactory, IRepositoryFactory<IItemIndexRepository> targetIndexRepositoryFactory, IRepositoryFactory<IItemRepository> itemRepositoryFactory, IRepositoryFactory<IItemRelationshipRepository> itemRelationshipRepoFactory, IRepositoryFactory<IItemNodeRepository> itemNodeRepositoryFactory, IRepositoryFactory<ITemplateGraphRepository> templateGraphRepositoryFactory, IRepositoryFactory<IIndexableItemRepository> indexablePublishTargetRepositoryFactory, IRepositoryFactory<IWorkflowStateRepository> workflowRepositoryFactory, IRepositoryFactory<ITestableContentRepository> testableContentRepositoryFactory, IRepositoryFactory<IManifestRepository> manifestRepositoryFactory, IRepositoryFactory<IPublishExclusionsRepository> publishExclusionsRepositoryFactory, IPromotionCoordinator promoterCoordinator, IEventRegistry eventRegistry, ILoggerFactory loggerFactory, IApplicationLifetime applicationLifetime, IConfiguration config) : this(requiredPublishFieldsResolver, publisherOpsService, dataStoreFactory, mediaRepositoryFactory, targetIndexRepositoryFactory, itemRepositoryFactory, itemRelationshipRepoFactory, itemNodeRepositoryFactory, templateGraphRepositoryFactory, indexablePublishTargetRepositoryFactory, workflowRepositoryFactory, testableContentRepositoryFactory, manifestRepositoryFactory, publishExclusionsRepositoryFactory, promoterCoordinator, eventRegistry, loggerFactory, applicationLifetime, SitecoreConfigurationExtensions.As<PublishJobHandlerOptions>(config)) { }
/// <summary> /// Creates a new instance of Incremental Publish Handler /// </summary> public IncrementalPublishHandler(IRequiredPublishFieldsResolver requiredPublishFieldsResolver, IPublisherOperationService publisherOpsService, IDataStoreFactory dataStoreFactory, IRepositoryFactory <IMediaRepository> mediaRepositoryFactory, IRepositoryFactory <IItemIndexRepository> targetIndexRepositoryFactory, IRepositoryFactory <IItemRepository> itemRepositoryFactory, IRepositoryFactory <IItemRelationshipRepository> itemRelationshipRepoFactory, IRepositoryFactory <IItemNodeRepository> itemNodeRepositoryFactory, IRepositoryFactory <ITemplateGraphRepository> templateGraphRepositoryFactory, IRepositoryFactory <IIndexableItemRepository> indexablePublishTargetRepositoryFactory, IRepositoryFactory <IWorkflowStateRepository> workflowRepositoryFactory, IRepositoryFactory <ITestableContentRepository> testableContentRepositoryFactory, IRepositoryFactory <IManifestRepository> manifestRepositoryFactory, IRepositoryFactory <IPublishExclusionsRepository> publishExclusionsRepositoryFactory, IPromotionCoordinator promoterCoordinator, IEventRegistry eventRegistry, ILoggerFactory loggerFactory, IApplicationLifetime applicationLifetime, IConfiguration config) : this(requiredPublishFieldsResolver, publisherOpsService, dataStoreFactory, mediaRepositoryFactory, targetIndexRepositoryFactory, itemRepositoryFactory, itemRelationshipRepoFactory, itemNodeRepositoryFactory, templateGraphRepositoryFactory, indexablePublishTargetRepositoryFactory, workflowRepositoryFactory, testableContentRepositoryFactory, manifestRepositoryFactory, publishExclusionsRepositoryFactory, promoterCoordinator, eventRegistry, loggerFactory, applicationLifetime, SitecoreConfigurationExtensions.As <PublishJobHandlerOptions>(config)) { }
public TreePublishHandler(IRequiredPublishFieldsResolver requiredPublishFieldsResolver, IPublisherOperationService publisherOpsService, IDataStoreFactory dataStoreFactory, IRepositoryFactory <IMediaRepository> mediaRepositoryFactory, IRepositoryFactory <IItemIndexRepository> targetIndexRepositoryFactory, IRepositoryFactory <IItemRepository> itemRepositoryFactory, IRepositoryFactory <IItemRelationshipRepository> itemRelationshipRepoFactory, IRepositoryFactory <IItemNodeRepository> itemNodeRepositoryFactory, IRepositoryFactory <ITemplateGraphRepository> templateGraphRepositoryFactory, IRepositoryFactory <IIndexableItemRepository> indexablePublishTargetRepositoryFactory, IRepositoryFactory <IWorkflowStateRepository> workflowRepositoryFactory, IRepositoryFactory <ITestableContentRepository> testableContentRepositoryFactory, IRepositoryFactory <IManifestRepository> manifestRepositoryFactory, IRepositoryFactory <IPublishExclusionsRepository> publishExclusionsRepositoryFactory, IPromotionCoordinator promoterCoordinator, IEventRegistry eventRegistry, ILoggerFactory loggerFactory, IApplicationLifetime applicationLifetime, PublishJobHandlerOptions options = null) : base(requiredPublishFieldsResolver, publisherOpsService, dataStoreFactory, mediaRepositoryFactory, targetIndexRepositoryFactory, itemRepositoryFactory, itemRelationshipRepoFactory, itemNodeRepositoryFactory, templateGraphRepositoryFactory, indexablePublishTargetRepositoryFactory, workflowRepositoryFactory, testableContentRepositoryFactory, manifestRepositoryFactory, publishExclusionsRepositoryFactory, promoterCoordinator, eventRegistry, loggerFactory, applicationLifetime, options ?? new PublishJobHandlerOptions()) { }
/// <summary> /// Creates a new instance of Incremental Publish Handler /// </summary> public IncrementalPublishHandler(IRequiredPublishFieldsResolver requiredPublishFieldsResolver, IPublisherOperationService publisherOpsService, IDataStoreFactory dataStoreFactory, IRepositoryFactory<IMediaRepository> mediaRepositoryFactory, IRepositoryFactory<IItemIndexRepository> targetIndexRepositoryFactory, IRepositoryFactory<IItemRepository> itemRepositoryFactory, IRepositoryFactory<IItemRelationshipRepository> itemRelationshipRepoFactory, IRepositoryFactory<IItemNodeRepository> itemNodeRepositoryFactory, IRepositoryFactory<ITemplateGraphRepository> templateGraphRepositoryFactory, IRepositoryFactory<IIndexableItemRepository> indexablePublishTargetRepositoryFactory, IRepositoryFactory<IWorkflowStateRepository> workflowRepositoryFactory, IRepositoryFactory<ITestableContentRepository> testableContentRepositoryFactory, IRepositoryFactory<IManifestRepository> manifestRepositoryFactory, IRepositoryFactory<IPublishExclusionsRepository> publishExclusionsRepositoryFactory, IPromotionCoordinator promoterCoordinator, IEventRegistry eventRegistry, ILoggerFactory loggerFactory, IApplicationLifetime applicationLifetime, PublishJobHandlerOptions options = null) : base(requiredPublishFieldsResolver, publisherOpsService, dataStoreFactory, mediaRepositoryFactory, targetIndexRepositoryFactory, itemRepositoryFactory, itemRelationshipRepoFactory, itemNodeRepositoryFactory, templateGraphRepositoryFactory, indexablePublishTargetRepositoryFactory, workflowRepositoryFactory, testableContentRepositoryFactory, manifestRepositoryFactory, publishExclusionsRepositoryFactory, promoterCoordinator, eventRegistry, loggerFactory, applicationLifetime, options ?? new PublishJobHandlerOptions()) { }
/// <summary> /// Creates a collection of target operations for items to be published /// </summary> protected override IObservable <ICandidateOperation> CreateTargetOperationsStream(DateTime started, IPublishCandidateSource publishCandidateSource, IPublishValidator validator, PublishOptions jobOptions, IObservable <CandidateValidationContext> publishStream, IItemIndexService targetIndex, ITestableContentRepository testableContentRepository, IMediaRepository targetMediaRepository, IRequiredPublishFieldsResolver requiredPublishFieldsResolver, CancellationTokenSource errorSource, Guid targetId) { IObservable <CandidateValidationTargetContext> processingStream1 = this.CreateTargetProcessingStream(started, publishCandidateSource, validator, jobOptions, publishStream, targetIndex, testableContentRepository, targetMediaRepository, this._requiredPublishFieldsResolver, errorSource, targetId); RelatedNodesSourceProducer nodesSourceProducer = new RelatedNodesSourceProducer(processingStream1.Where <CandidateValidationTargetContext>((Func <CandidateValidationTargetContext, bool>)(ctx => ctx.IsValid)).Select <CandidateValidationTargetContext, ValidCandidateTargetContext>((Func <CandidateValidationTargetContext, ValidCandidateTargetContext>)(ctx => ctx.AsValid())), publishCandidateSource, validator, this._options.RelatedItemBatchSize, jobOptions.RelatedItems, jobOptions.GetDetectCloneSources(), errorSource, this._logger); IObservable <CandidateValidationTargetContext> processingStream2 = this.CreateTargetProcessingStream(started, publishCandidateSource, validator, jobOptions, (IObservable <CandidateValidationContext>)nodesSourceProducer, targetIndex, testableContentRepository, targetMediaRepository, this._requiredPublishFieldsResolver, errorSource, targetId); IConnectableObservable <CandidateValidationTargetContext> source = processingStream1.Merge <CandidateValidationTargetContext>(processingStream2).Publish <CandidateValidationTargetContext>(); source.Connect(); UpdatedCandidatesOperationsProducer operationsProducer1 = new UpdatedCandidatesOperationsProducer(source.Where <CandidateValidationTargetContext>((Func <CandidateValidationTargetContext, bool>)(ctx => ctx.IsValid)).Select <CandidateValidationTargetContext, ValidCandidateTargetContext>((Func <CandidateValidationTargetContext, ValidCandidateTargetContext>)(ctx => ctx.AsValid())), started, errorSource, this._loggerFactory.CreateLogger <UpdatedCandidatesOperationsProducer>()); MediaOperationsProducer operationsProducer2 = new MediaOperationsProducer(source.Where <CandidateValidationTargetContext>((Func <CandidateValidationTargetContext, bool>)(ctx => ctx.IsValid)).Select <CandidateValidationTargetContext, ValidCandidateTargetContext>((Func <CandidateValidationTargetContext, ValidCandidateTargetContext>)(ctx => ctx.AsValid())), targetMediaRepository, requiredPublishFieldsResolver.MediaFieldsIds, started, this._options.MediaBatchSize, errorSource, this._loggerFactory.CreateLogger <MediaOperationsProducer>()); IConnectableObservable <ICandidateOperation> connectableObservable = Observable.Merge <ICandidateOperation>(new IObservable <ICandidateOperation>[3] { (IObservable <ICandidateOperation>) new DeletedCandidateOperationsProducer(source.Where <CandidateValidationTargetContext>((Func <CandidateValidationTargetContext, bool>)(ctx => !ctx.IsValid)).Select <CandidateValidationTargetContext, Guid>((Func <CandidateValidationTargetContext, Guid>)(ctx => ctx.AsInvalid().Id)), targetIndex, started, this._options.DeletedItemsBatchSize, errorSource, this._sourceName, this._loggerFactory.CreateLogger <DeletedCandidateOperationsProducer>()), (IObservable <ICandidateOperation>)operationsProducer1, (IObservable <ICandidateOperation>)operationsProducer2 }).Publish <ICandidateOperation>(); connectableObservable.Connect(); return((IObservable <ICandidateOperation>)connectableObservable); }
/// <summary> /// Creates a stream of items that are to be published /// </summary> protected override IObservable<CandidateValidationTargetContext> CreateTargetProcessingStream(DateTime started, IPublishCandidateSource publishSourceRepository, IPublishValidator validator, PublishOptions jobOptions, IObservable<CandidateValidationContext> publishStream, IItemIndexService targetIndex, ITestableContentRepository testableContentRepository, IMediaRepository targetMediaRepository, IRequiredPublishFieldsResolver requiredPublishFieldsResolver, CancellationTokenSource errorSource, Guid targetId) { IPublishCandidateTargetValidator publishCandidateTargetValidator = !PublishOptionsMetadataExtensions.GetItemBucketsEnabled(jobOptions) ? (IPublishCandidateTargetValidator)new PublishTargetParentValidator(publishSourceRepository, targetIndex) : (IPublishCandidateTargetValidator)new PublishTargetBucketParentValidator(publishSourceRepository, targetIndex, PublishOptionsMetadataExtensions.GetBucketTemplateId(jobOptions)); publishStream = (IObservable<CandidateValidationContext>)new CandidatesParentValidationTargetProducer( publishStream, publishCandidateTargetValidator, errorSource, (ILogger)LoggerFactoryExtensions.CreateLogger<CandidatesParentValidationTargetProducer>(this._loggerFactory)); return base.CreateTargetProcessingStream( started, publishSourceRepository, validator, jobOptions, publishStream, targetIndex, testableContentRepository, targetMediaRepository, requiredPublishFieldsResolver, errorSource, targetId); }
/// <summary> /// Creates a stream of items that are to be published /// </summary> protected override IObservable <CandidateValidationTargetContext> CreateTargetProcessingStream(DateTime started, IPublishCandidateSource publishSourceRepository, IPublishValidator validator, PublishOptions jobOptions, IObservable <CandidateValidationContext> publishStream, IItemIndexService targetIndex, ITestableContentRepository testableContentRepository, IMediaRepository targetMediaRepository, IRequiredPublishFieldsResolver requiredPublishFieldsResolver, CancellationTokenSource errorSource, Guid targetId) { IPublishCandidateTargetValidator publishCandidateTargetValidator = !PublishOptionsMetadataExtensions.GetItemBucketsEnabled(jobOptions) ? (IPublishCandidateTargetValidator) new PublishTargetParentValidator(publishSourceRepository, targetIndex) : (IPublishCandidateTargetValidator) new PublishTargetBucketParentValidator(publishSourceRepository, targetIndex, PublishOptionsMetadataExtensions.GetBucketTemplateId(jobOptions)); publishStream = (IObservable <CandidateValidationContext>) new CandidatesParentValidationTargetProducer( publishStream, publishCandidateTargetValidator, errorSource, (ILogger)LoggerFactoryExtensions.CreateLogger <CandidatesParentValidationTargetProducer>(this._loggerFactory)); return(base.CreateTargetProcessingStream( started, publishSourceRepository, validator, jobOptions, publishStream, targetIndex, testableContentRepository, targetMediaRepository, requiredPublishFieldsResolver, errorSource, targetId)); }