public void Apply() { Order order = Order.Asc("Value"); OrderExitOperation oeo = new OrderExitOperation(order); IList unRandomList = oeo.Apply(shuffledList); for(int i = 0; i < unRandomList.Count; i++) { Assert.IsTrue(unRandomList[i].Equals(nonNullData[i])); } }
public void MultipleOrderings() { Order orderValue = Order.Asc("Value"); Order orderName = Order.Desc("Name"); OrderExitOperation oeoValue = new OrderExitOperation(orderValue); OrderExitOperation oeoName = new OrderExitOperation(orderName); List<MyInt> answer = new List<MyInt>(new MyInt[] { new MyInt(0, "tomislav"), new MyInt(1, "max"), new MyInt(2, "maulik"), new MyInt(3, "gut"), new MyInt(5, "bomb") }); IList unShuffledList = oeoName.Apply(oeoValue.Apply(shuffledList)); for(int i=0;i< answer.Count;i++) { Assert.AreEqual(answer[i],unShuffledList[i],"The element {0} of the collecion is not equal",i); } }
public IList Apply(IList result) { /** * Herein lies the glory * * hibernate has done as much as it can, we're going to have to deal with * the rest in memory. * * The heirarchy of operations is this so far: * Distinct * Order * FirstResult * MaxResult * RowCount * Average * Min/Max/Sum */ // ordering of the following operations *really* matters! if (distinct != null) { result = new DistinctExitOperation(distinct).Apply(result); } foreach (Order order in orders) { result = new OrderExitOperation(order).Apply(result); } if (firstResult != null) { result = new FirstResultExitOperation((int) firstResult).Apply(result); } if (maxResults != null) { result = new MaxResultsExitOperation((int) maxResults).Apply(result); } ProjectionExitOperationFactory factory = ProjectionExitOperationFactory.GetFactory(); if (rowCountProjection != null) { result = factory.GetProjectionExitOperation(rowCountProjection, sessionFactoryImplementor).Apply(result); } if (avgProjection != null) { result = new AvgResultsExitOperation().Apply(result); } // min, max, sum if (aggregateProjection != null) { result = factory.GetProjectionExitOperation(aggregateProjection, sessionFactoryImplementor).Apply(result); } return result; }