public async Task <ActionResult <VenteItem> > PostVenteItem(VenteItem venteItem) { reponse = ""; Task <IConnection> connection = ConnexionSingleton.Connexion("localhost", "guest", "guest", new ConnectionFactory()); RabbitMQContext rabbitMQContext = new RabbitMQContext(connection.Result.CreateModel()); string message = JsonConvert.SerializeObject(venteItem); rabbitMQContext.OnRecupererReponse += TraiterReponse; rabbitMQContext.PublierMessage(message); while (reponse == "") { } if (reponse == "Valide") { _context.ProduitItems.Add(venteItem); await _context.SaveChangesAsync(); return(CreatedAtAction("GetVenteItem", new { id = venteItem.Id }, venteItem)); } else { return(null); } }
private void TraiterReq(object sender, MessageBodyEvent e) { VenteItem vente = JsonConvert.DeserializeObject <VenteItem>(e.Message); string res = Traitement.GérerStock(vente).Result; rabbitMQContext.publierReponse(e, res); }
public static async Task <string> GérerStock(VenteItem vente) { MySqlConnection Connexion = await ConnexionSingletonBD.Connexion("localhost", "produitbase", "root", ""); //cnx sing bd string query = "UPDATE `produit` SET `Stock`= Stock -" + vente.Quantite + " WHERE id =" + vente.IdProduit + " && Stock >=" + vente.Quantite; string reponse = ""; //Create a list to store the result ProduitItem produit = new ProduitItem(); //Open connection if (await AccesBD.OpenConnection(Connexion) == true) { //Create Command MySqlCommand cmd = new MySqlCommand(query, Connexion); //Create a data reader and Execute the command try { cmd.ExecuteNonQuery(); } catch (SqlException ex) { Debug.WriteLine("\n\n" + ex.Message + "\n\n"); reponse = "sql Exception : " + ex.Message; } //Read the data and store them in the list reponse = "Valide"; //close Connection await AccesBD.CloseConnection(Connexion); //return list to be displayed } else { Debug.WriteLine("\n\n probleme con"); reponse = "Probleme cnx"; } Debug.WriteLine(" \n\n fin traitement \n\n"); return(reponse); }