public MergeResult <TDataObject> GetChanges(IReadOnlyCollection <ICommand> commands)
        {
            var specification = _storageBasedDataObjectAccessor.GetFindSpecification(commands);

            return(_dataChangesDetector.DetectChanges(specification));
        }
        public MergeResult <T> DetectChanges(FindSpecification <T> specification)
        {
            var preresult = _dataChangesDetector.DetectChanges(specification);

            return(MergeTool.Merge(preresult.Difference, preresult.Complement, _identityComparer));
        }