static void Main(string[] args) { Console.WriteLine("Affichage du message de reservation de sejour...\n"); string[] nodeContent = Affichage_M1(); Console.WriteLine("nom client: " + nodeContent[0] + "\nAdresse: " + nodeContent[1] + "\nDate: " + nodeContent[2] + "\nSéjour: " + nodeContent[3] + "\n"); Console.WriteLine("\nAppuyez sur une touche pour passer à la suite...\n"); Console.ReadKey(); Console.WriteLine("Recherche du client dans la base de donnee...\n"); string[] info_client = E2(nodeContent); Console.WriteLine("Verification d'une voiture disponible dans le parking du " + info_client[3] + " arrondissement...\n"); string[] info = E3(info_client); Console.WriteLine("\nAppuyez sur une touche pour passer à la suite...\n"); Console.ReadKey(); DeserialiserFileJsonToObject(); Console.WriteLine("Recherche d'un appartement disponible dans le 16ème arrondissement avce 1 chambre d'evaluation minimum de 4.5...\n"); Logement loge = E5(DeserialiserFileJsonToObject()); SerialiserObjectToFileJson(loge); Console.WriteLine("Appartement trouve.\nAffichage de l'appartement selectionne..\n"); AfficherPrettyJson("reponse RBNP.json"); Console.WriteLine("\n"); Reservation_Sejour(info, loge); E6_Emission_M2(loge, info); string[] nodeContent2 = { "", "", "", "", "", "", "", "", "", "" }; nodeContent2 = Affichage_M2(); Console.WriteLine("theme: " + nodeContent2[0] + "\nDate: " + nodeContent2[1] + "\nInformation: " + nodeContent2[2] + "\nClient :\n Nom :" + nodeContent2[3] + "\n" + " Num_Client :" + nodeContent2[4] + "\nLocation Voiture :\n Nom parking : " + nodeContent2[5] + "\n Numero place : " + nodeContent2[6] + "\n" + " Immatriculation : " + nodeContent2[7] + "\nAppartement :\n Numero Appartement : " + nodeContent2[8] + "\n Identifiant chambre : " + nodeContent2[9] + "\n"); Console.WriteLine("\nAppuyez sur une touche pour passer à la suite...\n"); Console.ReadKey(); Console.WriteLine("En attente du message de confirmation du client...\n"); Analyse_M3(info, loge); Console.WriteLine("\nAppuyez sur une touche pour passer a la suite...\n"); Console.ReadKey(); CheckOut(info, loge); Console.WriteLine("\nAppuyez sur une touche pour passer a la suite...\n"); Console.ReadKey(); Historique_Client(info); Console.WriteLine("\nAppuyez sur une touche pour passer a la suite...\n"); Console.ReadKey(); Historique_Maintenance(info); Console.WriteLine("\nAppuyez sur une touche pour passer a la suite...\n"); Console.ReadKey(); Console.WriteLine("Affichage de la rentabilite du vehicule...\n"); Rentabilite_Voiture(info); Console.WriteLine("\nDemo terminee, appuyez sur une touche pour quitter."); Console.ReadKey(); }
static void Analyse_M3(string[] info_client, Logement l) { string nomDuDocXML = "M3.xml"; //créer l'arborescence des chemins XPath du document //-------------------------------------------------- XPathDocument doc = new System.Xml.XPath.XPathDocument(nomDuDocXML); XPathNavigator nav = doc.CreateNavigator(); //créer une requete XPath //----------------------- string maRequeteXPath = "/Validation_sejour/*"; XPathExpression expr = nav.Compile(maRequeteXPath); //exécution de la requete //----------------------- XPathNodeIterator nodes = nav.Select(expr);// exécution de la requête XPath //parcourir le resultat //--------------------- string[] nodeContent = { "", "" }; while (nodes.MoveNext()) { nodeContent[0] = nodes.Current.ToString(); //ID sejour nodes.MoveNext(); nodeContent[1] = nodes.Current.ToString(); //information sejour valide break; } Console.WriteLine("Affichage du message de validation du client...\n"); Console.WriteLine("ID sejour : " + nodeContent[0] + "\nInformation : " + nodeContent[1] + "\n\n"); if (nodeContent[1] == "sejour valide") { //string connectionString = "SERVER=localhost; PORT =3306;DATABASE=BOS_MAXI;UID=root;PASSWORD=Maximedu33360;"; string connectionString = "SERVER=fboisson.ddns.net; PORT =3306;DATABASE=BOS_MAXI;UID=S6-BOS-MAXI;PASSWORD=12066;"; MySqlConnection connection = new MySqlConnection(connectionString); connection.Open(); MySqlCommand command = connection.CreateCommand(); command.CommandText = "UPDATE sejour SET validation_sejour=@info WHERE num_sejour=@num;"; //actualise le sejour a sejour valide command.Parameters.AddWithValue("@info", nodeContent[1]); command.Parameters.AddWithValue("@num", nodeContent[0]); MySqlDataReader reader; reader = command.ExecuteReader(); connection.Close(); connection.Open(); MySqlCommand command1 = connection.CreateCommand(); command1.CommandText = "SELECT immat FROM sejour WHERE num_sejour=@num;"; //selectionne immatriculation command1.Parameters.AddWithValue("@num", nodeContent[0]); MySqlDataReader reader1; reader1 = command1.ExecuteReader(); reader1.Read(); string immat = ""; immat = reader1.GetString("immat"); connection.Close(); connection.Open(); MySqlCommand command2 = connection.CreateCommand(); command2.CommandText = "UPDATE voiture SET disponibilite='en location' WHERE immat=@immatriculation;"; //actualise le statut du vehicule command2.Parameters.AddWithValue("@immatriculation", immat); MySqlDataReader reader2; reader2 = command2.ExecuteReader(); connection.Close(); Console.WriteLine("Enregistrement du sejour...\n"); Console.WriteLine("num_sejour : A3\nID_client : " + info_client[4] + "\n" + "theme : " + info_client[3] + "\ndate : " + info_client[2] + "\nvalidation_sejour : sejour valide\nimmat " + info_client[5] + "\nprix du sejour " + l.Price + "\nnum_reservation " + l.Room_id + "\n"); } else { Console.WriteLine("Annulation du sejour..."); } }
static void CheckOut(string[] info_client, Logement l) { //string connectionString = "SERVER=localhost; PORT =3306;DATABASE=BOS_MAXI;UID=root;PASSWORD=Maximedu33360;"; string connectionString = "SERVER=fboisson.ddns.net; PORT =3306;DATABASE=BOS_MAXI;UID=S6-BOS-MAXI;PASSWORD=12066;"; //Le client laisse la voiture a la place ou il l'a trouve MySqlConnection connection = new MySqlConnection(connectionString); Console.WriteLine("Fin du sejour, le client emet une note et un avis :\nAffichage du sejour :\nnum_sejour : A3\nID_client : " + info_client[4] + "\n" + "theme : " + info_client[3] + "\ndate : " + info_client[2] + "\nvalidation_sejour : sejour valide\nimmat " + info_client[5] + "\nprix du sejour " + l.Price + "\nnum_reservation " + l.Room_id + "\nnote : 5\ncommentaire ; Sejour tres agreable. Recommande vivement !\n"); //choix arbitraire de la note et du commentaire connection.Open(); MySqlCommand command3 = connection.CreateCommand(); command3.CommandText = "SELECT nom_controleur FROM voiture WHERE immat=@immat;"; //la voiture part en maintenance donc est attribuee au parking 0 command3.Parameters.AddWithValue("@immat", info_client[5]); MySqlDataReader reader3; reader3 = command3.ExecuteReader(); reader3.Read(); string nom_controleur = reader3.GetString("nom_controleur"); connection.Close(); Console.WriteLine("Le client rends la voiture qui va etre controlee par le controleur " + nom_controleur + ".\n"); connection.Open(); MySqlCommand command = connection.CreateCommand(); command.CommandText = "UPDATE voiture SET arrondissement='0', num_place='0', disponibilite='en maintenance' WHERE immat=@immat;"; //la voiture part en maintenance donc est attribuee au parking 0 command.Parameters.AddWithValue("@immat", info_client[5]); MySqlDataReader reader; reader = command.ExecuteReader(); connection.Close(); Console.WriteLine("Apres controle, il s'avere que la voiture a besoin d'un nettoyage, description de la maintenance :\n"); connection.Open(); MySqlCommand command1 = connection.CreateCommand(); command1.CommandText = "INSERT INTO `BOS_MAXI`.`maintenance` (`codeM`, `type`, `date`, `immat`) VALUES('1', 'nettoyage', 'semaine 15', @immat2);"; //maintenance de la voiture, nettoyage command1.Parameters.AddWithValue("@immat2", info_client[5]); MySqlDataReader reader1; reader1 = command1.ExecuteReader(); Console.WriteLine("codeM : 1\ntype : nettoyage\ndate: semaine 15\nimmatriculation : " + info_client[5] + ".\n"); connection.Close(); Console.WriteLine("Le nettoyage de la voiture a bien ete effectue. La voiture est de nouveau disponible dans le parking du " + info_client[3] + " arrondissement a la place " + info_client[7] + ".\n"); connection.Open(); MySqlCommand command2 = connection.CreateCommand(); command2.CommandText = "UPDATE voiture SET disponibilite='disponible', num_place=@num_place, arrondissement=@arrond WHERE immat=@immat2;"; //la voiture est deplacee dans le parking ou le client l'a laisse command2.Parameters.AddWithValue("@immat2", info_client[5]); command2.Parameters.AddWithValue("@arrond", info_client[3]); command2.Parameters.AddWithValue("@num_place", info_client[7]); MySqlDataReader reader2; reader2 = command2.ExecuteReader(); connection.Close(); }
static void E6_Emission_M2(Logement l, string[] info_client) { XmlDocument docXml = new XmlDocument(); // création de l'en-tête XML (no <=> pas de DTD associée) docXml.CreateXmlDeclaration("1.0", "UTF-8", "no"); XmlElement racine = docXml.CreateElement("Sejour"); docXml.AppendChild(racine); XmlElement Theme = docXml.CreateElement("Theme"); Theme.InnerText = info_client[3]; racine.AppendChild(Theme); XmlElement Date = docXml.CreateElement("Date"); Date.InnerText = info_client[2]; racine.AppendChild(Date); XmlElement Info = docXml.CreateElement("Information"); Info.InnerText = "sejour valide"; racine.AppendChild(Info); XmlElement Client = docXml.CreateElement("Client"); racine.AppendChild(Client); XmlElement Nom = docXml.CreateElement("Nom"); Nom.InnerText = info_client[0]; Client.AppendChild(Nom); XmlElement Numero_Client = docXml.CreateElement("Num_Client"); Numero_Client.InnerText = info_client[4]; Client.AppendChild(Numero_Client); XmlElement Location_voiture = docXml.CreateElement("Location_Voiture"); racine.AppendChild(Location_voiture); XmlElement Nom_Parking = docXml.CreateElement("Nom_Parking"); Nom_Parking.InnerText = info_client[6]; Location_voiture.AppendChild(Nom_Parking); XmlElement Num_Place = docXml.CreateElement("Numero_Place"); Num_Place.InnerText = info_client[7]; Location_voiture.AppendChild(Num_Place); XmlElement Immat = docXml.CreateElement("Immatriculation"); Immat.InnerText = info_client[5]; Location_voiture.AppendChild(Immat); XmlElement Location_appartement = docXml.CreateElement("Location_Appartement"); racine.AppendChild(Location_appartement); XmlElement Numero_Appart = docXml.CreateElement("Numero_Appartement"); Numero_Appart.InnerText = l.Host_id.ToString(); Location_appartement.AppendChild(Numero_Appart); XmlElement Identif_chambre = docXml.CreateElement("Identifiant_Chambre"); Identif_chambre.InnerText = l.Room_type; Location_appartement.AppendChild(Identif_chambre); // enregistrement du document XML ==> à retrouver dans le dossier bin\Debug de Visual Studio docXml.Save("M2.xml"); }