示例#1
0
        public void ChangeTest14()
        {
            const int specialYear      = 2017;
            var       sourceCollection = new ObservableCollection <Happening>(new[]
            {
                new Happening(new DateTime(2016, 01, 01, 13, 00, 00), "HappeningDay1@13"),
                new Happening(new DateTime(specialYear, 01, 01, 14, 00, 00), "Special comes first"),
                new Happening(new DateTime(2018, 01, 01, 16, 00, 00), "HappeningDay1@16")
            });

            var target =
                new GroupingProjection <DateTime, DateTime, Happening>(
                    sourceCollection,
                    item => item.Time.Date,
                    Comparer <DateTime> .Create((x, y) =>
            {
                if (x.Year == specialYear)
                {
                    return(-1);
                }
                if (y.Year == specialYear)
                {
                    return(1);
                }

                return(x.CompareTo(y));
            }),
                    item => item.Time,
                    Comparer <DateTime> .Default);

            Assert.AreEqual(specialYear, target.First().Key.Year);
        }
示例#2
0
        public void TestInitialize()
        {
            mSourceCollection = new ObservableCollection <Happening>(new Happening[]
            {
                new Happening(new DateTime(2017, 01, 01, 12, 00, 00), "HappeningDay1@12"),
                new Happening(new DateTime(2017, 01, 01, 14, 00, 00), "HappeningDay1@14"),
                new Happening(new DateTime(2017, 01, 01, 16, 00, 00), "HappeningDay1@16"),
                new Happening(new DateTime(2017, 01, 01, 10, 00, 00), "HappeningDay1@10"),
                new Happening(new DateTime(2017, 01, 01, 08, 00, 00), "HiddenDay1"),
                new Happening(new DateTime(2017, 01, 02, 12, 00, 00), "HappeningDay2@12"),
                new Happening(new DateTime(2017, 01, 02, 14, 00, 00), "HappeningDay2@14"),
                new Happening(new DateTime(2017, 01, 02, 16, 00, 00), "HappeningDay2@16"),
                new Happening(new DateTime(2017, 01, 02, 10, 00, 00), "HappeningDay2@10"),
                new Happening(new DateTime(2017, 01, 02, 08, 00, 00), "HiddenDay2")
            });

            mBatchingSourceCollection = new BatchingCollection <Happening>(new Happening[]
            {
                new Happening(new DateTime(2017, 01, 01, 12, 00, 00), "HappeningDay1@12"),
                new Happening(new DateTime(2017, 01, 01, 14, 00, 00), "HappeningDay1@14"),
                new Happening(new DateTime(2017, 01, 01, 16, 00, 00), "HappeningDay1@16"),
                new Happening(new DateTime(2017, 01, 01, 10, 00, 00), "HappeningDay1@10"),
                new Happening(new DateTime(2017, 01, 01, 08, 00, 00), "HiddenDay1"),
                new Happening(new DateTime(2017, 01, 02, 12, 00, 00), "HappeningDay2@12"),
                new Happening(new DateTime(2017, 01, 02, 14, 00, 00), "HappeningDay2@14"),
                new Happening(new DateTime(2017, 01, 02, 16, 00, 00), "HappeningDay2@16"),
                new Happening(new DateTime(2017, 01, 02, 10, 00, 00), "HappeningDay2@10"),
                new Happening(new DateTime(2017, 01, 02, 08, 00, 00), "HiddenDay2")
            });

            mTarget =
                new GroupingProjection <DateTime, DateTime, Happening>(
                    mSourceCollection,
                    item => item.Time.Date,
                    null,
                    item => item.Time,
                    Comparer <DateTime> .Default,
                    item => !item.Name.StartsWith("Hidden"));

            mTarget2 =
                new GroupingProjection <DateTime, DateTime, Happening>(
                    mBatchingSourceCollection,
                    item => item.Time.Date,
                    null,
                    item => item.Time,
                    Comparer <DateTime> .Default,
                    item => !item.Name.StartsWith("Hidden"));
        }
示例#3
0
 internal TabularGroupByRewriter(GroupingProjection groupByQuery)
 {
     this.Grouping = groupByQuery;
 }