Example #1
0
        public List <BuildResultEntity> GetBuildResults(DateTimeOffset startDate, string viewName)
        {
            var filter = FilterUtil.SinceDate(ColumnNames.PartitionKey, startDate);

            filter = FilterView(filter, viewName);
            var query = new TableQuery <BuildResultEntity>().Where(filter);

            return(_buildResultDateTable.ExecuteQuery(query).ToList());
        }
Example #2
0
        public FilterUtil Or(FilterUtil other)
        {
            var filter = TableQuery.CombineFilters(
                _filter,
                TableOperators.Or,
                other.Filter);

            return(new FilterUtil(filter));
        }
Example #3
0
        public static FilterUtil Combine(FilterUtil left, CombineOperator op, FilterUtil right)
        {
            var filter = TableQuery.CombineFilters(
                left.Filter,
                ToTableOperator(op),
                right.Filter);

            return(new FilterUtil(filter));
        }
Example #4
0
        public List <string> GetViewNames(DateTimeOffset startDate)
        {
            var query        = new TableQuery <ViewNameEntity>().Where(FilterUtil.SinceDate(ColumnNames.PartitionKey, startDate));
            var viewNameList = _viewNameDateTable.ExecuteQuery(query);

            var list = new List <string>();

            list.Add(AzureUtil.ViewNameAll);
            list.AddRange(viewNameList.Select(x => x.ViewName).Distinct());
            return(list);
        }
Example #5
0
        public List <BuildFailureEntity> GetTestCaseFailures(DateTimeOffset startDate, string name, string viewName)
        {
            var filter = FilterUtil
                         .SinceDate(ColumnNames.PartitionKey, startDate)
                         .And(FilterUtil.Column(nameof(BuildFailureEntity.Identifier), name));

            filter = FilterView(filter, viewName);
            var query = new TableQuery <BuildFailureEntity>().Where(filter);

            return(_buildFailureDateTable.ExecuteQuery(query).ToList());
        }
Example #6
0
        public List <BuildResultEntity> GetBuildResultsByKindName(DateTimeOffset startDate, string kindName, string viewName)
        {
            var filter = FilterUtil
                         .SinceDate(ColumnNames.PartitionKey, startDate)
                         .And(FilterUtil.Column(nameof(BuildResultEntity.ClassificationName), kindName));

            filter = FilterView(filter, viewName);
            var query = new TableQuery <BuildResultEntity>().Where(filter);

            return(_buildResultDateTable.ExecuteQuery(query).ToList());
        }
Example #7
0
        private static FilterUtil FilterView(FilterUtil util, string viewName)
        {
            Debug.Assert(nameof(BuildResultEntity.ViewName) == nameof(BuildFailureEntity.ViewName));

            if (viewName == AzureUtil.ViewNameAll)
            {
                return(util);
            }

            var other = FilterUtil.Column(nameof(BuildResultEntity.ViewName), viewName, ColumnOperator.Equal);

            return(util.And(other));
        }
Example #8
0
        /// <summary>
        /// Query counter entities between the specified dates (inclusive)
        /// </summary>
        public static TableQuery <T> CreateTableQuery <T>(DateTimeOffset startDate, DateTimeOffset endDate)
            where T : CounterEntity, new()
        {
            var startDateKey = new DateKey(startDate);
            var endDateKey   = new DateKey(endDate);
            var filter       = FilterUtil
                               .Combine(
                FilterUtil.BetweenDateKeys(ColumnNames.PartitionKey, startDateKey, endDateKey),
                CombineOperator.And,
                FilterUtil.Combine(
                    FilterUtil.Column(nameof(CounterEntity.DateTimeUtcTicks), startDate.UtcTicks, ColumnOperator.GreaterThanOrEqual),
                    CombineOperator.And,
                    FilterUtil.Column(nameof(CounterEntity.DateTimeUtcTicks), endDate.UtcTicks, ColumnOperator.LessThanOrEqual)));

            return(new TableQuery <T>().Where(filter.Filter));
        }
Example #9
0
        /// <summary>
        /// Query async for a single entity value matching the specified key
        /// </summary>
        public static async Task <T> QueryAsync <T>(
            CloudTable table,
            EntityKey key,
            CancellationToken cancellationToken = default(CancellationToken))
            where T : ITableEntity, new()
        {
            var filter  = FilterUtil.Key(key);
            var query   = new TableQuery <T>().Where(filter);
            var segment = await table.ExecuteQuerySegmentedAsync(query, null, cancellationToken);

            if (segment.Results.Count == 0)
            {
                return(default(T));
            }

            return(segment.Results[0]);
        }
Example #10
0
 public static TableQuery <T> Where <T>(this TableQuery <T> query, FilterUtil filter)
 {
     return(query.Where(filter.Filter));
 }
Example #11
0
 public static FilterUtil Key(EntityKey key)
 {
     return(FilterUtil
            .PartitionKey(key.PartitionKey)
            .And(FilterUtil.RowKey(key.RowKey)));
 }