/// <summary>
        ///	Get sku's inventory on specified warehouseLocation
        /// </summary>
        /// <param name="sku"></param>
        /// <param name="warehouseLocationCode"></param>
        /// <param name="token"></param>
        /// <returns></returns>
        public async Task <ItemInventory> GetSkuInventory(string sku, string warehouseLocationCode, CancellationToken token, Mark mark = null)
        {
            if (mark == null)
            {
                mark = Mark.CreateNew();
            }

            var request = new GetItemInventoryRequest(type: SellerPartNumberRequestType, value: sku,
                                                      warehouseLocationCode: warehouseLocationCode);

            Func <HttpStatusCode, ErrorResponse, bool> ignoreErrorHandler = (status, error) =>
            {
                // can't find item
                return(error != null &&
                       error.Code == "CT026" &&
                       status == HttpStatusCode.BadRequest);
            };

            var response = await base.PutAsync(new ItemInventoryCommand( base.Config, base.Credentials, request.ToJson()), token, mark, ignoreErrorHandler);

            if (response.Error == null)
            {
                return(JsonConvert.DeserializeObject <ItemInventory>(response.Result));
            }

            return(null);
        }
示例#2
0
        [Fact]//B2B  XML
        public async Task GetItemInventory304_XML_CAN()
        {
            GetItemInventoryRequest InventoryRequest = new GetItemInventoryRequest()
            {
                Type  = ItemQueryType.NewEggItemNumber,
                Value = "9SIA44S3KG2890"//B2B A44S
            };

            CheckRequestString <GetItemInventoryRequest>(InventoryRequest);
            var body = await fadeAPI_CAN_XML.GetItemInventory(InventoryRequest, 304);//have  WarehouseCode

            Assert.IsType <GetItemInventoryResponse>(body);
        }
        //B2B,CAN
        public async Task <GetItemInventoryResponse> GetItemInventory(GetItemInventoryRequest reqModel, int?Version = null)
        {
            var request = CreateRequest <GetItemInventoryRequest>(reqModel);

            request.URI = "contentmgmt/item/inventory";
            if (Version != null)
            {
                request.QueryParams.Add("version", Version.ToString());//304
            }
            var response = await client.PostAsync(request);

            var result = await ProcessResponse <GetItemInventoryResponse>(response);

            return(result);
        }