Esempio n. 1
0
 public IResult <IQueryable <ISalesOrderSummaryReturn> > GetSalesOrders(FilterSalesOrdersParameters parameters = null)
 {
     try
     {
         return(_salesServiceProvider.GetSalesOrders(parameters));
     }
     catch (Exception ex)
     {
         ex = ex.GetBaseException();
         _exceptionLogger.LogException(ex);
         return(new FailureResult <IQueryable <ISalesOrderSummaryReturn> >(null, ex.Message));
     }
 }
Esempio n. 2
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));
        }
Esempio n. 3
0
        internal static IResult <SalesOrderPredicateBuilder.PredicateBuilderFilters> ParseToPredicateBuilderFilters(this FilterSalesOrdersParameters parameters)
        {
            if (parameters == null)
            {
                return(new SuccessResult <SalesOrderPredicateBuilder.PredicateBuilderFilters>());
            }

            var result = new SalesOrderPredicateBuilder.PredicateBuilderFilters
            {
                SalesOrderStatus            = parameters.SalesOrderStatus,
                OrderReceivedRangeStart     = parameters.OrderReceivedRangeStart,
                OrderReceivedRangeEnd       = parameters.OrderReceivedRangeEnd,
                ScheduledShipDateRangeStart = parameters.ScheduledShipDateRangeStart,
                ScheduledShipDateRangeEnd   = parameters.ScheduledShipDateRangeEnd,
            };

            if (parameters.CustomerKey != null)
            {
                var customerKeyResult = KeyParserHelper.ParseResult <ICustomerKey>(parameters.CustomerKey);
                if (!customerKeyResult.Success)
                {
                    return(customerKeyResult.ConvertTo <SalesOrderPredicateBuilder.PredicateBuilderFilters>());
                }
                result.CustomerKey = customerKeyResult.ResultingObject;
            }

            if (parameters.BrokerKey != null)
            {
                var brokerKeyResult = KeyParserHelper.ParseResult <ICompanyKey>(parameters.BrokerKey);
                if (!brokerKeyResult.Success)
                {
                    return(brokerKeyResult.ConvertTo <SalesOrderPredicateBuilder.PredicateBuilderFilters>());
                }
                result.BrokerKey = brokerKeyResult.ResultingObject;
            }

            return(new SuccessResult <SalesOrderPredicateBuilder.PredicateBuilderFilters>(result));
        }