Пример #1
0
        public IResult <IInventoryAdjustmentReturn> GetInventoryAdjustment(string inventoryAdjustmentKey)
        {
            if (inventoryAdjustmentKey == null)
            {
                throw new ArgumentNullException("inventoryAdjustmentKey");
            }

            var adjustmentKeyResult = KeyParserHelper.ParseResult <IInventoryAdjustmentKey>(inventoryAdjustmentKey);

            if (!adjustmentKeyResult.Success)
            {
                return(adjustmentKeyResult.ConvertTo <IInventoryAdjustmentReturn>());
            }
            var predicate = new InventoryAdjustmentKey(adjustmentKeyResult.ResultingObject).FindByPredicate;

            var select = InventoryAdjustmentProjectors.SplitSelect(_inventoryUnitOfWork);
            var inventoryAdjustment = _inventoryUnitOfWork.InventoryAdjustmentRepository
                                      .Filter(predicate)
                                      .SplitSelect(select)
                                      .ToList().FirstOrDefault();

            if (inventoryAdjustment == null)
            {
                return(new InvalidResult <IInventoryAdjustmentReturn>(null, string.Format(UserMessages.InventoryAdjustmentNotFound, inventoryAdjustmentKey)));
            }

            return(new SuccessResult <IInventoryAdjustmentReturn>(inventoryAdjustment));
        }
Пример #2
0
        public IResult <IQueryable <IInventoryAdjustmentReturn> > GetInventoryAdjustments(FilterInventoryAdjustmentParameters parameters)
        {
            var parseResult = parameters.ParseToPredicateBuilderFilters();

            if (!parseResult.Success)
            {
                return(parseResult.ConvertTo <IQueryable <IInventoryAdjustmentReturn> >());
            }

            var predicateResult = InventoryAdjustmentPredicateBuilder.BuildPredicate(parseResult.ResultingObject);

            if (!predicateResult.Success)
            {
                return(predicateResult.ConvertTo <IQueryable <IInventoryAdjustmentReturn> >());
            }
            var results = _inventoryUnitOfWork.InventoryAdjustmentRepository
                          .Filter(predicateResult.ResultingObject)
                          .SplitSelect(InventoryAdjustmentProjectors.SplitSelect(_inventoryUnitOfWork));

            return(new SuccessResult <IQueryable <IInventoryAdjustmentReturn> >(results));
        }