Aws.AzureTools.TableHelper.QueryTable C# (CSharp) Method

QueryTable() public method

public QueryTable ( string tableName, string oDataQuery ) : string>>.IEnumerable
tableName string
oDataQuery string
return string>>.IEnumerable
        public IEnumerable<IDictionary<string, string>> QueryTable(string tableName, string oDataQuery)
        {
            if (string.IsNullOrWhiteSpace(tableName)) throw new ArgumentNullException("tableName");

            Console.WriteLine(tableName);
            var table = cloudTableClient.GetTableReference(tableName);

            var query = new TableQuery();

            if (!string.IsNullOrWhiteSpace(oDataQuery))
            {
                query.FilterString = oDataQuery;
            }
            foreach (var entity in table.ExecuteQuery(query))
            {
                var dictionary = new Dictionary<string, string>();
                dictionary.Add("PartitionKey", entity.PartitionKey);
                dictionary.Add("RowKey", entity.RowKey);
                dictionary.Add("Timestamp", entity.Timestamp.ToString());
                //dictionary.Add("Etag", entity.ETag);
                foreach (var property in entity.Properties)
                {
                    dictionary.Add(property.Key, property.Value.StringValue);
                }
                yield return dictionary;
            }
        }

Usage Example

        static int Main(string[] args)
        {
            if (args.Length < 1)
            {
                Console.WriteLine("Usage: QueryTable tablename");
                Console.WriteLine("Usage: QueryTable tablename \"PartitionKey eq '1'\"");
                return Settings.FAIL;
            }

            var tableHelper = new TableHelper();
            var query = (args.Length > 1) ? args[1] : "";
            var lastKeys = "";
            foreach (var entity in tableHelper.QueryTable(args[0], query))
            {
                var keys = string.Join(",", entity.Keys.Select(x => "\"" + x + "\"").ToArray());
                if (keys != lastKeys)
                {
                    // only write out the column headings if the columns have changed
                    Console.WriteLine(keys);
                    lastKeys = keys;
                }

                Console.WriteLine(string.Join(",", entity.Values.Select(Escape).ToArray()));
            }
            return Settings.SUCCESS;
        }