Пример #1
0
        private async Task <CreateInventoryItemResponse> CreateEbayInventoryItem(EbayInventoryItem item)
        {
            var sku  = Guid.NewGuid().ToString("N").ToUpper();
            var uri  = $"{EbayBaseURL}inventory_item/{sku}";
            var auth = await authorizationManager.GetTokenByCompanyId(0);

            var client = new HttpClient();

            client.DefaultRequestHeaders.Add("Authorization", "Bearer " + auth.Token);
            var payload = JsonConvert.SerializeObject(item);
            var content = new StringContent(payload, Encoding.UTF8, "application/json");

            content.Headers.Add("Content-Language", "en-US");

            var httpResponseMessage = client.PutAsync(uri, content).Result;

            if (httpResponseMessage.IsSuccessStatusCode)
            {
                return(new CreateInventoryItemResponse
                {
                    IsSuccess = true,
                    Sku = sku
                });
            }
            else
            {
                return(new CreateInventoryItemResponse
                {
                    IsSuccess = false,
                    ErrorMessage = await httpResponseMessage.Content.ReadAsStringAsync()
                });
            }
        }
Пример #2
0
        public async Task <string> PostListingAsync([FromBody] PostListingRequest request)
        {
            try
            {
                var myitem = new EbayInventoryItem
                {
                    condition    = request.inventoryItem.condition,
                    product      = request.inventoryItem.product,
                    availability = request.inventoryItem.availability
                };
                var createInventoryItemResponse = CreateEbayInventoryItem(myitem).Result;
                if ((bool)createInventoryItemResponse.IsSuccess)
                {
                    var sku   = createInventoryItemResponse.Sku;
                    var offer = new Offer(request.paymentPolicyId, request.fulfillmentPolicyId, request.returnPolicyId, request.merchantLocationKey, request.price, sku);
                    offer.categoryId = request.categoryId;
                    var offerId = CreateOffer(offer).Result.offerId;
                    var publishOfferResponse = await PublishOffer(offerId);

                    return(publishOfferResponse.ListingId);
                }
                throw new Exception("Problem generating inventory item: " + createInventoryItemResponse.ErrorMessage);
            }
            catch (Exception ex)
            {
                Response.StatusCode = 400;
                telemetryClient.TrackException(ex);
                //return new PostListingResponse
                //{
                //    IsSuccess = false,
                //    ErrorMessage = ex.Message
                //};
                return(ex.Message);
            }
        }