public async Task <StockItem> GetStockItemAsync(string productSku, Mark mark = null) { var webRequest = ( WebRequest )WebRequest.Create() .Method(MagentoWebRequestMethod.Get) .Path(MagentoServicePath.Create( MagentoServicePath.StockItemsPath + $"/{Uri.EscapeDataString( productSku )}")) .AuthToken(this.Token) .Url(this.Url); return(await ActionPolicies.RepeatOnChannelProblemAsync.Get(async() => { try { using (var v = await webRequest.RunAsync(mark).ConfigureAwait(false)) { return JsonConvert.DeserializeObject <StockItem>(new StreamReader(v, Encoding.UTF8).ReadToEnd()); } } catch (MagentoWebException exception) { if (exception.IsNotFoundException()) { return null; } throw; } })); }
public async Task <bool> PutStockItemAsync(string productSku, string itemId, RootObject stockItem, Mark mark = null) { var webRequest = ( WebRequest )WebRequest.Create() .Method(MagentoWebRequestMethod.Put) .Path(MagentoServicePath.Create( MagentoServicePath.ProductsPath + $"/{Uri.EscapeDataString( productSku )}/" + MagentoServicePath.StockItemsPath + $"/{itemId}")) .Body(JsonConvert.SerializeObject(stockItem, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore })) .AuthToken(this.Token) .Url(this.Url); return(await ActionPolicies.RepeatOnChannelProblemAsync.Get(async() => { try { using (var v = await webRequest.RunAsync(mark).ConfigureAwait(false)) { return JsonConvert.DeserializeObject <int>(new StreamReader(v, Encoding.UTF8).ReadToEnd()) == 1; } } catch (MagentoWebException exception) { if (exception.IsNotFoundException()) { return false; } throw; } })); }