public AggregateProcessor(DataChangesDetector <T> aggregateChangesDetector, IBulkRepository <T> repository, IReadOnlyCollection <IValueObjectProcessor> valueObjectProcessors, IFindSpecificationProvider <T, AggregateOperation> findSpecificationProvider) { _repository = repository; _aggregateChangesDetector = aggregateChangesDetector; _valueObjectProcessors = valueObjectProcessors; _findSpecificationProvider = findSpecificationProvider; }
// TODO {all, 15.09.2015}: Имеет смысл избавить *Processor от зависимостей IQuery, I*Info, заменить на DataChangesDetector public ValueObjectProcessor(ValueObjectMetadataElement <T> metadata, IQuery query, IBulkRepository <T> repository, IEqualityComparerFactory equalityComparerFactory) { _metadata = metadata; _repository = repository; _equalityComparerFactory = equalityComparerFactory; _changesDetector = new DataChangesDetector <T, T>(_metadata.MapSpecificationProviderForSource, _metadata.MapSpecificationProviderForTarget, query); }
public StatisticsProcessor(StatisticsRecalculationMetadata <T, StatisticsKey> metadata, IQuery query, IBulkRepository <T> repository, IEqualityComparerFactory equalityComparerFactory) { _repository = repository; _metadata = metadata; _equalityComparerFactory = equalityComparerFactory; _changesDetector = new DataChangesDetector <T>(_metadata.MapSpecificationProviderForSource, _metadata.MapSpecificationProviderForTarget, _equalityComparerFactory.CreateCompleteComparer <T>(), query); }
public IFactProcessor Create(IMetadataElement metadata) { var factMetadata = (FactMetadata <TFact>)metadata; var changesDetector = new DataChangesDetector <TFact>(factMetadata.MapSpecificationProviderForSource, factMetadata.MapSpecificationProviderForTarget, _comparerFactory.CreateIdentityComparer <TFact>(), _query); var dependencyProcessors = factMetadata.Features.OfType <IFactDependencyFeature>().Select(this.Create).ToArray(); return(new FactProcessor <TFact>(changesDetector, _repository, dependencyProcessors, new DefaultIdentityProvider())); }
public AggregateProcessor(AggregateMetadata <T> metadata, IValueObjectProcessorFactory valueObjectProcessorFactory, IQuery query, IBulkRepository <T> repository) { _metadata = metadata; _query = query; _repository = repository; _aggregateChangesDetector = new DataChangesDetector <T, T>(_metadata.MapSpecificationProviderForSource, _metadata.MapSpecificationProviderForTarget, _query); _valueObjectProcessors = _metadata.Elements.OfType <IValueObjectMetadataElement>().Select(valueObjectProcessorFactory.Create).ToArray(); }
public FactProcessor(FactMetadata <TFact> factMetadata, IFactDependencyProcessorFactory dependencyProcessorFactory, IQuery query, IBulkRepository <TFact> repository) { _query = query; _repository = repository; _factMetadata = factMetadata; _depencencyProcessors = _factMetadata.Features.OfType <IFactDependencyFeature>().Select(dependencyProcessorFactory.Create).ToArray(); _indirectDepencencyProcessors = _factMetadata.Features.OfType <IIndirectFactDependencyFeature>().Select(dependencyProcessorFactory.Create).ToArray(); _changesDetector = new DataChangesDetector <TFact, TFact>(_factMetadata.MapSpecificationProviderForSource, _factMetadata.MapSpecificationProviderForTarget, _query); }
public FactProcessor( DataChangesDetector <TFact> changesDetector, IBulkRepository <TFact> repository, IReadOnlyCollection <IFactDependencyProcessor> depencencyProcessors, IIdentityProvider <long> factIdentityProvider) { _repository = repository; _depencencyProcessors = depencencyProcessors; _indirectDepencencyProcessors = depencencyProcessors.Where(p => p.DependencyType == DependencyType.Indirect).ToArray(); _changesDetector = changesDetector; _findSpecificationProvider = new FindSpecificationProvider <TFact, long>(factIdentityProvider); _identityProvider = factIdentityProvider.Get <TFact>().Compile(); }
public ValueObjectProcessor(DataChangesDetector <TValueObject> changesDetector, IBulkRepository <TValueObject> repository, IFindSpecificationProvider <TValueObject, AggregateOperation> findSpecificationProvider) { _repository = repository; _changesDetector = changesDetector; _findSpecificationProvider = findSpecificationProvider; }