Пример #1
0
        static void Main()
        {
            /*
             * var repo = TestHelpers.InitMongoBulk(100000, out _mongoQuery, out _memryQuery, s => Console.Write(s));
             *
             * var defaultMongoQueryable = repo.Collection.AsQueryable();
             *
             * var sw = Stopwatch.StartNew();
             * var docs = defaultMongoQueryable.Where(c => c.NumPets != 55).OrderBy(c => c.SSN).Take(5000).ToArray();
             * Console.WriteLine("Default Mongo Queryable: " + sw.Elapsed);
             *
             * sw.Restart();
             * docs = _mongoQuery.Where(c => c.NumPets != 55).OrderBy(c => c.SSN).Take(5000).ToArray();
             * Console.WriteLine("LinqPlusPlus  Queryable: " + sw.Elapsed);
             *
             */

            var results = _mongoQuery.Where(c => MongoFunctions.GreaterThan(c.FirstName, "Fred"))
                          .ToArray();

/*
 *          var results = ObjectIdDocumentRepository.GetDefaultDataQueryablePlusPlus(Console.WriteLine)
 *                                                  .Select(c => c._id.CreationTime.Date > new DateTime(2017,2,1,0,0,0,DateTimeKind.Utc))
 *                                                  .Take(2)
 *                                                  .ToArray();
 */

            /*
             *
             *  Assert.IsTrue(TestHelpers.AreEqual(new[] { _mongoQuery, _memryQuery }.Select(queryable =>
             *      queryable.GroupBy(c => c.Birthday.Year)
             *               .Select(c => new { First = c.First() })
             *               .Take(1)
             *  )));
             *
             *  Console.WriteLine("\r\n------------ TEST PROGRAM RESULTS -------------\r\n");
             *  var results = _mongoQuery.GroupBy(c => c.NumPets)
             *               .Select(c => new { First = c.First() })
             *               .Take(1)
             *               .ToArray();*/


            var json = JsonConvert.SerializeObject(results, Formatting.Indented);

            Console.WriteLine($"----------------- PIPELINE --------------------\r\n{json}");

            if (Debugger.IsAttached)
            {
                Console.WriteLine("\r\nPress any key to exit.");
                Console.ReadKey();
            }
        }
        public void Function_GreaterThan_GreaterThanOrEqual()
        {
            Assert.IsTrue(TestHelpers.AreEqual(new[] { _mongoQuery, _memryQuery }.Select(queryable =>
                                                                                         queryable.Select(c => MongoFunctions.GreaterThan(c.FirstName, c.LastName))
                                                                                         )));

            Assert.IsTrue(TestHelpers.AreEqual(new[] { _mongoQuery, _memryQuery }.Select(queryable =>
                                                                                         queryable.Select(c => MongoFunctions.GreaterThan(c.FirstName, c.LastName) == (string.CompareOrdinal(c.FirstName, c.LastName) > 0))
                                                                                         )));

            Assert.IsTrue(TestHelpers.AreEqual(new[] { _mongoQuery, _memryQuery }.Select(queryable =>
                                                                                         queryable.Select(c => MongoFunctions.GreaterThanOrEqual(c.FirstName, c.LastName) == (string.CompareOrdinal(c.FirstName, c.LastName) >= 0))
                                                                                         )));

            Assert.IsTrue(TestHelpers.AreEqual(new[] { _mongoQuery, _memryQuery }.Select(queryable =>
                                                                                         queryable.Where(c => MongoFunctions.GreaterThan(c.FirstName, c.LastName))
                                                                                         )));

            Assert.IsTrue(TestHelpers.AreEqual(new[] { _mongoQuery, _memryQuery }.Select(queryable =>
                                                                                         queryable.Where(c => MongoFunctions.GreaterThanOrEqual(c.FirstName, c.LastName))
                                                                                         )));

            Assert.IsTrue(TestHelpers.AreEqual(new[] { _mongoQuery, _memryQuery }.Select(queryable =>
                                                                                         queryable.Where(c => !MongoFunctions.GreaterThan(c.FirstName, c.LastName))
                                                                                         )));

            Assert.IsTrue(TestHelpers.AreEqual(new[] { _mongoQuery, _memryQuery }.Select(queryable =>
                                                                                         queryable.Where(c => !MongoFunctions.GreaterThanOrEqual(c.FirstName, c.LastName))
                                                                                         )));

            Assert.IsTrue(TestHelpers.AreEqual(new[] { _mongoQuery, _memryQuery }.Select(queryable =>
                                                                                         queryable.Select(c => MongoFunctions.GreaterThan(c.FirstName, "Tom"))
                                                                                         )));

            Assert.IsTrue(TestHelpers.AreEqual(new[] { _mongoQuery, _memryQuery }.Select(queryable =>
                                                                                         queryable.Select(c => MongoFunctions.GreaterThan("Tom", c.FirstName))
                                                                                         )));

            Assert.IsTrue(TestHelpers.AreEqual(new[] { _mongoQuery, _memryQuery }.Select(queryable =>
                                                                                         queryable.Select(c => MongoFunctions.GreaterThanOrEqual(c.FirstName, "Tom"))
                                                                                         )));

            Assert.IsTrue(TestHelpers.AreEqual(new[] { _mongoQuery, _memryQuery }.Select(queryable =>
                                                                                         queryable.Select(c => MongoFunctions.GreaterThanOrEqual("Tom", c.FirstName))
                                                                                         )));

            Assert.IsTrue(TestHelpers.AreEqual(new[] { _mongoQuery, _memryQuery }.Select(queryable =>
                                                                                         queryable.Select(c => MongoFunctions.GreaterThanOrEqual(null, c.FirstName))
                                                                                         )));
        }