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>();
 }
Пример #2
0
 //通过流程和活动实例编号获取工作任务
 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>();
 }