Пример #1
0
        public static IEnumerable<CompareBsonDocumentsResult> CompareBsonDocumentFiles(string file1, string file2,
            BsonDocumentComparatorOptions comparatorOptions = BsonDocumentComparatorOptions.ReturnNotEqualDocuments, EnumerateElementsOptions enumerateElementsOptions = EnumerateElementsOptions.None,
            IEnumerable<string> elementsToCompare = null, IEnumerable<string> documentReference = null)
        {
            var query = EnumarateTwoBsonDocumentsList(zmongo.BsonRead<BsonDocument>(file1), zmongo.BsonRead<BsonDocument>(file2));

            BsonDocumentComparator comparator = new BsonDocumentComparator();
            comparator.SetComparatorOptions(comparatorOptions);
            comparator.SetEnumerateElementsOptions(enumerateElementsOptions);
            comparator.SetElementsToCompare(elementsToCompare);
            comparator.SetDocumentReference(documentReference);
            return comparator.Compare(query);
        }
Пример #2
0
 public static CompareBsonDocumentsResult CompareBsonDocuments(BsonDocument document1, BsonDocument document2,
     BsonDocumentComparatorOptions comparatorOptions = BsonDocumentComparatorOptions.ReturnNotEqualDocuments, EnumerateElementsOptions enumerateElementsOptions = EnumerateElementsOptions.None,
     IEnumerable<string> elementsToCompare = null)
 {
     BsonDocumentComparator comparator = new BsonDocumentComparator();
     comparator.SetComparatorOptions(comparatorOptions);
     comparator.SetEnumerateElementsOptions(enumerateElementsOptions);
     comparator.SetElementsToCompare(elementsToCompare);
     return comparator.CompareBsonDocuments(new TwoBsonDocuments { Document1 = document1, Document2 = document2 });
 }
Пример #3
0
        public static IEnumerable<CompareBsonDocumentsResult> CompareBsonDocumentFilesWithKey(string file1, string file2, string key1, string key2, JoinType joinType = JoinType.InnerJoin,
            BsonDocumentComparatorOptions comparatorOptions = BsonDocumentComparatorOptions.ReturnNotEqualDocuments, EnumerateElementsOptions enumerateElementsOptions = EnumerateElementsOptions.None,
            IEnumerable<string> elementsToCompare = null)
        {
            IEnumerable<TwoBsonDocuments> query =
                zmongo.BsonRead<BsonDocument>(file1).zJoin(
                    zmongo.BsonRead<BsonDocument>(file2),
                    document1 => document1[key1],
                    document2 => document2[key2],
                    (document1, document2) => new TwoBsonDocuments { Key = document1 != null ? document1.zGet(key1) : document2.zGet(key2), Document1 = document1, Document2 = document2 },
                    joinType);

            BsonDocumentComparator comparator = new BsonDocumentComparator();
            comparator.SetComparatorOptions(comparatorOptions);
            comparator.SetEnumerateElementsOptions(enumerateElementsOptions);
            comparator.SetElementsToCompare(elementsToCompare);
            return comparator.Compare(query);
        }
Пример #4
0
        public void SetComparatorOptions(BsonDocumentComparatorOptions options)
        {
            _comparatorOptions = options;

            if ((options & BsonDocumentComparatorOptions.ReturnNotEqualDocuments) == BsonDocumentComparatorOptions.ReturnNotEqualDocuments)
                _returnNotEqualDocuments = true;
            else
                _returnNotEqualDocuments = false;

            if ((options & BsonDocumentComparatorOptions.ReturnEqualDocuments) == BsonDocumentComparatorOptions.ReturnEqualDocuments)
                _returnEqualDocuments = true;
            else
                _returnEqualDocuments = false;

            if ((options & BsonDocumentComparatorOptions.DontSetDocumentReference) == BsonDocumentComparatorOptions.DontSetDocumentReference)
                _dontSetDocumentReference = true;
            else
                _dontSetDocumentReference = false;

            if ((options & BsonDocumentComparatorOptions.StringComparisonIgnoreCase) == BsonDocumentComparatorOptions.StringComparisonIgnoreCase)
                _stringComparisonIgnoreCase = true;
            else
                _stringComparisonIgnoreCase = false;

            if ((options & BsonDocumentComparatorOptions.StringComparisonIgnoreWhiteSpace) == BsonDocumentComparatorOptions.StringComparisonIgnoreWhiteSpace)
                _stringComparisonIgnoreWhiteSpace = true;
            else
                _stringComparisonIgnoreWhiteSpace = false;
        }
Пример #5
0
        private IEnumerable<string> _documentReferenceElements2 = null;      // list of reference element from document 2

        public CompareBsonDocumentsResult(TwoBsonDocuments twoBsonDocuments, BsonDocumentComparatorOptions comparatorOptions)
        {
            _twoBsonDocuments = twoBsonDocuments;
            _comparatorOptions = comparatorOptions;
        }
Пример #6
0
 public static void Test_Compare(string file1, string file2, string resultFile, IEnumerable<string> elementsToCompare = null, BsonDocumentComparatorOptions options = BsonDocumentComparatorOptions.ReturnNotEqualDocuments)
 {
     //string file1 = @"c:\pib\dev_data\exe\runsource\test_unit\Print\FindPrint\FindPrint_out_bson.txt";
     //string file2 = @"c:\pib\dev_data\exe\runsource\test_unit\Print\FindPrint\_archive\FindPrint_v1_SelectPost_02\FindPrint_out_bson.txt";
     //string resultFile = @"c:\pib\dev_data\exe\runsource\test_unit\Print\FindPrint\test_compare.txt";
     file1 = zPath.Combine(GetDirectory(), file1);
     file2 = zPath.Combine(GetDirectory(), file2);
     if (elementsToCompare == null)
         elementsToCompare = new string[] { "findPrint_file" };
     resultFile = zPath.Combine(GetDirectory(), resultFile);
     BsonDocumentComparator.CompareBsonDocumentFilesWithKey(file1, file2, "post_title", "post_title", joinType: pb.Linq.JoinType.InnerJoin, elementsToCompare: elementsToCompare, comparatorOptions: options)
         .Select(result => result.GetResultDocument()).zSave(resultFile);
     RunSource.CurrentRunSource.SetResult(zmongo.FileReader<BsonDocument>(resultFile)
         .Select(doc => new BsonDocument { { "result", doc["result"] } }).zToDataTable2_old());
 }
Пример #7
0
 public static void Test_Compare(string file1, string file2, string resultFile, IEnumerable <string> elementsToCompare = null, BsonDocumentComparatorOptions options = BsonDocumentComparatorOptions.ReturnNotEqualDocuments)
 {
     //string file1 = @"c:\pib\dev_data\exe\runsource\test_unit\Print\FindPrint\FindPrint_out_bson.txt";
     //string file2 = @"c:\pib\dev_data\exe\runsource\test_unit\Print\FindPrint\_archive\FindPrint_v1_SelectPost_02\FindPrint_out_bson.txt";
     //string resultFile = @"c:\pib\dev_data\exe\runsource\test_unit\Print\FindPrint\test_compare.txt";
     file1 = zPath.Combine(GetDirectory(), file1);
     file2 = zPath.Combine(GetDirectory(), file2);
     if (elementsToCompare == null)
     {
         elementsToCompare = new string[] { "findPrint_file" }
     }
     ;
     resultFile = zPath.Combine(GetDirectory(), resultFile);
     BsonDocumentComparator.CompareBsonDocumentFilesWithKey(file1, file2, "post_title", "post_title", joinType: pb.Linq.JoinType.InnerJoin, elementsToCompare: elementsToCompare, comparatorOptions: options)
     .Select(result => result.GetResultDocument()).zSave(resultFile);
     RunSource.CurrentRunSource.SetResult(zmongo.FileReader <BsonDocument>(resultFile)
                                          .Select(doc => new BsonDocument {
         { "result", doc["result"] }
     }).zToDataTable2_old());
 }