public IList<Domain.Entities.Task> Execute(NHibernate.ISession session) { return session .CreateCriteria<Task>() .SetFetchMode("ActionTask", FetchMode.Eager) .Add(Restrictions.Eq("TaskStatus", TaskStatus.Outstanding)) .Add(Restrictions.Eq("Deleted", false)) .Add(Restrictions.Eq("class", typeof(ActionTask))) .Add(Restrictions.Lt("TaskCompletionDueDate", DateTime.Now)) .Add(Subqueries.PropertyNotIn("Id", DetachedCriteria.For<EscalationOverdueReview>() .SetProjection(Projections.Property("TaskId")) .Add(Restrictions.IsNotNull("OverdueEmailSentDate")) )) .SetMaxResults(10000) .SetResultTransformer(new DistinctRootEntityResultTransformer()) .List<Task>(); }
//通过流程和活动实例编号获取工作任务 private IList<WorkItem> GetWorkItems(NHibernate.ISession session, Process process, long activityInstanceId) { return session.CreateCriteria<WorkItem>() .Add(Expression.Eq("Process", process)) .Add(Expression.Eq("ActivityInstanceId", activityInstanceId)) .List<WorkItem>(); }