public IResult <IIntraWarehouseOrderDetailReturn> GetIntraWarehouseOrder(string orderKey)
        {
            if (orderKey == null)
            {
                throw new ArgumentNullException("orderKey");
            }

            var keyResult = KeyParserHelper.ParseResult <IIntraWarehouseOrderKey>(orderKey);

            if (!keyResult.Success)
            {
                return(keyResult.ConvertTo((IIntraWarehouseOrderDetailReturn)null));
            }
            var predicate = new IntraWarehouseOrderKey(keyResult.ResultingObject).FindByPredicate;
            var selector  = IntraWarehouseOrderProjectors.SplitSelectDetail(_intraWarehouseOrderUnitOfWork, _timeStamper.CurrentTimeStamp.Date);

            var order = _intraWarehouseOrderUnitOfWork.IntraWarehouseOrderRepository.Filter(predicate).SplitSelect(selector).FirstOrDefault();

            if (order == null)
            {
                return(new FailureResult <IIntraWarehouseOrderDetailReturn>(null, string.Format(UserMessages.IntraWarehouseOrderNotFound, orderKey)));
            }

            return(new SuccessResult <IIntraWarehouseOrderDetailReturn>(order));
        }
        public IResult <IQueryable <IIntraWarehouseOrderDetailReturn> > GetIntraWarehouseOrders()
        {
            var select = IntraWarehouseOrderProjectors.SplitSelectDetail(_intraWarehouseOrderUnitOfWork, _timeStamper.CurrentTimeStamp.Date);
            var orders = _intraWarehouseOrderUnitOfWork.IntraWarehouseOrderRepository.All().SplitSelect(select);

            return(new SuccessResult <IQueryable <IIntraWarehouseOrderDetailReturn> >(orders));
        }
        public IResult <IQueryable <IIntraWarehouseOrderSummaryReturn> > GetIntraWarehouseOrderSummaries()
        {
            var selector = IntraWarehouseOrderProjectors.SelectSummary();
            var query    = _intraWarehouseOrderUnitOfWork.IntraWarehouseOrderRepository.All().AsExpandable().Select(selector);

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