private IEnumerable <IOperation> ProcessDependencies(IReadOnlyCollection <long> factIds, MapToObjectsSpecProvider <TFact, IOperation> operationFactory) { using (Probe.Create("Querying dependent aggregates")) { var filter = _metadata.FindSpecificationProvider.Invoke(factIds); return(operationFactory.Invoke(filter).Map(_query).ToArray()); } }
public MergeResult <T> DetectChanges(FindSpecification <T> specification) { using (var scope = new TransactionScope(TransactionScopeOption.Suppress)) { var sourceObjects = _sourceProvider.Invoke(specification); var targetObjects = _targetProvider.Invoke(specification); var result = MergeTool.Merge(sourceObjects, targetObjects, _comparer); scope.Complete(); return(result); } }
public MergeResult <TCompared> DetectChanges <TCompared>(MapSpecification <IEnumerable <TOutput>, IEnumerable <TCompared> > mapSpec, FindSpecification <TFilter> specification, IEqualityComparer <TCompared> comparer) { using (var scope = new TransactionScope(TransactionScopeOption.Suppress)) { var sourceObjects = _sourceProvider.Invoke(specification).Map(_query); var targetObjects = _targetProvider.Invoke(specification).Map(_query); var result = MergeTool.Merge( mapSpec.Map(sourceObjects).ToArray(), mapSpec.Map(targetObjects).ToArray(), comparer); scope.Complete(); return(result); } }