示例#1
0
        public async Task <IReadOnlyList <Operation> > ListFilterWithGraphAsync(int?idCategorie, DateTime?dateoperation)
        {
            OperationFilter spec = new OperationFilter(idCategorie, dateoperation);

            spec.AddInclude(o => o.IdCategorieNavigation);
            spec.ApplyOrderBy(O => O.Dateoperation);
            return(await this.ListAsync(spec));
        }
 public async Task <string[]> GetOperations(Predicate <OperationFilter> filter)
 {
     return((await _operationRepository.GetAllOperations())
            .Select(oe => OperationFilter.FromOperation(oe.ToOperation()))
            .Where(op => filter?.Invoke(op) ?? true)
            .Select(of => of.OperationId)
            .ToArray());
 }
        public void WhenAnOpIsNotBeenInstrumentedShouldProcessReturnsFalse()
        {
            ContractDescription contract = ContractBuilder.CreateDescription(
                typeof(ISelectiveTelemetryService),
                typeof(SelectiveTelemetryService));

            var filter = new OperationFilter(contract);

            Assert.IsFalse(
                filter.ShouldProcess("OperationWithoutTelemetry"),
                "ShouldProcessRequest('OperationWithoutTelemetry') returned true");
        }
示例#4
0
        public QueryField BuildSingleQueryFilter(dynamic filter, OperationFilter operation)
        {
            switch (operation)
            {
            case OperationFilter.Equal:
                return(new QueryField(filter.Field, Operation.Equal, filter.Value));

            case OperationFilter.NotEqual:
                return(new QueryField(filter.Field, Operation.NotEqual, filter.Value));

            case OperationFilter.LessThan:
                return(new QueryField(filter.Field, Operation.LessThan, filter.Value));

            case OperationFilter.GreaterThan:
                return(new QueryField(filter.Field, Operation.GreaterThan, filter.Value));

            case OperationFilter.LessThanOrEqual:
                return(new QueryField(filter.Field, Operation.LessThanOrEqual, filter.Value));

            case OperationFilter.GreaterThanOrEqual:
                return(new QueryField(filter.Field, Operation.GreaterThanOrEqual, filter.Value));

            case OperationFilter.Like:
                return(new QueryField(filter.Field, Operation.Like, filter.Value));

            case OperationFilter.NotLike:
                return(new QueryField(filter.Field, Operation.NotLike, filter.Value));

            case OperationFilter.Between:
                return(new QueryField(filter.Field, Operation.Between, filter.Values));

            case OperationFilter.NotBetween:
                return(new QueryField(filter.Field, Operation.Equal, filter.Values));

            case OperationFilter.In:
                return(new QueryField(filter.Field, Operation.Equal, filter.Values));

            case OperationFilter.NotIn:
                return(new QueryField(filter.Field, Operation.Equal, filter.Values));

            case OperationFilter.All:
                throw new NotImplementedException();

            case OperationFilter.Any:
                throw new NotImplementedException();

            default:
                throw new ArgumentOutOfRangeException(nameof(operation), operation, null);
            }
        }
        public void WhenNoOpsAreInstrumentedShouldProcessReturnsTrue()
        {
            ContractDescription contract = ContractBuilder.CreateDescription(
                typeof(ISimpleService),
                typeof(SimpleService));

            var filter = new OperationFilter(contract);

            foreach (var operation in contract.Operations)
            {
                Assert.IsTrue(
                    filter.ShouldProcess(operation.Name),
                    "Operation {0} not processed",
                    operation.Name);
            }
        }
示例#6
0
        public static IEnumerable <Operation> Filter(this IEnumerable <Operation> operations, CashAccount account, OperationType type, OperationFilter date, string search = null)
        {
            var collection = operations.ByType(account, type);

            if (string.IsNullOrEmpty(search))
            {
                if (date == OperationFilter.Week)
                {
                    collection = collection.LastWeek();
                }
                else if (date == OperationFilter.Month)
                {
                    collection = collection.CurrentMonth();
                }
                else if (date == OperationFilter.LastMonth)
                {
                    collection = collection.LastMonth();
                }
                return(collection.OrderByDescending(x => x.Id));
            }

            return(collection.Where(x => AcceptSearch(x, search)).OrderByDescending(x => x.Id));
        }
 /// <summary>
 /// 获取操作功能分页
 /// </summary>
 /// <param name="operationFilter">操作功能筛选信息</param>
 /// <returns>获取操作功能分页</returns>
 public IPaging <Operation> GetPaging(OperationFilter operationFilter)
 {
     return(GetPaging(operationFilter?.CreateQuery()));
 }
 /// <summary>
 /// 获取操作功能列表
 /// </summary>
 /// <param name="operationFilter">操作功能筛选信息</param>
 /// <returns>返回操作功能列表</returns>
 public List <Operation> GetList(OperationFilter operationFilter)
 {
     return(GetList(operationFilter?.CreateQuery()));
 }
 /// <summary>
 /// 获取操作功能
 /// </summary>
 /// <param name="operationFilter">操作功能筛选器</param>
 /// <returns>返回操作功能</returns>
 public Operation Get(OperationFilter operationFilter)
 {
     return(Get(operationFilter?.CreateQuery()));
 }
示例#10
0
 private object BuildQueryFilter(dynamic filter, OperationFilter operation, object field)
 {
     return(BuildSingleQueryFilter(filter, operation));
 }