Beispiel #1
0
        private static string DoBuildQueryString(EntityMetadata entityMetadata, InternalQueryRequest queryParameter,
                                                 QueryCacheKey.QueryMode queryMode, IWhereBuilder compositeWhereBuilder, QueryCacheKey cacheKey)
        {
            var buffer            = new StringBuilder(InitialStringBuilderCapacity);
            var projectionBuilder = new StringBuilder(InitialStringBuilderCapacity);

            projectionBuilder.Append(QuerySelectBuilder.BuildSelectAttributesClause(entityMetadata, queryMode, queryParameter.SearchDTO));
            projectionBuilder.Append(QueryFromBuilder.Build(entityMetadata, queryParameter.SearchDTO));
            buffer.Append(projectionBuilder);
            buffer.Append(compositeWhereBuilder.BuildWhereClause(entityMetadata.Name, queryMode, queryParameter.SearchDTO));

            var hasUnionWhereClauses = queryParameter.SearchDTO != null && queryParameter.SearchDTO.UnionWhereClauses != null;
            var isUnion = entityMetadata.HasUnion() || queryMode == QueryCacheKey.QueryMode.Union || hasUnionWhereClauses;

            if (queryMode != QueryCacheKey.QueryMode.Count && queryMode != QueryCacheKey.QueryMode.Detail && !isUnion)
            {
                buffer.Append(QuerySearchSortBuilder.BuildSearchSort(entityMetadata, queryParameter.SearchDTO));
            }

            if (hasUnionWhereClauses)
            {
                foreach (var unionWC in queryParameter.SearchDTO.UnionWhereClauses)
                {
                    buffer.Append(" union all ").Append(projectionBuilder).Append(" where (").Append(unionWC).Append(")");
                }
                buffer.Append(" order by 1 desc");
            }
            var queryString = buffer.ToString();

            return(queryString);
        }
Beispiel #2
0
        public async Task <int> GetDispObservationsCountAsync(IWhereBuilder <DispObservation> dispObservationBuilder)
        {
            if (dispObservationBuilder == default)
            {
                throw new ArgumentNullException(nameof(dispObservationBuilder));
            }

            return(await dispObservationBuilder.Where(MedicContext.DispObservations)
                   .CountAsync());
        }
        public async Task <int> GetTrasnfersCountAsync(IWhereBuilder <Transfer> transferBuilder)
        {
            if (transferBuilder == default)
            {
                throw new ArgumentNullException(nameof(transferBuilder));
            }

            return(await transferBuilder.Where(MedicContext.Transfers)
                   .CountAsync());
        }
        public async Task <int> GetCommissionAprsCountAsync(IWhereBuilder <CommissionApr> commissionAprWhereBuilder)
        {
            if (commissionAprWhereBuilder == default)
            {
                throw new ArgumentNullException(nameof(commissionAprWhereBuilder));
            }

            return(await commissionAprWhereBuilder.Where(MedicContext.CommissionAprs)
                   .CountAsync());
        }
Beispiel #5
0
        public async Task <int> GetInClinicProceduresCountAsync(IWhereBuilder <InClinicProcedure> inClinicProcedureBuilder)
        {
            if (inClinicProcedureBuilder == default)
            {
                throw new ArgumentNullException(nameof(inClinicProcedureBuilder));
            }

            return(await inClinicProcedureBuilder.Where(MedicContext.InClinicProcedures)
                   .CountAsync());
        }
        public async Task <int> GetProtocolDrugTherapiesCountAsync(IWhereBuilder <ProtocolDrugTherapy> protocolDrugTherapyBuilder)
        {
            if (protocolDrugTherapyBuilder == default)
            {
                throw new ArgumentNullException(nameof(protocolDrugTherapyBuilder));
            }

            return(await protocolDrugTherapyBuilder.Where(MedicContext.ProtocolDrugTherapies)
                   .CountAsync());
        }
Beispiel #7
0
        public async Task <int> GetPlanningsCountAsync(IWhereBuilder <Planned> plannedProcedureBuilder)
        {
            if (plannedProcedureBuilder == default)
            {
                throw new ArgumentNullException(nameof(plannedProcedureBuilder));
            }

            return(await plannedProcedureBuilder.Where(MedicContext.Plannings)
                   .CountAsync());
        }
        public async Task <int> GetPathProceduresCountAsync(IWhereBuilder <PathProcedure> pathProcedureBuilder)
        {
            if (pathProcedureBuilder == default)
            {
                throw new ArgumentNullException(nameof(pathProcedureBuilder));
            }

            return(await pathProcedureBuilder.Where(MedicContext.PathProcedures)
                   .CountAsync());
        }
Beispiel #9
0
        public async Task <int> GetOutsCountAsync(IWhereBuilder <Out> outBuilder)
        {
            if (outBuilder == default)
            {
                throw new ArgumentNullException(nameof(outBuilder));
            }

            return(await outBuilder.Where(MedicContext.Outs)
                   .CountAsync());
        }
Beispiel #10
0
 public SelectQuery(IWhereBuilder whereBuilder,
                    ISelectFromBuilder fromBuilder,
                    IOrderBuilder orderBuilder,
                    LimitBuilder limitBuilder,
                    bool existsQuery)
 {
     _whereBuilder = whereBuilder;
     _fromBuilder  = fromBuilder;
     _orderBuilder = orderBuilder;
     _limitBuilder = limitBuilder;
     _existsQuery  = existsQuery;
 }
Beispiel #11
0
        private string BuildWhereStatment()
        {
            string strWhere = String.Empty;

            if (WhereConditions.Count > 0)
            {
                StringBuilder strWhereBuilder = new StringBuilder(" WHERE ");
                _whereBuilderUsed = CreateWhereBuilder();
                strWhereBuilder.Append(_whereBuilderUsed.BuildWhere(WhereConditions));
                strWhere = strWhereBuilder.ToString();
            }

            return(strWhere);
        }
Beispiel #12
0
        public async Task <List <TransferPreviewViewModel> > GetTrasnfersAsync(IWhereBuilder <Transfer> transferBuilder, IHelperBuilder <Transfer> helperBuilder, int startIndex)
        {
            if (transferBuilder == default)
            {
                throw new ArgumentNullException(nameof(transferBuilder));
            }

            if (helperBuilder == default)
            {
                throw new ArgumentNullException(nameof(helperBuilder));
            }

            return(await helperBuilder.BuildQuery(transferBuilder.Where(MedicContext.Transfers).Skip(startIndex))
                   .ProjectTo <TransferPreviewViewModel>(Configuration)
                   .ToListAsync());
        }
Beispiel #13
0
        public async Task <List <PlannedPreviewViewModel> > GetPlanningsAsync(
            IWhereBuilder <Planned> plannedProcedureBuilder,
            IHelperBuilder <Planned> helperBuilder,
            int startIndex)
        {
            if (plannedProcedureBuilder == default)
            {
                throw new ArgumentNullException(nameof(plannedProcedureBuilder));
            }

            if (helperBuilder == default)
            {
                throw new ArgumentNullException(nameof(helperBuilder));
            }

            return(await helperBuilder.BuildQuery(plannedProcedureBuilder.Where(MedicContext.Plannings).Skip(startIndex))
                   .ProjectTo <PlannedPreviewViewModel>(Configuration)
                   .ToListAsync());
        }
        public async Task <List <ProtocolDrugTherapyPreviewViewModel> > GetProtocolDrugTherapiesAsync(
            IWhereBuilder <ProtocolDrugTherapy> protocolDrugTherapyBuilder,
            IHelperBuilder <ProtocolDrugTherapy> helperBuilder,
            int startIndex)
        {
            if (protocolDrugTherapyBuilder == default)
            {
                throw new ArgumentNullException(nameof(protocolDrugTherapyBuilder));
            }

            if (helperBuilder == default)
            {
                throw new ArgumentNullException(nameof(helperBuilder));
            }

            return(await helperBuilder.BuildQuery(protocolDrugTherapyBuilder.Where(MedicContext.ProtocolDrugTherapies).Skip(startIndex))
                   .ProjectTo <ProtocolDrugTherapyPreviewViewModel>(Configuration)
                   .ToListAsync());
        }
Beispiel #15
0
        public async Task <List <InClinicProcedurePreviewViewModel> > GetInClinicProceduresAsync(
            IWhereBuilder <InClinicProcedure> inClinicProcedureBuilder,
            IHelperBuilder <InClinicProcedure> helperBuilder,
            int startIndex)
        {
            if (inClinicProcedureBuilder == default)
            {
                throw new ArgumentNullException(nameof(inClinicProcedureBuilder));
            }

            if (helperBuilder == default)
            {
                throw new ArgumentNullException(nameof(helperBuilder));
            }

            return(await helperBuilder.BuildQuery(inClinicProcedureBuilder.Where(MedicContext.InClinicProcedures).Skip(startIndex))
                   .ProjectTo <InClinicProcedurePreviewViewModel>(Configuration)
                   .ToListAsync());
        }
Beispiel #16
0
        public async Task <List <DispObservationPreviewViewModel> > GetDispObservationsAsync(
            IWhereBuilder <DispObservation> dispObservationBuilder,
            IHelperBuilder <DispObservation> helperBuilder,
            int startIndex)
        {
            if (dispObservationBuilder == default)
            {
                throw new ArgumentNullException(nameof(dispObservationBuilder));
            }

            if (helperBuilder == default)
            {
                throw new ArgumentNullException(nameof(helperBuilder));
            }

            return(await helperBuilder.BuildQuery(dispObservationBuilder.Where(MedicContext.DispObservations.Skip(startIndex)))
                   .ProjectTo <DispObservationPreviewViewModel>(Configuration)
                   .ToListAsync());
        }
Beispiel #17
0
 /// <summary>
 /// 向生成器中追加查询条件
 /// </summary>
 /// <param name="wheres">生成器对象</param>
 /// <param name="anotherWhere">新增的查询条件</param>
 /// <returns></returns>
 public static IWhereBuilder Append(this IWhereBuilder wheres, string anotherWhere)
 {
     wheres.Append(anotherWhere);
     return(wheres);
 }