Exemple #1
0
        // 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);
        }
Exemple #2
0
        // 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);
        }