Ejemplo n.º 1
0
        public IResult <IQueryable <ISalesOrderSummaryReturn> > GetSalesOrders(FilterSalesOrdersParameters parameters)
        {
            var parsedFiltersResult = parameters.ParseToPredicateBuilderFilters();

            if (!parsedFiltersResult.Success)
            {
                return(parsedFiltersResult.ConvertTo <IQueryable <ISalesOrderSummaryReturn> >());
            }

            var predicateResult = SalesOrderPredicateBuilder.BuildPredicate(_inventoryShipmentOrderUnitOfWork, parsedFiltersResult.ResultingObject);

            if (!predicateResult.Success)
            {
                return(predicateResult.ConvertTo <IQueryable <ISalesOrderSummaryReturn> >());
            }

            var select = SalesOrderProjectors.SplitSelectSummary();
            var query  = _inventoryShipmentOrderUnitOfWork.SalesOrderRepository.All()
                         .Where(predicateResult.ResultingObject)
                         .SplitSelect(select);

            return(new SuccessResult <IQueryable <ISalesOrderSummaryReturn> >(query));
        }