Beispiel #1
0
        // GET api/toteinventory/{toteKey}
        public ToteInventory Get(string id)
        {
            if (string.IsNullOrWhiteSpace(id))
            {
                return(null);
            }

            var inventoryFilter = new FilterInventoryParameters
            {
                ToteKey = id
            };
            var getInventoryResult = _inventoryService.GetInventory(inventoryFilter);

            getInventoryResult.EnsureSuccessWithHttpResponseException();

            var inventorySummaries = getInventoryResult.ResultingObject.Inventory.ToList();

            if (!inventorySummaries.Any())
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }

            return(new ToteInventory
            {
                LotKey = inventorySummaries.First().LotKey,
                Inventory = inventorySummaries.Project().To <InventoryItem>(),
                ToteKey = inventorySummaries.First().ToteKey,
                Product = inventorySummaries.Select(s => s.LotProduct).Project().To <InventoryProductResponse>().Single()
            });
        }
Beispiel #2
0
 public IResult <IInventoryReturn> GetInventory(FilterInventoryParameters parameters = null)
 {
     try
     {
         return(_inventoryServiceProvider.GetInventory(parameters));
     }
     catch (Exception ex)
     {
         _exceptionLogger.LogException(ex);
         return(new FailureResult <IInventoryReturn>(null, ex.Message));
     }
 }
Beispiel #3
0
        public IResult <IInventoryReturn> GetInventory(FilterInventoryParameters parameters = null)
        {
            InventoryPredicateBuilder.PredicateBuilderFilters filters = null;
            if (parameters != null)
            {
                var filterResults = parameters.ParseToPredicateBuilderFilters();
                if (!filterResults.Success)
                {
                    return(filterResults.ConvertTo((IInventoryReturn)null));
                }
                filters = filterResults.ResultingObject;
            }

            return(new GetInventoryCommand(_inventoryUnitOfWork).Execute(filters, _timeStamper.CurrentTimeStamp.Date));
        }
Beispiel #4
0
        public void GetById_CallsServiceMethodWithCorrectParameters()
        {
            // Arrange
            var toteKey           = "12345";
            var serviceParameters = new FilterInventoryParameters {
                ToteKey = toteKey
            };

            SetupGetInventoryByToteKeysMethod(callback: p => serviceParameters = p);

            // Act
            systemUnderTest.Get(toteKey);

            // Assert
            Assess.IsNotNull(serviceParameters);
            mockInventoryService.Verify(m => m.GetInventory(serviceParameters), Times.Once());
        }
        internal static IResult <InventoryPredicateBuilder.PredicateBuilderFilters> ParseToPredicateBuilderFilters(this FilterInventoryParameters parameters)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            var baseResult = (parameters as FilterInventoryParametersBase).ParseToPredicateBuilderFilters();

            if (!baseResult.Success)
            {
                return(baseResult);
            }
            var filters = baseResult.ResultingObject;

            if (!string.IsNullOrEmpty(parameters.FacilityKey))
            {
                var warehouseKeyResult = KeyParserHelper.ParseResult <IFacilityKey>(parameters.FacilityKey);
                if (!warehouseKeyResult.Success)
                {
                    return(warehouseKeyResult.ConvertTo <InventoryPredicateBuilder.PredicateBuilderFilters>());
                }
                filters.FacilityKey = warehouseKeyResult.ResultingObject;
            }

            if (!string.IsNullOrEmpty(parameters.ToteKey))
            {
                filters.ToteKey = parameters.ToteKey.ToToteKey();
            }

            if (!string.IsNullOrWhiteSpace(parameters.LocationGroupName))
            {
                filters.LocationGroupName = parameters.LocationGroupName;
            }

            return(new SuccessResult <InventoryPredicateBuilder.PredicateBuilderFilters>(filters));
        }