Beispiel #1
0
 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);
 }
Beispiel #3
0
 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);
 }
Beispiel #4
0
                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()));
                }
Beispiel #5
0
 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);
 }
Beispiel #7
0
        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();
        }
Beispiel #8
0
 public ValueObjectProcessor(DataChangesDetector <TValueObject> changesDetector, IBulkRepository <TValueObject> repository, IFindSpecificationProvider <TValueObject, AggregateOperation> findSpecificationProvider)
 {
     _repository                = repository;
     _changesDetector           = changesDetector;
     _findSpecificationProvider = findSpecificationProvider;
 }