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)); } }
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)); }
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)); }