コード例 #1
0
		/// <summary>
		/// Initializes this object.
		/// </summary>
		/// <param name="procedureStepClasses"></param>
		/// <param name="criteria"></param>
		/// <param name="projection"></param>
		/// <param name="page"></param>
		protected void Initialize(Type[] procedureStepClasses, WorklistItemSearchCriteria[] criteria, WorklistItemProjection projection, SearchResultPage page)
		{
			this.Criteria = criteria;
			this.Projection = projection;
			this.Page = page;
			this.ProcedureStepClasses = procedureStepClasses;
		}
コード例 #2
0
 /// <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)
 {
 }
コード例 #3
0
 /// <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;
 }
コード例 #4
0
        /// <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));
        }
コード例 #5
0
        /// <summary>
        /// Maps the specified set of protocolling steps to a corresponding set of reporting worklist items.
        /// </summary>
        /// <param name="protocollingSteps"></param>
        /// <param name="timeField"></param>
        /// <returns></returns>
        public IList <ReportingWorklistItem> GetWorklistItems(IEnumerable <ProtocolProcedureStep> protocollingSteps, WorklistItemField timeField)
        {
            var worklistItemCriteria =
                CollectionUtils.Map(protocollingSteps,
                                    delegate(ProtocolProcedureStep ps)
            {
                var criteria = new ReportingWorklistItemSearchCriteria();
                criteria.ProcedureStep.EqualTo(ps);
                return(criteria);
            }).ToArray();

            var projection = WorklistItemProjection.GetDefaultProjection(timeField);
            var args       = new SearchQueryArgs(typeof(ProtocolProcedureStep), worklistItemCriteria, projection);
            var query      = this.BuildWorklistSearchQuery(args);

            return(DoQuery <ReportingWorklistItem>(query, this.WorklistItemQueryBuilder, args));
        }
コード例 #6
0
		/// <summary>
		/// Constructor.
		/// </summary>
		/// <param name="procedureStepClasses"></param>
		/// <param name="criteria"></param>
		/// <param name="projection"></param>
		/// <param name="page"></param>
		public QueryBuilderArgs(Type[] procedureStepClasses, WorklistItemSearchCriteria[] criteria, WorklistItemProjection projection, SearchResultPage page)
		{
			Initialize(procedureStepClasses, criteria, projection, page);
		}
コード例 #7
0
ファイル: QueryBuilderArgs.cs プロジェクト: hksonngan/Xian
 /// <summary>
 /// Initializes this object.
 /// </summary>
 /// <param name="procedureStepClasses"></param>
 /// <param name="criteria"></param>
 /// <param name="projection"></param>
 /// <param name="page"></param>
 protected void Initialize(Type[] procedureStepClasses, WorklistItemSearchCriteria[] criteria, WorklistItemProjection projection, SearchResultPage page)
 {
     this.Criteria             = criteria;
     this.Projection           = projection;
     this.Page                 = page;
     this.ProcedureStepClasses = procedureStepClasses;
 }
コード例 #8
0
ファイル: QueryBuilderArgs.cs プロジェクト: hksonngan/Xian
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="procedureStepClasses"></param>
 /// <param name="criteria"></param>
 /// <param name="projection"></param>
 /// <param name="page"></param>
 public QueryBuilderArgs(Type[] procedureStepClasses, WorklistItemSearchCriteria[] criteria, WorklistItemProjection projection, SearchResultPage page)
 {
     Initialize(procedureStepClasses, criteria, projection, page);
 }
コード例 #9
0
ファイル: SearchQueryArgs.cs プロジェクト: nhannd/Xian
		/// <summary>
		/// Constructor.
		/// </summary>
		/// <param name="procedureStepClasses"></param>
		/// <param name="criteria"></param>
		/// <param name="projection"></param>
		public SearchQueryArgs(Type[] procedureStepClasses, WorklistItemSearchCriteria[] criteria, WorklistItemProjection projection)
			: base(procedureStepClasses, criteria, projection, null)
		{
		}
コード例 #10
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="procedureStepClasses"></param>
 /// <param name="criteria"></param>
 /// <param name="projection"></param>
 public SearchQueryArgs(Type[] procedureStepClasses, WorklistItemSearchCriteria[] criteria, WorklistItemProjection projection)
     : base(procedureStepClasses, criteria, projection, null)
 {
 }
コード例 #11
0
ファイル: QueryBuilderBase.cs プロジェクト: nhannd/Xian
		/// <summary>
		/// Gets the HQL select list for the specified projection.
		/// </summary>
		/// <param name="projection"></param>
		/// <returns></returns>
		private static HqlSelect[] GetWorklistItemSelects(WorklistItemProjection projection)
		{
			return CollectionUtils.Map<WorklistItemField, HqlSelect>(projection.Fields, MapWorklistItemFieldToHqlSelect).ToArray();
		}
コード例 #12
0
 /// <summary>
 /// Gets the HQL select list for the specified projection.
 /// </summary>
 /// <param name="projection"></param>
 /// <returns></returns>
 private static HqlSelect[] GetWorklistItemSelects(WorklistItemProjection projection)
 {
     return(CollectionUtils.Map <WorklistItemField, HqlSelect>(projection.Fields, MapWorklistItemFieldToHqlSelect).ToArray());
 }
コード例 #13
0
 protected override WorklistItemProjection GetProjectionCore(WorklistItemField timeField)
 {
     return(WorklistItemProjection.GetDefaultProjection(timeField));
 }
コード例 #14
0
 /// <summary>
 /// Gets a new projection that represents the specified projection filtered to the specified level.
 /// </summary>
 /// <param name="projection"></param>
 /// <param name="level"></param>
 /// <returns></returns>
 private static WorklistItemProjection FilterProjection(WorklistItemProjection projection, WorklistItemFieldLevel level)
 {
     return(projection.Filter(f => level.Includes(f.Level)));
 }
コード例 #15
0
        /// <summary>
        /// Gets the HQL for debugging purposes only.
        /// </summary>
        /// <param name="procedureStepClasses"></param>
        /// <param name="criteria"></param>
        /// <param name="projection"></param>
        /// <param name="page"></param>
        /// <returns></returns>
        public string GetWorklistItemsHql(Type[] procedureStepClasses, WorklistItemSearchCriteria[] criteria, WorklistItemProjection projection, SearchResultPage page)
        {
            var args  = new QueryBuilderArgs(procedureStepClasses, criteria, projection, page);
            var query = BuildWorklistQuery(args);

            return(query.Hql);
        }
コード例 #16
0
        /// <summary>
        /// Gets the set of items matching the specified criteria, returned as tuples shaped by the specified projection.
        /// </summary>
        public IList <object[]> GetWorklistItems(Type[] procedureStepClasses, WorklistItemSearchCriteria[] criteria, WorklistItemProjection projection, SearchResultPage page)
        {
            var args  = new QueryBuilderArgs(procedureStepClasses, criteria, projection, page);
            var query = BuildWorklistQuery(args);

            return(CollectionUtils.Map(ExecuteHql <object[]>(query), (object[] tuple) => this.WorklistItemQueryBuilder.PreProcessResult(tuple, args)));
        }