示例#1
0
        private async Task <T> GetOfferV2Async <T>(
            string targetRID,
            bool failIfNotConfigured,
            CancellationToken cancellationToken)
        {
            if (string.IsNullOrWhiteSpace(targetRID))
            {
                throw new ArgumentNullException(targetRID);
            }

            QueryDefinition queryDefinition = new QueryDefinition("select * from root r where r.offerResourceId= @targetRID");

            queryDefinition.WithParameter("@targetRID", targetRID);

            using FeedIterator <T> databaseStreamIterator = this.GetOfferQueryIterator <T>(
                      queryDefinition: queryDefinition,
                      continuationToken: null,
                      requestOptions: null,
                      cancellationToken: cancellationToken);

            T offerV2 = await this.SingleOrDefaultAsync <T>(databaseStreamIterator);

            if (offerV2 == null &&
                failIfNotConfigured)
            {
                throw (CosmosException)CosmosExceptionFactory.CreateNotFoundException(
                          $"Throughput is not configured for {targetRID}");
            }

            return(offerV2);
        }
        private async Task <OfferV2> GetOfferV2Async(
            string targetRID,
            bool failIfNotConfigured            = true,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            if (string.IsNullOrWhiteSpace(targetRID))
            {
                throw new ArgumentNullException(targetRID);
            }

            QueryDefinition queryDefinition = new QueryDefinition("select * from root r where r.offerResourceId= @targetRID");

            queryDefinition.WithParameter("@targetRID", targetRID);

            FeedIterator <OfferV2> databaseStreamIterator = this.GetOfferQueryIterator <OfferV2>(
                queryDefinition);
            OfferV2 offerV2 = await this.SingleOrDefaultAsync <OfferV2>(databaseStreamIterator);

            if (offerV2 == null &&
                failIfNotConfigured)
            {
                throw new CosmosException(HttpStatusCode.NotFound, "Throughput is not configured");
            }

            return(offerV2);
        }
        internal static QueryDefinition CreateFromQuerySpec(SqlQuerySpec sqlQuery)
        {
            if (sqlQuery == null)
            {
                throw new ArgumentNullException(nameof(sqlQuery));
            }

            QueryDefinition queryDefinition = new QueryDefinition(sqlQuery.QueryText);

            foreach (SqlParameter sqlParameter in sqlQuery.Parameters)
            {
                queryDefinition = queryDefinition.WithParameter(sqlParameter.Name, sqlParameter.Value);
            }

            return(queryDefinition);
        }
        internal static QueryDefinition CreateFromQuerySpec(SqlQuerySpec sqlQuery)
        {
            if (sqlQuery == null)
            {
                // It is to support scenarios where all the data needs to be read
                return(null);
            }

            QueryDefinition queryDefinition = new QueryDefinition(sqlQuery.QueryText);

            foreach (SqlParameter sqlParameter in sqlQuery.Parameters)
            {
                queryDefinition = queryDefinition.WithParameter(sqlParameter.Name, sqlParameter.Value);
            }

            return(queryDefinition);
        }