public static async Task <List <Produit> > GetProduits(Int32?_CategorieId = null) { var _Client = new HttpClient(); _Client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json; charset=utf-8"); ProduitsSearchParameters _Parameters = new ProduitsSearchParameters(); _Parameters.CategorieId = _CategorieId; _Parameters.Top = 0; HttpContent _JsonRequestContent = new StringContent(_Parameters.ToSerializedJson(), Encoding.UTF8, "application/json"); HttpRequestMessage _Request = new HttpRequestMessage { RequestUri = new Uri(Constants.WS_URL + "/Produits/GetProduits"), Method = HttpMethod.Post, Headers = { { "APIKey", Constants.WS_PASSKEY } }, Content = _JsonRequestContent }; HttpResponseMessage _Response = _Client.SendAsync(_Request).Result; String _JsonResponseContent = await _Response.Content.ReadAsStringAsync(); List <Produit> _Produits = JsonConvert.DeserializeObject <List <Produit> >(_JsonResponseContent); return(_Produits); }
public static async Task <Ligne> AddLigneToCommandeEnCours(Int32 _Id, Int32 _Quantite, Int32 _QuantiteDejaMiseAuPanier) { //vérification de la dispo et récupération des informations sur le produit pour créer la ligne de commande var _Client = new HttpClient(); _Client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json; charset=utf-8"); ProduitsSearchParameters _Parameters = new ProduitsSearchParameters(); _Parameters.Id = _Id; HttpContent _JsonRequestContent = new StringContent(_Parameters.ToSerializedJson(), Encoding.UTF8, "application/json"); HttpRequestMessage _Request = new HttpRequestMessage { RequestUri = new Uri(Constants.WS_URL + "/Produits/GetProduits"), Method = HttpMethod.Post, Headers = { { "APIKey", Constants.WS_PASSKEY } }, Content = _JsonRequestContent }; HttpResponseMessage _Response = _Client.SendAsync(_Request).Result; String _JsonResponseContent = await _Response.Content.ReadAsStringAsync(); List <Produit> _Produits = JsonConvert.DeserializeObject <List <Produit> >(_JsonResponseContent); Produit _NewProduit = null; if ((_Produits != null) && (_Produits.Count == 1)) { _NewProduit = _Produits[0]; if (_Quantite + _QuantiteDejaMiseAuPanier <= _NewProduit.Stock) { Ligne _NewLigne = new Ligne(); _NewLigne.Produit = _NewProduit; _NewLigne.Quantite = _Quantite; _NewLigne.Prix = _NewProduit.Prix * _Quantite; return(_NewLigne); } else if (_Quantite + _QuantiteDejaMiseAuPanier > _NewProduit.Stock) { Int32 _NewQuantite = Int32.Parse(_NewProduit.Stock.ToString()) - Int32.Parse(_QuantiteDejaMiseAuPanier.ToString()); if (_NewQuantite > 0) { Ligne _NewLigne = new Ligne(); _NewLigne.Produit = _NewProduit; _NewLigne.Quantite = _NewQuantite; _NewLigne.Prix = _NewProduit.Prix * _NewQuantite; return(_NewLigne); } } } return(null); }