public ResultInfoEbayItemInfo GetItem(eBayRequestItemInfoData requestData)
        {
            var req = new GetItemRequestType
            {
                ItemID = requestData.ItemId
            };
            var response = base.GetServiceData(Service.GetItem, req);
            var rez      = new ResultInfoEbayItemInfo(response);

            rez.IncrementRequests("GetItem", req.ItemID);
            return(rez);
        }
示例#2
0
 public ItemType GetSoldItemSnapshot(string orderLineItemID)
 {
     try
     {
         var      apiContext           = _eBayApiContextProvider.GetAPIContext();
         var      getItemCall          = new GetItemCall(apiContext);
         ItemType retItem              = null;
         var      orderLineItemIDSpilt = orderLineItemID.Split('-');
         if (orderLineItemIDSpilt.Count() == 2)
         {
             var detailLevel = new DetailLevelCodeTypeCollection();
             detailLevel.Add(DetailLevelCodeType.ItemReturnDescription);
             var getItemRequest = new GetItemRequestType()
             {
                 ItemID = orderLineItemIDSpilt[0], TransactionID = orderLineItemIDSpilt[1], DetailLevel = detailLevel
             };
             int  failTimes = 0;
             bool isSuccess = false;
             do
             {
                 try
                 {
                     var response = getItemCall.ExecuteRequest(getItemRequest) as GetItemResponseType;
                     //lstSoldItem.Add(response.Item);
                     isSuccess = true;
                     retItem   = response.Item;
                 }
                 catch (Exception ex)
                 {
                     failTimes++;
                     LogManager.Instance.Error($"Get item itemID:{getItemRequest.ItemID}, transactionID:{getItemRequest.TransactionID} failed. {ex.ToString()}");
                 }
             }while (failTimes < 5 && !isSuccess);
             //if (!isSuccess)
             //    throw new Exception($"Get item itemID:{getItemRequest.ItemID}, transactionID:{getItemRequest.TransactionID} failed for {failTimes} times.");
         }
         return(retItem);
         //return lstSoldItem.ToArray();
     }
     catch (Exception ex)
     {
         LogManager.Instance.Error(ex.ToString());
         throw ex;
     }
 }
示例#3
0
        public static GetItemResponseType GetItemRequest(string ItemID)
        {
            eBayAPIInterfaceService service = EbayCall.eBayServiceCall("GetItem");

            GetItemRequestType request = new GetItemRequestType();

            request.ItemID  = ItemID;
            request.Version = "965";
            request.IncludeItemSpecifics = true;
            request.DetailLevel          = new DetailLevelCodeTypeCollection()
            {
                DetailLevelCodeType.ItemReturnDescription
            };

            GetItemResponseType response = service.GetItem(request);

            //Console.WriteLine("=====================================");
            //Console.WriteLine("Item Iitle - {0}", response.Item.Title);
            //Console.WriteLine("Primary Category: {0}", response.Item.PrimaryCategory.CategoryName);

            //Console.WriteLine("=====================================");

            //Console.WriteLine("ItemID: {0}", response.Item.ItemID);
            //Console.WriteLine("Condition: {0}", response.Item.ConditionDisplayName);
            //Console.WriteLine("=====================================");

            //Console.WriteLine("Variation\n  +  {0}", string.Join("\n  +  ", response.Item.Variations.VariationSpecificsSet.ToArray().Select(x => x.Name + ": " + string.Join("| ", x.Value.ToArray()))));

            //Console.WriteLine("=====================================");

            //Console.WriteLine("Listing Duration: {0}", response.Item.ListingDuration);
            //Console.WriteLine("Start Price: {0} {1}", response.Item.StartPrice.Value, response.Item.Currency);
            //Console.WriteLine("Payment Type[0]: {0}", response.Item.PaymentMethods[0]);
            //Console.WriteLine("PayPal Email Address: {0}", response.Item.PayPalEmailAddress);
            //Console.WriteLine("Postal Code: {0}", response.Item.PostalCode);
            //Console.WriteLine("PictureURL:\n  +  {0}", string.Join("\n  +  ", response.Item.PictureDetails.PictureURL.ToArray()));

            //Console.WriteLine("=====================================");

            //Console.WriteLine("Item specifics\n  +  {0}", string.Join("\n  +  ", response.Item.ItemSpecifics.ToArray().Select(x => x.Name + ": " + string.Join("||", x.Value.ToArray())).ToList()));
            // ...Convert response object to JSON to see all
            return(response);
        }
示例#4
0
        public static void GetItemRequest(string itemID)
        {
            eBayAPIInterfaceService service = EbayCalls.EbayServiceCall("GetItem");

            GetItemRequestType request = new GetItemRequestType();

            request.Version = "949";
            request.ItemID  = itemID;
            GetItemResponseType response = service.GetItem(request);

            Console.WriteLine("=======================");
            Console.WriteLine("Item Title - {0}", response.Item.Title);
            Console.WriteLine("=======================");

            Console.WriteLine("ItemID: {0}", response.Item.ItemID);
            Console.WriteLine("Primary Category: {0}", response.Item.PrimaryCategory);
            Console.WriteLine("Listing Duration: {0}", response.Item.ListingDuration);
            Console.WriteLine("Start Price: {0}", response.Item.StartPrice);
            Console.WriteLine("Payment Type[0]: {0}", response.Item.PaymentMethods[0]);
            Console.WriteLine("PayPal Email Address: {0}", response.Item.PayPalEmailAddress);
            Console.WriteLine("Postal Code: {0}", response.Item.PostalCode);
        }
示例#5
0
        /// <summary>
        /// Retrieve item details.
        /// </summary>
        /// <param name="ItemID">eBay Item ID</param>
        public static void GetItemRequest(string ItemID)
        {
            eBayAPIInterfaceService service = EbayCalls.eBayServiceCall("GetItem");

            GetItemRequestType request = new GetItemRequestType();

            request.Version = "949";
            request.ItemID  = ItemID;
            GetItemResponseType response = service.GetItem(request);

            Console.WriteLine("=====================================");
            Console.WriteLine("Item Iitle - {0}", response.Item.Title);
            Console.WriteLine("=====================================");

            Console.WriteLine("ItemID: {0}", response.Item.ItemID);
            Console.WriteLine("Primary Category: {0}", response.Item.PrimaryCategory.CategoryName);
            Console.WriteLine("Listing Duration: {0}", response.Item.ListingDuration);
            Console.WriteLine("Start Price: {0} {1}", response.Item.StartPrice.Value, response.Item.Currency);
            Console.WriteLine("Payment Type[0]: {0}", response.Item.PaymentMethods[0]);
            Console.WriteLine("PayPal Email Address: {0}", response.Item.PayPalEmailAddress);
            Console.WriteLine("Postal Code: {0}", response.Item.PostalCode);
            // ...Convert response object to JSON to see all
        }
示例#6
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="ApiContext">The <see cref="ApiCall.ApiContext"/> for this API Call of type <see cref="ApiContext"/>.</param>
 public GetItemCall(ApiContext ApiContext)
 {
     ApiRequest = new GetItemRequestType();
     this.ApiContext = ApiContext;
 }
示例#7
0
 /// <summary>
 /// 
 /// </summary>
 public GetItemCall()
 {
     ApiRequest = new GetItemRequestType();
 }
示例#8
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="ApiContext">The <see cref="ApiCall.ApiContext"/> for this API Call of type <see cref="ApiContext"/>.</param>
 public GetItemCall(ApiContext ApiContext)
 {
     ApiRequest      = new GetItemRequestType();
     this.ApiContext = ApiContext;
 }
示例#9
0
 /// <summary>
 ///
 /// </summary>
 public GetItemCall()
 {
     ApiRequest = new GetItemRequestType();
 }
示例#10
0
        /// <summary>
        /// Should be also using GetItemStatus
        /// </summary>
        /// <param name="itemID"></param>
        /// <param name="nbRetry"></param>
        /// <param name="returnJustPrice"></param>
        /// <returns></returns>
        private eBayItemData GetItemDetails(long itemID, int nbRetry, bool returnJustPrice)
        {
            Logger.CreateLog("Beginning__GetItemDetails", itemID.ToString(), null, EnumLogLevel.INFO);

            string callname = "GetItem";

            try
            {

                this.BuildService(callname);

                GetItemRequestType request = new GetItemRequestType();
                request.Version = _version;
                request.ItemID = itemID.ToString();

                List<string> outputs = new List<string>();
                outputs.Add("Item.SellingStatus.CurrentPrice");
                outputs.Add("Item.ListingType");

                if (!returnJustPrice)
                {
                    outputs.Add("Item.ListingDetails.EndTime");
                    outputs.Add("Item.ListingDetails.ViewItemURL");
                    outputs.Add("Item.Title");
                    outputs.Add("Item.PictureDetails");
                    outputs.Add("Item.Description");
                    outputs.Add("Item.Seller.UserID");
                    outputs.Add("Item.ShippingDetails");
                    outputs.Add("Item.PaymentMethods");
                }

                request.OutputSelector = outputs.ToArray();

                GetItemResponseType response = this.service.GetItem(request);

                if (response.Ack == AckCodeType.Success)
                {
                    if (response.Item.ListingType != ListingTypeCodeType.Chinese)
                        throw new Exception("This listing type can't be sniped.");
                    // http://developer.ebay.com/devzone/xml/docs/Reference/eBay/types/ListingTypeCodeType.html

                    eBayItemData itemData = new eBayItemData();

                    if (response.Item.SellingStatus != null) itemData.ItemCurrentHighestBid = response.Item.SellingStatus.CurrentPrice.Value;
                    if (response.Item.SellingStatus != null) itemData.ItemCurrencyCode = (EnumCurrencyCode)response.Item.SellingStatus.CurrentPrice.currencyID;
                    itemData.ItemID = itemID;

                    if (!returnJustPrice)
                    {
                        itemData.ItemEndDate = ServiceTimeZone.eBayDateTimeToUniversal(response.Item.ListingDetails.EndTime);
                        itemData.ItemURL = response.Item.ListingDetails.ViewItemURL;
                        itemData.ItemTitle = response.Item.Title;

                        if (response.Item.PictureDetails != null && response.Item.PictureDetails.PictureURL != null && response.Item.PictureDetails.PictureURL.ToList().Count() > 0)
                            itemData.ItemPictureURL = response.Item.PictureDetails.PictureURL[0];

                        if (string.IsNullOrEmpty(itemData.ItemPictureURL) && !string.IsNullOrEmpty(response.Item.PictureDetails.GalleryURL))
                            itemData.ItemPictureURL = response.Item.PictureDetails.GalleryURL;

                        itemData.ItemDescription = response.Item.Description;
                        itemData.ItemSellerID = response.Item.Seller.UserID;

            #warning to be verified
                        itemData.ItemShippingInfo = response.Item.ShippingDetails.ToString();

                        itemData.ItemPaymentOptions = new List<string>();
                        foreach (BuyerPaymentMethodCodeType paymentMethod in response.Item.PaymentMethods.ToArray())
                            itemData.ItemPaymentOptions.Add(paymentMethod.ToString());
                    }

                    Logger.CreateLog("Ending__GetItemDetails", itemID.ToString(), null, EnumLogLevel.INFO);

                    return itemData;
                }
                else
                {
                    string error = "";

                    foreach (ErrorType err in response.Errors)
                        error += err.LongMessage;

                    throw new Exception(error);
                }

            }
            catch (Exception ex)
            {
                if (nbRetry < ServiceParametersHelper.nbAPIRetry())
                    this.GetItemDetails(itemID, nbRetry + 1, returnJustPrice);
                else
                {
                    Logger.CreateLog("Error__GetItemDetails", itemID.ToString(), ex, EnumLogLevel.ERROR);
                    throw ex;
                }
            }

            throw new Exception("Unknow error when loading the item.");
        }