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