// Création d'une nouvelle mission (Création nouveaux XML) public Mission(string nomMission, DateTime dateDebut, int dureeMission, List<string> nomsAstronautes, string path) { // Création de l'instance monNomMission = nomMission; maDateDebut = dateDebut; maDureeMission = dureeMission; monJourJ = 1; maListeCategories = new List<Categorie>(); // Création du dossier string emplacementXML = "" + path + nomMission; Directory.CreateDirectory(emplacementXML); monCheminPlanningXML = "" + emplacementXML + "/Planning.xml"; monCheminGeneralXML = "" + emplacementXML + "/General.xml"; // création des astronautes mesAstronautes = new List<Astronaute>(); _nbAstronautes = 0; foreach (string nom in nomsAstronautes) { mesAstronautes.Add(new Astronaute(nom)); monNbAstronautes++; } // Création du fichier XML Géréral XDocument _generalXML = new XDocument( new XElement("Mission", new XElement("NomMission", nomMission), new XElement("DateDebut", dateDebut), new XElement("Duree", maDureeMission), new XElement("General", monCheminGeneralXML), new XElement("Planning", monCheminPlanningXML), new XElement("Map"), new XElement("Home"), new XElement("NbAstronautes", monNbAstronautes), new XElement("Astronautes"))); _generalXML.Save(_cheminGeneralXML); // Ajout des astronautes dans le XML foreach (string nom in nomsAstronautes) { _generalXML.Element("Mission").Element("Astronautes").Add(new XElement("Astronaute", nom)); } // Création de la liste des activités (figure2 sujet) #region Activites _generalXML.Element("Mission").Add(new XElement("Activites", new XElement("Categorie", new XAttribute("id", "Living"), new XElement("Activite", "Eating"), new XElement("Activite", "Sleeping"), new XElement("Activite", "Entertrainment"), new XElement("Activite", "Private"), new XElement("Activite", "Health controle"), new XElement("Activite", "Medical act")), new XElement("Categorie", new XAttribute("id", "Science"), new XElement("Categorie", new XAttribute("id", "Exploration"), new XElement("Activite", "Space suit"), new XElement("Activite", "Vehicle")), new XElement("Activite", "Briefing"), new XElement("Activite", "Debriefing"), new XElement("Activite", "Inside Experiment"), new XElement("Activite", "Outside experiment")), new XElement("Categorie", new XAttribute("id", "Maintenance"), new XElement("Activite", "Cleaning"), new XElement("Activite", "LSS air system"), new XElement("Activite", "LSS water system"), new XElement("Activite", "LSS food system"), new XElement("Activite", "Power systems"), new XElement("Activite", "Space suit"), new XElement("Activite", "Other")), new XElement("Categorie", new XAttribute("id", "Communication"), new XElement("Activite", "Sending message"), new XElement("Activite", "Receiving message")), new XElement("Categorie", new XAttribute("id", "Repair"), new XElement("Activite", "LSS"), new XElement("Activite", "Power systems"), new XElement("Activite", "Communication systems"), new XElement("Activite", "Habitat"), new XElement("Activite", "Space suit"), new XElement("Activite", "Vehicle")), new XElement("Categorie", new XAttribute("id", "Other"), new XElement("Activite", "Emergency")))); _generalXML.Save(_cheminGeneralXML); // Les activités sont créés à la main Categorie Living = new Categorie("Living"); Living.ajoutSousCategorie(new Categorie("Eating")); Living.ajoutSousCategorie(new Categorie("Sleeping")); Living.ajoutSousCategorie(new Categorie("Entertrainment")); Living.ajoutSousCategorie(new Categorie("Private")); Living.ajoutSousCategorie(new Categorie("Health controle")); Living.ajoutSousCategorie(new Categorie("Medical act")); maListeCategories.Add(Living); Categorie Science = new Categorie("Science"); Categorie Exploration = new Categorie("Exploration"); Exploration.ajoutSousCategorie(new Categorie("Space suit")); Exploration.ajoutSousCategorie(new Categorie("Vehicle")); Science.ajoutSousCategorie(Exploration); Science.ajoutSousCategorie(new Categorie("Briefing")); Science.ajoutSousCategorie(new Categorie("Debriefing")); Science.ajoutSousCategorie(new Categorie("Inside Experiment")); Science.ajoutSousCategorie(new Categorie("Outside experiment")); maListeCategories.Add(Science); Categorie Maintenance = new Categorie("Maintenance"); Maintenance.ajoutSousCategorie(new Categorie("Cleaning")); Maintenance.ajoutSousCategorie(new Categorie("LSS air system")); Maintenance.ajoutSousCategorie(new Categorie("LSS water system")); Maintenance.ajoutSousCategorie(new Categorie("LSS food system")); Maintenance.ajoutSousCategorie(new Categorie("Power systems")); Maintenance.ajoutSousCategorie(new Categorie("Space")); Maintenance.ajoutSousCategorie(new Categorie("Other")); maListeCategories.Add(Maintenance); Categorie Communication = new Categorie("Communication"); Maintenance.ajoutSousCategorie(new Categorie("Sending message")); Maintenance.ajoutSousCategorie(new Categorie("Receiving message")); maListeCategories.Add(Communication); Categorie Repair = new Categorie("Repair"); Repair.ajoutSousCategorie(new Categorie("LSS")); Repair.ajoutSousCategorie(new Categorie("Power systems")); Repair.ajoutSousCategorie(new Categorie("Communication systems")); Repair.ajoutSousCategorie(new Categorie("Habitat")); Repair.ajoutSousCategorie(new Categorie("Space suit")); Repair.ajoutSousCategorie(new Categorie("Vehicle")); maListeCategories.Add(Repair); Categorie Other = new Categorie("Other"); Repair.ajoutSousCategorie(new Categorie("Emergency")); maListeCategories.Add(Other); #endregion // SI on a du temps, on les récupèrera et on les créera dans l'instance directement ici, // au lieu de faire le pavé au dessus // Création de la liste des activités par défaut d'une journée dans le XML #region DefaultDay _generalXML.Element("Mission").Add(new XElement("DefaultDay", new XElement("Timetable", new XElement("Activity", new XElement("HDebutAct", "00"), new XElement("MDebutAct", "00"), new XElement("HFinAct", "07"), new XElement("MFinAct", "00"), new XElement("Nom", "Sleeping"), new XElement("Description"), new XElement("ExtBool", "false"), new XElement("Lieu", new XElement("nomLieu","Habitat"), new XElement("posX","00"), new XElement("posY","00"))), new XElement("Activity", new XElement("HDebutAct", "07"), new XElement("MDebutAct", "00"), new XElement("HFinAct", "08"), new XElement("MFinAct", "00"), new XElement("HDebutAct", "00"), new XElement("MDebutAct", "00"), new XElement("HFinAct", "07"), new XElement("MFinAct", "00"), new XElement("Nom", "Eating"), new XElement("Description"), new XElement("ExtBool", "false"), new XElement("Lieu", new XElement("nomLieu", "Habitat"), new XElement("posX", "00"), new XElement("posY", "00"))), new XElement("Activity", new XElement("HDebutAct", "08"), new XElement("MDebutAct", "00"), new XElement("HFinAct", "12"), new XElement("MFinAct", "00"), new XElement("Nom", "Private"), new XElement("Description"), new XElement("ExtBool", "false"), new XElement("Lieu", new XElement("nomLieu","Habitat"), new XElement("posX","00"), new XElement("posY","00"))), new XElement("Activity", new XElement("HDebutAct", "12"), new XElement("MDebutAct", "00"), new XElement("HFinAct", "14"), new XElement("MFinAct", "00"), new XElement("Nom", "Eating"), new XElement("Description"), new XElement("ExtBool", "false"), new XElement("Lieu", new XElement("nomLieu","Habitat"), new XElement("posX","00"), new XElement("posY","00"))), new XElement("Activity", new XElement("HDebutAct", "14"), new XElement("MDebutAct", "00"), new XElement("HFinAct", "19"), new XElement("MFinAct", "00"), new XElement("Nom", "Private"), new XElement("Description"), new XElement("ExtBool", "false"), new XElement("Lieu", new XElement("nomLieu","Habitat"), new XElement("posX","00"), new XElement("posY","00"))), new XElement("Activity", new XElement("HDebutAct", "19"), new XElement("MDebutAct", "00"), new XElement("HFinAct", "21"), new XElement("MFinAct", "00"), new XElement("Nom", "Eating"), new XElement("Description"), new XElement("ExtBool", "false"), new XElement("Lieu", new XElement("nomLieu","Habitat"), new XElement("posX","00"), new XElement("posY","00"))), new XElement("Activity", new XElement("HDebutAct", "21"), new XElement("MDebutAct", "00"), new XElement("HFinAct", "23"), new XElement("MFinAct", "00"), new XElement("Nom", "Private"), new XElement("Description"), new XElement("ExtBool", "false"), new XElement("Lieu", new XElement("nomLieu","Habitat"), new XElement("posX","00"), new XElement("posY","00"))), new XElement("Activity", new XElement("HDebutAct", "23"), new XElement("MDebutAct", "00"), new XElement("HFinAct", "24"), new XElement("MFinAct", "40"), new XElement("Nom", "Sleeping"), new XElement("Description"), new XElement("ExtBool", "false"), new XElement("Lieu", new XElement("nomLieu","Habitat"), new XElement("posX","00"), new XElement("posY","00")))))); _generalXML.Save(_cheminGeneralXML); #endregion // Création du fichier XML Planning pour la mission (depuis la journée par défaut) this.creaPlanningXML(_generalXML); monPlanning = new Planning(this); }
// Création d'une Mission à partir d'un fichier XML public Mission(string cheminXMLGeneral) { // chargement du XML général XDocument _generalXML = XDocument.Load(cheminXMLGeneral); monNomMission = _generalXML.Element("Mission").Element("NomMission").Value; maDateDebut = DateTime.Parse(_generalXML.Element("Mission").Element("DateDebut").Value); maDureeMission = int.Parse(_generalXML.Element("Mission").Element("Duree").Value); //maDateFin = DateTime.Parse(_generalXML.Element("Mission").Element("DateFin").Value); monNbAstronautes = int.Parse(_generalXML.Element("Mission").Element("NbAstronautes").Value); mesAstronautes = new List<Astronaute>(); var astronautes = from astronaute in _generalXML.Descendants("Astronautes") select astronaute; foreach (XElement a in astronautes.Elements("Astronaute")) { string nomAstronaute = a.Value; mesAstronautes.Add(new Astronaute(nomAstronaute)); } maListeCategories = new List<Categorie>(); // Les activités sont créés à la main Categorie Living = new Categorie("Living"); Living.ajoutSousCategorie(new Categorie("Eating")); Living.ajoutSousCategorie(new Categorie("Sleeping")); Living.ajoutSousCategorie(new Categorie("Entertrainment")); Living.ajoutSousCategorie(new Categorie("Private")); Living.ajoutSousCategorie(new Categorie("Health controle")); Living.ajoutSousCategorie(new Categorie("Medical act")); maListeCategories.Add(Living); Categorie Science = new Categorie("Science"); Categorie Exploration = new Categorie("Exploration"); Exploration.ajoutSousCategorie(new Categorie("Space suit")); Exploration.ajoutSousCategorie(new Categorie("Vehicle")); Science.ajoutSousCategorie(Exploration); Science.ajoutSousCategorie(new Categorie("Briefing")); Science.ajoutSousCategorie(new Categorie("Debriefing")); Science.ajoutSousCategorie(new Categorie("Inside Experiment")); Science.ajoutSousCategorie(new Categorie("Outside experiment")); maListeCategories.Add(Science); Categorie Maintenance = new Categorie("Maintenance"); Maintenance.ajoutSousCategorie(new Categorie("Cleaning")); Maintenance.ajoutSousCategorie(new Categorie("LSS air system")); Maintenance.ajoutSousCategorie(new Categorie("LSS water system")); Maintenance.ajoutSousCategorie(new Categorie("LSS food system")); Maintenance.ajoutSousCategorie(new Categorie("Power systems")); Maintenance.ajoutSousCategorie(new Categorie("Space")); Maintenance.ajoutSousCategorie(new Categorie("Other")); maListeCategories.Add(Maintenance); Categorie Communication = new Categorie("Communication"); Maintenance.ajoutSousCategorie(new Categorie("Sending message")); Maintenance.ajoutSousCategorie(new Categorie("Receiving message")); maListeCategories.Add(Communication); Categorie Repair = new Categorie("Repair"); Repair.ajoutSousCategorie(new Categorie("LSS")); Repair.ajoutSousCategorie(new Categorie("Power systems")); Repair.ajoutSousCategorie(new Categorie("Communication systems")); Repair.ajoutSousCategorie(new Categorie("Habitat")); Repair.ajoutSousCategorie(new Categorie("Space suit")); Repair.ajoutSousCategorie(new Categorie("Vehicle")); maListeCategories.Add(Repair); Categorie Other = new Categorie("Other"); Repair.ajoutSousCategorie(new Categorie("Emergency")); maListeCategories.Add(Other); // MAJ du jour J _jourJ = calculJourJ(); // Récupération du chemin et du nom du fichier XML du Planning monCheminGeneralXML = _generalXML.Element("Mission").Element("General").Value; monCheminPlanningXML = _generalXML.Element("Mission").Element("Planning").Value; // Génération du planning associé à la mission monPlanning = new Planning(this); }