/// <summary>
 /// Constructor.
 /// </summary>
 public WorklistItemTextQueryHelper(
     IWorklistItemBroker broker,
     Converter <TDomainItem, TSummary> summaryAssembler,
     Type procedureStepClass,
     WorklistItemProjection projection,
     WorklistItemTextQueryOptions options,
     IPersistenceContext context)
     : this(broker, summaryAssembler, new [] { procedureStepClass }, projection, options, context)
 {
 }
 /// <summary>
 /// Constructor.
 /// </summary>
 public WorklistItemTextQueryHelper(
     IWorklistItemBroker broker,
     Converter <TDomainItem, TSummary> summaryAssembler,
     Type[] procedureStepClasses,
     WorklistItemProjection projection,
     WorklistItemTextQueryOptions options,
     IPersistenceContext context)
     : base(null, summaryAssembler, null, null)
 {
     _broker = broker;
     _procedureStepClasses = procedureStepClasses;
     _projection           = projection;
     _options = options;
     _context = context;
 }
        /// <summary>
        /// Helper method that implements the logic for performing searches on worklists.
        /// </summary>
        /// <typeparam name="TItem"></typeparam>
        /// <typeparam name="TSummary"></typeparam>
        /// <param name="request"></param>
        /// <param name="broker"></param>
        /// <param name="projection"></param>
        /// <param name="mapCallback"></param>
        /// <returns></returns>
        protected TextQueryResponse <TSummary> SearchHelper <TItem, TSummary>(
            WorklistItemTextQueryRequest request,
            IWorklistItemBroker broker,
            WorklistItemProjection projection,
            Converter <TItem, TSummary> mapCallback)
            where TSummary : DataContractBase
            where TItem : WorklistItem
        {
            var procedureStepClass = request.ProcedureStepClassName == null ? null
                                : ProcedureStep.GetSubClass(request.ProcedureStepClassName, PersistenceContext);

            var helper = new WorklistItemTextQueryHelper <TItem, TSummary>(broker, mapCallback, procedureStepClass, projection, request.Options, PersistenceContext);

            return(helper.Query(request));
        }