/// <summary>
 /// Overload that takes a machine scorer confidence level threshold under which the item is to be hand-scored.
 /// No score info or confidence level will result in an item being counted as requiring hand-scores if machineScoreConfLevelThreshold is supplied
 /// </summary>
 /// <param name="opStatus"></param>
 /// <param name="excludeDropped"></param>
 /// <param name="selectedOnly"></param>
 /// <param name="machineScoreConfLevelThreshold"></param>
 /// <returns></returns>
 public bool HasItemsRequiringHandscores(ItemOperationalStatus opStatus, bool excludeDropped, bool selectedOnly, bool excludeNotForScoring, double?machineScoreConfLevelThreshold = null)
 {
     return(ItemResponses.Exists(ir =>
                                 Routing.ItemScoring.ItemScoringConfigManager.Instance.ScoreItem(ir) &&
                                 (!excludeDropped || !ir.Dropped) &&
                                 (!selectedOnly || ir.IsSelected) &&
                                 (!excludeNotForScoring || (ir.TestItem != null && ir.TestItem.IsScored)) &&
                                 (opStatus == ItemOperationalStatus.Any ||
                                  (opStatus == ItemOperationalStatus.FieldTest && ir.Operational == 0) ||
                                  (opStatus == ItemOperationalStatus.Operational && ir.Operational == 1)) &&
                                 (machineScoreConfLevelThreshold == null || ir.ScoreInfo == null || ir.ScoreInfo.ConfLevel == null || ir.ScoreInfo.ConfLevel.Value.CompareTo(machineScoreConfLevelThreshold) < 0)));
 }
        public async Task GetListOfItems()
        {
            ItemResponses result = await itemApi.GetAllItems();

            Assert.IsType <ItemResponses>(result);
            foreach (ItemResponse item in result.ItemResponse)
            {
                Assert.IsType <ItemResponse>(item);
                Assert.True(item.Sku.Length > 0);
                Assert.True(item.ProductName.Length > 0);
                Assert.True(item.Gtin.Length > 0);
            }
        }
        public async Task <ItemResponse> GetItem(string merchantSku)
        {
            // to avoid deadlock if this method is executed synchronously
            await new ContextRemover();

            Base.Http.Request request = CreateRequest();
            request.EndpointUri = string.Format("/v3/items/{0}", merchantSku);

            Base.Http.IResponse response = await client.GetAsync(request);

            ItemResponses result = await ProcessResponse <ItemResponses>(response);

            return(result.ItemResponse[0]);
        }
Ejemplo n.º 4
0
        public async Task ReceiveItemDetails()
        {
            ItemResponses result = await itemApi.GetAllItems();

            Assert.IsType <ItemResponses>(result);
            Assert.True(result.ItemResponse.Count == 10);
            foreach (ItemResponse item in result.ItemResponse)
            {
                Assert.True(item.Price.Amount > 0);
                Assert.False(string.IsNullOrEmpty(item.Sku));
                Assert.False(string.IsNullOrEmpty(item.Gtin));
                Assert.False(string.IsNullOrEmpty(item.Wpid));
            }
        }
Ejemplo n.º 5
0
        public async Task RequestItemByMerchantSku()
        {
            ItemResponses latestSku = await itemApi.GetAllItems(1, 10);

            Assert.IsType <ItemResponses>(latestSku);
            Assert.True(latestSku.ItemResponse.Count == 1);

            ItemResponse oneSku = await itemApi.GetItem(latestSku.ItemResponse[0].Sku);

            Assert.IsType <ItemResponse>(oneSku);
            Assert.True(latestSku.ItemResponse.Count == 1);
            Assert.Equal(latestSku.ItemResponse[0].Sku, oneSku.Sku);
            Assert.Equal(latestSku.ItemResponse[0].Price.Amount, oneSku.Price.Amount);
            Assert.Equal(latestSku.ItemResponse[0].ProductName, oneSku.ProductName);
        }
Ejemplo n.º 6
0
        public async Task <ItemResponses> GetAllItems(string nextCursor)
        {
            // to avoid deadlock if this method is executed synchronously
            await new ContextRemover();

            var request = CreateRequest();

            request.EndpointUri = "/v3/items";
            request.QueryParams.Add("nextCursor", nextCursor.ToString());

            var response = await client.GetAsync(request);

            ItemResponses result = await ProcessResponse <ItemResponses>(response);

            return(result);
        }
        public async Task GetPromotionForSingleSku()
        {
            ItemResponses oneItemList = await itemApi.GetAllItems(1, 10);

            var             sku    = oneItemList.ItemResponse[0].Sku;
            ServiceResponse result = await promotionApi.GetPromotionPrice(sku);

            Assert.IsType <ServiceResponse>(result);
            Assert.True(result.Status.Equals(Status.OK));

            var textWriter = new StringWriter();

            xmlSerializer.Serialize(textWriter, result);
            var               str     = textWriter.ToString();
            var               payload = GetPayloadForDelete(str, sku);
            Stream            stream  = new MemoryStream(Encoding.UTF8.GetBytes(payload));
            ItemPriceResponse result1 = await promotionApi.UpdatePromotionPrice(stream);

            Assert.IsType <ItemPriceResponse>(result1);
        }
        public async Task <ItemResponses> GetAllItems(int limit = 10, int offset = 0)
        {
            // to avoid deadlock if this method is executed synchronously
            await new ContextRemover();

            var request = CreateRequest();

            request.EndpointUri = "/v3/items";

            if (limit > 0)
            {
                request.QueryParams.Add("limit", limit.ToString());
            }
            if (offset > 0)
            {
                request.QueryParams.Add("offset", offset.ToString());
            }

            var response = await client.GetAsync(request);

            ItemResponses result = await ProcessResponse <ItemResponses>(response);

            return(result);
        }
        public async Task CanUpdatePromotionForSpecificSku()
        {
            ItemResponses oneItemList = await itemApi.GetAllItems(1, 20);

            var sku = oneItemList.ItemResponse[0].Sku;

            //Delete the current promotions if there is any
            //var result = await promotionApi.GetPromotionPrice(sku);
            //Assert.IsType<ServiceResponse>(result);
            //StringWriter textWriter = new StringWriter();
            //xmlSerializer.Serialize(textWriter, result);
            //var str = textWriter.ToString();
            //var payload = GetPayloadForDelete(str, sku);

            using (Stream stream = GetRequestContentForPromotionUpdate(sku, "REDUCED", "DELETE"))
            {
                ItemPriceResponse result = await promotionApi.UpdatePromotionPrice(stream);

                Assert.IsType <ItemPriceResponse>(result);
                Assert.True(result.Mart.Length > 0);
                Assert.True(result.Sku == sku);
                Assert.True(result.Message.Length > 0);
            }
        }