Пример #1
0
        public void FeedAndGetMany()
        {
            //feed lots of objects to the cache
            var session = _client.BeginFeed <TradeLike>(50, false);

            var random = new Random();

            for (var i = 0; i < 10000; i++)
            {
                var newItem = new TradeLike(i, 1000 + i, "aaa", new DateTime(2009, 10, 10), random.Next(1000));
                _client.Add(session, newItem);
            }

            _client.EndFeed <TradeLike>(session);

            //get a subset of the fed objects
            var builder = new QueryBuilder(typeof(TradeLike));
            var query   = builder.GetMany("Nominal < 500");


            //sync get
            _client.GetMany <TradeLike>(query).ToList();


            //async get
            {
                var evt = new ManualResetEvent(false);

                var itemCount = 0;
                _client.AsyncGetMany(query, delegate(TradeLike like, int item, int total)
                {
                    itemCount++;
                    if (item == total)
                    {
                        evt.Set();
                    }
                }, delegate { });
                evt.WaitOne();

                Console.WriteLine("Found {0} objects", itemCount);
            }

            //select
            _logger.Reset();
            var cmd = _parser.Parse("select TRADELIKE where Nominal < 500");

            Assert.IsTrue(cmd.CanExecute);
            Assert.IsNotNull(cmd.TryExecute(_client));

            // check for empty result
            _logger.Reset();
            cmd = _parser.Parse("select TRADELIKE where Nominal < 500, Folder = inexistent");
            Assert.IsTrue(cmd.CanExecute);
            Assert.IsNotNull(cmd.TryExecute(_client));
        }
Пример #2
0
        public void FeedDataToCacheUsingSessions()
        {
            var session = _client.BeginFeed <CacheableTypeOk>(10, false);

            for (int i = 0; i < 113; i++)
            {
                var item1 = new CacheableTypeOk(i, 1000 + i, "aaa", new DateTime(2010, 10, 10), 1500);
                _client.Add(session, item1);
            }


            _client.EndFeed <CacheableTypeOk>(session);

            Thread.Sleep(300);

            IList <CacheableTypeOk> itemsReloaded =
                _client.GetManyWhere <CacheableTypeOk>("IndexKeyFolder == aaa").ToList();

            Assert.AreEqual(itemsReloaded.Count, 113);
        }
        public void FeedAndGetMany()
        {
            //feed lots of objects to the cache
            var session = _client.BeginFeed <TradeLike>(50, false);

            var random = new Random();

            for (var i = 0; i < 10000; i++)
            {
                var newItem = new TradeLike(i, 1000 + i, "aaa", new DateTime(2009, 10, 10), random.Next(1000));
                _client.Add(session, newItem);
            }

            _client.EndFeed <TradeLike>(session);

            //get a subset of the fed objects
            var builder = new QueryBuilder(typeof(TradeLike));
            var query   = builder.GetMany("Nominal < 500");


            //sync get
            _client.GetMany <TradeLike>(query).ToList();


            //select
            _logger.Reset();
            var cmd = _parser.Parse("select TRADELIKE where Nominal < 500");

            Assert.IsTrue(cmd.CanExecute);
            Assert.IsNotNull(cmd.TryExecute(_client));

            // check for empty result
            _logger.Reset();
            cmd = _parser.Parse("select TRADELIKE where Nominal < 500, Folder = inexistent");
            Assert.IsTrue(cmd.CanExecute);
            Assert.IsNotNull(cmd.TryExecute(_client));
        }