Beispiel #1
0
 public BucketSort(OrderMethod order, OrderByProperty orderBy, bool multi = false)
 {
     if (order == OrderMethod.Descending)
     {
         _ordering   = more;
         _multiOrder = multiMore;
     }
     else
     {
         _ordering   = less;
         _multiOrder = multiLess;
     }
     _orderMethod = order;
     // Always use Size as the first property to order when multiple properties are enabled
     // It defines the initialization of the buckets
     if (multi)
     {
         _orderBy = OrderByProperty.Size;
     }
     else
     {
         _orderBy = orderBy;
     }
     _enableMulti = multi;
 }
Beispiel #2
0
            public WhenConstructedWithDesc()
            {
                TestHelper.EnsureEDM();

                EdmComplexType model = EntityDataModel.Current.EntitySets["Customers"].EdmType;

                _rawValue = "CompanyName desc";
                _property = new OrderByProperty(_rawValue, model);
            }
            public WhenConstructedWithAsc()
            {
                TestHelper.EnsureEDM();

                var model = EntityDataModel.Current.EntitySets["Customers"].EdmType;

                this.rawValue = "CompanyName asc";
                this.property = new OrderByProperty(this.rawValue, model);
            }
Beispiel #4
0
 public BubbleSort(OrderMethod order, OrderByProperty orderBy, bool multi = false)
 {
     if (order == OrderMethod.Descending)
     {
         _ordering   = less;
         _multiOrder = multiLess;
     }
     else
     {
         _ordering   = more;
         _multiOrder = multiMore;
     }
     _orderBy     = orderBy;
     _enableMulti = multi;
 }
Beispiel #5
0
 public QuickSort(OrderMethod order, OrderByProperty orderBy, bool multi = false)
 {
     if (order == OrderMethod.Descending)
     {
         _firstMulti  = moreMulti;
         _secondMulti = lessMulti;
         _firstOrder  = more;
         _secondOrder = less;
     }
     else
     {
         _firstMulti  = lessMulti;
         _secondMulti = moreMulti;
         _firstOrder  = less;
         _secondOrder = more;
     }
     _orderBy     = orderBy;
     _enableMulti = multi;
 }
Beispiel #6
0
 /// <summary>
 /// Binds the specified <see cref="OrderByProperty"/>.
 /// </summary>
 /// <param name="orderByProperty">The <see cref="OrderByProperty"/> to bind.</param>
 protected abstract void Bind(OrderByProperty orderByProperty);
Beispiel #7
0
        public void TestReadSimpleManyRecords()
        {
            using (var container = new RhetosTestContainer())
            {
                var gRepository = container.Resolve <GenericRepository <SimpleRP> >();
                var items       = Enumerable.Range(0, 4001).Select(a => new SimpleRP()
                {
                    ID = Guid.NewGuid(), value = a
                }).ToList();
                gRepository.Save(items, null, gRepository.Load());

                {
                    var cReadAll = new ReadCommandInfo()
                    {
                        DataSource  = "TestRowPermissions.SimpleRP",
                        ReadRecords = true,
                    };
                    TestUtility.ShouldFail(() => ExecuteReadCommand(cReadAll, container), _readException);
                }

                {
                    var cReadAll = new ReadCommandInfo()
                    {
                        DataSource  = "TestRowPermissions.SimpleRP",
                        ReadRecords = true,
                        Filters     = new FilterCriteria[] { }
                    };
                    TestUtility.ShouldFail(() => ExecuteReadCommand(cReadAll, container), _readException);
                }

                {
                    var cReadCountOnly = new ReadCommandInfo()
                    {
                        DataSource     = "TestRowPermissions.SimpleRP",
                        ReadTotalCount = true,
                    };
                    var result = ExecuteReadCommand(cReadCountOnly, container);
                    Assert.AreEqual(4001, result.TotalCount);
                }


                var orderByValue = new OrderByProperty[] { new OrderByProperty()
                                                           {
                                                               Property = "value", Descending = false
                                                           } };

                {
                    var cRead1500_2500 = new ReadCommandInfo()
                    {
                        DataSource        = "TestRowPermissions.SimpleRP",
                        ReadRecords       = true,
                        Skip              = 1500,
                        Top               = 1001,
                        OrderByProperties = orderByValue,
                    };
                    var result = ExecuteReadCommand(cRead1500_2500, container);
                    Assert.AreEqual(1001, result.Records.Count());
                }

                {
                    var cRead1501_2501 = new ReadCommandInfo()
                    {
                        DataSource        = "TestRowPermissions.SimpleRP",
                        ReadRecords       = true,
                        Skip              = 1501,
                        Top               = 1001,
                        OrderByProperties = orderByValue,
                    };
                    TestUtility.ShouldFail(() => ExecuteReadCommand(cRead1501_2501, container), _readException);
                }

                {
                    var cRead1499_2499 = new ReadCommandInfo()
                    {
                        DataSource        = "TestRowPermissions.SimpleRP",
                        ReadRecords       = true,
                        Skip              = 1499,
                        Top               = 1001,
                        OrderByProperties = orderByValue,
                    };
                    TestUtility.ShouldFail(() => ExecuteReadCommand(cRead1499_2499, container), _readException);
                }

                {
                    var cRead4000 = new ReadCommandInfo()
                    {
                        DataSource        = "TestRowPermissions.SimpleRP",
                        ReadRecords       = true,
                        Skip              = 4000,
                        Top               = 1,
                        OrderByProperties = orderByValue,
                    };
                    TestUtility.ShouldFail(() => ExecuteReadCommand(cRead4000, container), _readException);
                }

                {
                    var cReadFilterFail = new ReadCommandInfo()
                    {
                        DataSource  = "TestRowPermissions.SimpleRP",
                        ReadRecords = true,
                        Filters     = new FilterCriteria[] { new FilterCriteria()
                                                             {
                                                                 Property = "value", Operation = "less", Value = 2001
                                                             } }
                    };
                    TestUtility.ShouldFail(() => ExecuteReadCommand(cReadFilterFail, container), _readException);
                }

                {
                    var cReadSingleFail = new ReadCommandInfo()
                    {
                        DataSource  = "TestRowPermissions.SimpleRP",
                        ReadRecords = true,
                        Filters     = new FilterCriteria[] { new FilterCriteria()
                                                             {
                                                                 Property = "ID", Operation = "equal", Value = items[2501].ID
                                                             } }
                    };
                    TestUtility.ShouldFail(() => ExecuteReadCommand(cReadSingleFail, container), _readException);
                }

                {
                    var cReadSingleOk = new ReadCommandInfo()
                    {
                        DataSource  = "TestRowPermissions.SimpleRP",
                        ReadRecords = true,
                        Filters     = new FilterCriteria[] { new FilterCriteria()
                                                             {
                                                                 Property = "ID", Operation = "equal", Value = items[2500].ID
                                                             } }
                    };
                    var result = ExecuteReadCommand(cReadSingleOk, container);
                    Assert.AreEqual(1, result.Records.Count());
                }

                {
                    var cReadFilterOk = new ReadCommandInfo()
                    {
                        DataSource  = "TestRowPermissions.SimpleRP",
                        ReadRecords = true,
                        Filters     = new FilterCriteria[]
                        {
                            new FilterCriteria()
                            {
                                Property = "value", Operation = "greater", Value = 2499
                            },
                            new FilterCriteria()
                            {
                                Property = "value", Operation = "less", Value = 2501
                            }
                        }
                    };
                    var result = ExecuteReadCommand(cReadFilterOk, container);
                    Assert.AreEqual(1, result.Records.Count());
                    Assert.AreEqual(items[2500].ID, (result.Records[0] as SimpleRP).ID);
                }

                {
                    var cPermissionFilter = new ReadCommandInfo()
                    {
                        DataSource  = "TestRowPermissions.SimpleRP",
                        ReadRecords = true,
                        Filters     = new FilterCriteria[] { new FilterCriteria()
                                                             {
                                                                 Filter = _rowPermissionsReadFilter
                                                             } }
                    };
                    var result = ExecuteReadCommand(cPermissionFilter, container);
                    Assert.AreEqual(1001, result.Records.Count());
                    var values = ((SimpleRP[])result.Records).Select(a => a.value);
                    Assert.IsTrue(Enumerable.Range(1500, 1001).All(a => values.Contains(a)));
                }
            }
        }