Пример #1
0
        /// <summary>
        ///     The prepare sort.
        /// </summary>
        /// <returns>
        ///     The <see cref="LambdaExpression" />.
        /// </returns>
        protected override LambdaExpression PrepareSort()
        {
            var sortList = new List <DynamicOrdering>();

            Expression <Func <MyClass, bool> > expression = x => x.Id == this.RequestStatusId;
            var dynamicOrdering = new DynamicOrdering()
            {
                Ascending = true, Selector = expression
            };

            sortList.Add(dynamicOrdering);

            return(expression);
        }
Пример #2
0
        public void TestDynamicOrdering()
        {
            JobService.Initialize();

            var list = new IDynamicOrdered[]
            {
                new Feet(), new Torso(), new Legs(), new Head(), new Neck()
            };

            bool ok = DynamicOrdering.Perform(list.AsSpan(), out var err);

            Assert.IsTrue(ok);
            Assert.AreEqual(typeof(Head), list[0].GetType());
            Assert.AreEqual(typeof(Neck), list[1].GetType());
            Assert.AreEqual(typeof(Torso), list[2].GetType());
            Assert.AreEqual(typeof(Legs), list[3].GetType());
            Assert.AreEqual(typeof(Feet), list[4].GetType());


            var items = new TestItem[]
            {
                new TestItem("Volvo", 4, ConcType.Car, 0),
                new TestItem("Audi", 3, ConcType.Car, 1),
                new TestItem("Mazda", 6, ConcType.Car, 1),
                new TestItem("BMW", 4, ConcType.Car, 2),
                new TestItem("Opel", 1, ConcType.Car, 1),
                new TestItem("Tesla", 1, ConcType.Car, 1),

                new TestItem("Blue", 4, ConcType.Color, 1),
                new TestItem("AliceBlue", 4, ConcType.Color, 1),
                new TestItem("Chartreuse", 2, ConcType.Color, 1),
                new TestItem("Pink", 4, ConcType.Color, 1),
                new TestItem("Orange", 2, ConcType.Color, 1),

                new TestItem("Battlefield", 4, ConcType.Game, 1),
                new TestItem("AssCreed", 4, ConcType.Game, 1),
                new TestItem("GTA", 24, ConcType.Game, 1),
                new TestItem("Minecraft", 10, ConcType.Game, 1),

                new TestItem("Banana", 1, ConcType.Fruit, 1),
                new TestItem("Apple", 1, ConcType.Fruit, 1),
                new TestItem("Pear", 2, ConcType.Fruit, 1),
            };

            var scheduler = new DynamicScheduler <TestItem, object>(items);

            scheduler.Execute("stuffs", Done, null);
        }