Beispiel #1
0
        public void Document_Grouping_CanGroupByDocumentType()
        {
            var document1 = new BasicMappedNoChildrenInNavWebpage();
            var document2 = new BasicMappedNoChildrenInNavWebpage {PublishOn = DateTime.Today.AddDays(-1)};
            var document3 = new BasicMappedWebpage();

            Session.Transact(session =>
                {
                    session.Save(document1);
                    session.Save(document2);
                    session.Save(document3);
                });

            Webpage webpageAlias = null;
            DocumentTypeCount countAlias = null;
            var list =
                Session.QueryOver(()=>webpageAlias)
                       .SelectList(
                           builder =>
                           builder.SelectGroup(() => webpageAlias.DocumentType)
                                  .WithAlias(() => countAlias.DocumentType)
                                  .SelectCount(() => webpageAlias.Id)
                                  .WithAlias(() => countAlias.Total)
                                  .SelectSubQuery(QueryOver.Of<Webpage>().Where(webpage => webpage.DocumentType == webpageAlias.DocumentType && (webpage.PublishOn == null || webpage.PublishOn > CurrentRequestData.Now)).ToRowCountQuery())
                                  .WithAlias(() => countAlias.Unpublished))
                       .TransformUsing(Transformers.AliasToBean<DocumentTypeCount>())
                       .List<DocumentTypeCount>();

            list.Should().HaveCount(2);
            list.Sum(count => count.Unpublished).Should().Be(2);

        }
Beispiel #2
0
        public void Document_Grouping_CanGroupByDocumentType()
        {
            var document1 = new BasicMappedNoChildrenInNavWebpage();
            var document2 = new BasicMappedNoChildrenInNavWebpage {
                PublishOn = DateTime.Today.AddDays(-1)
            };
            var document3 = new BasicMappedWebpage();

            Session.Transact(session =>
            {
                session.Save(document1);
                session.Save(document2);
                session.Save(document3);
            });

            Webpage           webpageAlias = null;
            DocumentTypeCount countAlias   = null;
            var list =
                Session.QueryOver(() => webpageAlias)
                .SelectList(
                    builder =>
                    builder.SelectGroup(() => webpageAlias.DocumentType)
                    .WithAlias(() => countAlias.DocumentType)
                    .SelectCount(() => webpageAlias.Id)
                    .WithAlias(() => countAlias.Total)
                    .SelectSubQuery(QueryOver.Of <Webpage>().Where(webpage => webpage.DocumentType == webpageAlias.DocumentType && (webpage.PublishOn == null || webpage.PublishOn > CurrentRequestData.Now)).ToRowCountQuery())
                    .WithAlias(() => countAlias.Unpublished))
                .TransformUsing(Transformers.AliasToBean <DocumentTypeCount>())
                .List <DocumentTypeCount>();

            list.Should().HaveCount(2);
            list.Sum(count => count.Unpublished).Should().Be(2);
        }