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);
        }
 public IHttpActionResult GetProduits(ProduitsSearchParameters _Parameters)
 {
     return(Ok(ProduitsManager.GetProduits(
                   _Id: _Parameters.Id,
                   _Libelle: _Parameters.Libelle,
                   _Reference: _Parameters.Reference,
                   _StockMin: _Parameters.StockMin,
                   _StockMax: _Parameters.StockMax,
                   _CommandeId: _Parameters.CommandeId,
                   _CategorieId: _Parameters.CategorieId,
                   _Top: _Parameters.Top
                   )));
 }