Beispiel #1
0
        public long CountByResultRecipient(OrderSearchCriteria orderSearchCriteria, ResultRecipientSearchCriteria recipientSearchCriteria)
        {
            var query = GetBaseResultRecipientQuery(orderSearchCriteria, recipientSearchCriteria);

            query.Selects.Add(new HqlSelect("count(*)"));
            return(ExecuteHqlUnique <long>(query));
        }
Beispiel #2
0
		private static HqlProjectionQuery GetBaseResultRecipientQuery(OrderSearchCriteria orderSearchCriteria, ResultRecipientSearchCriteria recipientSearchCriteria)
		{
			var hqlFrom = new HqlFrom(typeof(Order).Name, "o");
			hqlFrom.Joins.Add(new HqlJoin("o.ResultRecipients", "rr"));

			var query = new HqlProjectionQuery(hqlFrom);
			query.Conditions.AddRange(HqlCondition.FromSearchCriteria("rr", recipientSearchCriteria));
			query.Conditions.AddRange(HqlCondition.FromSearchCriteria("o", orderSearchCriteria));
			return query;
		}
Beispiel #3
0
        private static IList <Order> GetOrderBatchByResultRecipient(ExternalPractitioner practitioner, Action <OrderSearchCriteria> priorityFilter, int batchSize, IPersistenceContext context)
        {
            var ordersWhere = new OrderSearchCriteria();

            priorityFilter(ordersWhere);

            var recipientWhere = new ResultRecipientSearchCriteria();

            recipientWhere.PractitionerContactPoint.In(practitioner.ContactPoints);

            return(context.GetBroker <IOrderBroker>().FindByResultRecipient(ordersWhere, recipientWhere, new SearchResultPage(0, batchSize)));
        }
Beispiel #4
0
        private static T QueryOrders <T>(IEnumerable <ExternalPractitionerContactPoint> contactPoints, bool activeOnly, Converter <OrderSearchCriteria, ResultRecipientSearchCriteria, T> queryAction)
        {
            var recipientCriteria = new ResultRecipientSearchCriteria();

            recipientCriteria.PractitionerContactPoint.In(contactPoints);

            var orderCriteria = new OrderSearchCriteria();

            if (activeOnly)
            {
                // Active order search criteria
                orderCriteria.Status.In(new[] { OrderStatus.SC, OrderStatus.IP });
            }

            return(queryAction(orderCriteria, recipientCriteria));
        }
Beispiel #5
0
		public long CountByResultRecipient(OrderSearchCriteria orderSearchCriteria, ResultRecipientSearchCriteria recipientSearchCriteria)
		{
			var query = GetBaseResultRecipientQuery(orderSearchCriteria, recipientSearchCriteria);
			query.Selects.Add(new HqlSelect("count(*)"));
			return ExecuteHqlUnique<long>(query);
		}
Beispiel #6
0
		public IList<Order> FindByResultRecipient(OrderSearchCriteria orderSearchCriteria, ResultRecipientSearchCriteria recipientSearchCriteria, SearchResultPage page)
		{
			var query = GetBaseResultRecipientQuery(orderSearchCriteria, recipientSearchCriteria);
			query.Page = page;
			return ExecuteHql<Order>(query);
		}
Beispiel #7
0
		public IList<Order> FindByResultRecipient(OrderSearchCriteria orderSearchCriteria, ResultRecipientSearchCriteria recipientSearchCriteria)
		{
			return FindByResultRecipient(orderSearchCriteria, recipientSearchCriteria, new SearchResultPage());
		}
Beispiel #8
0
        private static HqlProjectionQuery GetBaseResultRecipientQuery(OrderSearchCriteria orderSearchCriteria, ResultRecipientSearchCriteria recipientSearchCriteria)
        {
            var hqlFrom = new HqlFrom(typeof(Order).Name, "o");

            hqlFrom.Joins.Add(new HqlJoin("o.ResultRecipients", "rr"));

            var query = new HqlProjectionQuery(hqlFrom);

            query.Conditions.AddRange(HqlCondition.FromSearchCriteria("rr", recipientSearchCriteria));
            query.Conditions.AddRange(HqlCondition.FromSearchCriteria("o", orderSearchCriteria));
            return(query);
        }
Beispiel #9
0
        public IList <Order> FindByResultRecipient(OrderSearchCriteria orderSearchCriteria, ResultRecipientSearchCriteria recipientSearchCriteria, SearchResultPage page)
        {
            var query = GetBaseResultRecipientQuery(orderSearchCriteria, recipientSearchCriteria);

            query.Page = page;
            return(ExecuteHql <Order>(query));
        }
Beispiel #10
0
 public IList <Order> FindByResultRecipient(OrderSearchCriteria orderSearchCriteria, ResultRecipientSearchCriteria recipientSearchCriteria)
 {
     return(FindByResultRecipient(orderSearchCriteria, recipientSearchCriteria, new SearchResultPage()));
 }