public List<FollowerEntry> getEntryList(string PartitionKey)
        {
            List<FollowerEntry> list = new List<FollowerEntry>();

            ListRowsContinuationToken continuationToken = null;
            do
            {
                var allCustomers = context.CreateQuery<FollowerEntry>("FollowerEntry").Where(n => n.PartitionKey == PartitionKey).Take(1000);
                var query = allCustomers as DataServiceQuery<FollowerEntry>;
                if (continuationToken != null)
                {
                    query = query.AddQueryOption("NextPartitionKey", continuationToken.PartitionKey);
                    if (continuationToken.RowKey != null)
                    {
                        query = query.AddQueryOption("NextRowKey", continuationToken.RowKey);
                    }
                }

                var response = query.Execute() as QueryOperationResponse<FollowerEntry>;

                foreach (var obj in response)
                {
                    list.Add(obj);
                }

                if (response.Headers.ContainsKey("x-ms-continuation-NextPartitionKey"))
                {
                    continuationToken = new ListRowsContinuationToken();
                    continuationToken.PartitionKey = response.Headers["x-ms-continuation-NextPartitionKey"];
                    if (response.Headers.ContainsKey("x-ms-continuation-NextRowKey"))
                    {
                        continuationToken.RowKey = response.Headers["x-ms-continuation-NextRowKey"];
                    }
                }
                else
                {
                    continuationToken = null;
                }
            } while (continuationToken != null);

            return list;
        }
        public long Count()
        {
            long cnt = 0;
            ListRowsContinuationToken continuationToken = null;
            do
            {
                var allCustomers = context.CreateQuery<FollowerEntry>("FollowerEntry").Take(1000);
                var query = allCustomers as DataServiceQuery<FollowerEntry>;
                if (continuationToken != null)
                {
                    query = query.AddQueryOption("NextPartitionKey", continuationToken.PartitionKey);
                    if (continuationToken.RowKey != null)
                    {
                        query = query.AddQueryOption("NextRowKey", continuationToken.RowKey);
                    }
                }

                var response = query.Execute() as QueryOperationResponse;

                foreach (var obj in response)
                {
                    cnt++;
                }

                if (response.Headers.ContainsKey("x-ms-continuation-NextPartitionKey"))
                {
                    continuationToken = new ListRowsContinuationToken();
                    continuationToken.PartitionKey = response.Headers["x-ms-continuation-NextPartitionKey"];
                    if (response.Headers.ContainsKey("x-ms-continuation-NextRowKey"))
                    {
                        continuationToken.RowKey = response.Headers["x-ms-continuation-NextRowKey"];
                    }
                }
                else
                {
                    continuationToken = null;
                }
            } while (continuationToken != null);

            return cnt;
        }
Exemple #3
0
        public override void PrimeOutput(int outputs, int[] outputIDs, PipelineBuffer[] buffers)
        {
            IDTSOutput100  output = ComponentMetaData.OutputCollection[0];
            PipelineBuffer buffer = buffers[0];
            // A ListRowsContinuationToken class encapsulates the partition and row key
            ListRowsContinuationToken continuationToken = null;
            string strSource       = (string)this.ComponentMetaData.CustomPropertyCollection["TableName"].Value;
            string srcTable        = string.Empty;
            string srcPartitionKey = string.Empty;

            if (strSource != string.Empty)
            {
                string[] str1 = strSource.Split(';');
                srcTable        = str1[0].Split('=')[1];
                srcPartitionKey = str1[1].Split('=')[1];
            }

            do
            {
                var allItems = this.context.CreateQuery <GenericEntity>(srcTable).Where(item => item.PartitionKey == srcPartitionKey);
                var query    = allItems as DataServiceQuery <GenericEntity>;
                if (continuationToken != null)
                {
                    query = query.AddQueryOption("NextPartitionKey", continuationToken.PartitionKey);
                    if (continuationToken.RowKey != null)
                    {
                        query = query.AddQueryOption("NextRowKey", continuationToken.RowKey);
                    }
                }
                var response = query.Execute() as QueryOperationResponse;
                if (response.Headers.ContainsKey("x-ms-continuation-NextPartitionKey"))
                {
                    continuationToken = new ListRowsContinuationToken();
                    continuationToken.PartitionKey = response.Headers["x-ms-continuation-NextPartitionKey"];
                    if (response.Headers.ContainsKey("x-ms-continuation-NextRowKey"))
                    {
                        continuationToken.RowKey = response.Headers["x-ms-continuation-NextRowKey"];
                    }
                }
                else
                {
                    continuationToken = null;
                }
                foreach (var item in allItems)
                {
                    buffer.AddRow();

                    for (int x = 0; x < columnInformation.Count; x++)
                    {
                        var ci    = (ColumnInfo)columnInformation[x];
                        var value = item[ci.ColumnName].Value;
                        if (value != null)
                        {
                            buffer[ci.BufferColumnIndex] = value;
                        }
                        else
                        {
                            buffer.SetNull(ci.BufferColumnIndex);
                        }
                    }
                }
            }while (continuationToken != null);
            buffer.SetEndOfRowset();
        }