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