public virtual IList <TermResult> GetBooksTermResults(List <string> bookGuidList,
                                                              TermCriteriaQueryCreator queryCreator)
        {
            using (var session = GetSession())
            {
                Book        bookAlias        = null;
                BookVersion bookVersionAlias = null;
                BookPage    bookPageAlias    = null;
                Term        termAlias        = null;
                TermResult  termResultAlias  = null;

                var result = session.QueryOver(() => bookAlias)
                             .JoinQueryOver(x => x.LastVersion, () => bookVersionAlias)
                             .JoinQueryOver(x => x.BookPages, () => bookPageAlias)
                             .JoinQueryOver(x => x.Terms, () => termAlias)
                             .SelectList(list => list
                                         .Select(() => bookAlias.Id).WithAlias(() => termResultAlias.BookId)
                                         .Select(() => bookPageAlias.Text).WithAlias(() => termResultAlias.PageName)
                                         .Select(() => bookPageAlias.XmlId).WithAlias(() => termResultAlias.PageXmlId))
                             .OrderBy(() => bookAlias.Id).Asc
                             .OrderBy(() => bookPageAlias.Position).Asc
                             .WhereRestrictionOn(() => bookAlias.Guid).IsInG(bookGuidList)
                             .And(queryCreator.GetCondition())
                             .TransformUsing(Transformers.AliasToBean <TermResult>())
                             .List <TermResult>();

                return(result);
            }
        }
        public void DiceTerm_CalculateResultsTest()
        {
            // setup test
            IExpressionTerm term = new FudgeDiceTerm(1);

            // run test
            IReadOnlyList <TermResult> results = term.CalculateResults(roller);

            // validate results
            Assert.IsNotNull(results);
            Assert.AreEqual(1, results.Count);
            TermResult r = results.FirstOrDefault();

            Assert.IsNotNull(r);
            Assert.AreEqual(1, r.Scalar);
            AssertHelpers.IsWithinRangeInclusive(-1, 1, r.Value);
            Assert.AreEqual("FudgeDiceTerm.dF", r.Type);
        }
Exemple #3
0
        public void ConstantTerm_CalculateResultsNullDieRollerTest()
        {
            // setup test
            IExpressionTerm term = new ConstantTerm(8);

            // run test
            IReadOnlyList <TermResult> results = term.CalculateResults(null);

            // validate results
            Assert.IsNotNull(results);
            Assert.AreEqual(1, results.Count);
            TermResult r = results.FirstOrDefault();

            Assert.IsNotNull(r);
            Assert.AreEqual(1, r.Scalar);
            Assert.AreEqual(8, r.Value);
            Assert.AreEqual("ConstantTerm", r.Type);
        }