Beispiel #1
0
            /// <summary>
            /// Get item availabilities by requested item quantities.
            /// </summary>
            /// <param name="request">The request.</param>
            /// <returns><see cref="Response"/> object.</returns>
            private Response GetItemAvailabilities(GetItemAvailabilitiesDataRequest request)
            {
                var dataManager = new ItemAvailabilityDataManager(request.RequestContext);
                PagedResult <ItemAvailability> itemAvailabilities = null;

                ItemAvailabilitiesQueryCriteria criteria = request.QueryCriteria;

                ThrowIf.Null(criteria, "request.QueryCriteria");

                if (criteria.MaxWarehousesPerItem.HasValue)
                {
                    // Get item availabilities by requested item quantities.
                    itemAvailabilities = dataManager.GetItemAvailabilitiesByItemQuantities(criteria.ItemQuantities, criteria.CustomerAccountNumber, criteria.MaxWarehousesPerItem.Value, request.QueryResultSettings);
                    return(new EntityDataServiceResponse <ItemAvailability>(itemAvailabilities));
                }

                if (criteria.ItemWarehouses != null)
                {
                    // Get item availabilities by item and warehouse combinations.
                    itemAvailabilities = dataManager.GetItemAvailabilitiesByItemWarehouses(criteria.ItemWarehouses, request.QueryResultSettings);
                    return(new EntityDataServiceResponse <ItemAvailability>(itemAvailabilities));
                }

                if (criteria.IncludeQuantities)
                {
                    // Get item available quantities by items.
                    PagedResult <ItemAvailableQuantity> itemAvailableQuantities = dataManager.GetItemAvailableQuantitiesByItems(criteria.Items, criteria.CustomerAccountNumber, request.QueryResultSettings);
                    return(new EntityDataServiceResponse <ItemAvailableQuantity>(itemAvailableQuantities));
                }

                // Get item availabilities by items.
                itemAvailabilities = dataManager.GetItemAvailabilitiesByItems(criteria.Items, criteria.CustomerAccountNumber, request.QueryResultSettings);
                return(new EntityDataServiceResponse <ItemAvailability>(itemAvailabilities));
            }
Beispiel #2
0
            /// <summary>
            /// Reserve items.
            /// </summary>
            /// <param name="request">The request.</param>
            /// <returns><see cref="NullResponse"/> object.</returns>
            private NullResponse ReserveItems(ReserveItemsDataRequest request)
            {
                var dataManager = new ItemAvailabilityDataManager(request.RequestContext);

                dataManager.ReserveItems(request.ItemReservations);
                return(new NullResponse());
            }