public void ToStringTest()
 {
     int NumberDay = 0; // TODO: initialisez à une valeur appropriée
     Day target = new Day(NumberDay); // TODO: initialisez à une valeur appropriée
     string expected = "Day : 0"; // TODO: initialisez à une valeur appropriée
     string actual;
     actual = target.ToString();
     Assert.AreEqual(expected, actual);
 }
 /// <summary>
 /// Constructeur de la classe Planning
 /// </summary>
 public Planning()
 {
     Calendar = new List<Day>();
     for (int i = 0; i < 500; i++)
     {
         Day day = new Day(i + 1);
         Calendar.Add(day);
     }
 }
 public void FormatHourTest1()
 {
     Day daySelected = new Day(0); ; // TODO: initialisez à une valeur appropriée
     DayReport target = new DayReport(daySelected); // TODO: initialisez à une valeur appropriée
     int Time = 90; // TODO: initialisez à une valeur appropriée
     string expected = "1H30"; // TODO: initialisez à une valeur appropriée
     string actual;
     actual = target.FormatHour(Time);
     Assert.AreEqual(expected, actual);
 }
 public void MartianTimeTest()
 {
     Day daySelected = new Day(1); // TODO: initialisez à une valeur appropriée
     DayReport target = new DayReport(daySelected); // TODO: initialisez à une valeur appropriée
     double SecondsBegin = 3600; // TODO: initialisez à une valeur appropriée
     string expected = "24:01:01"; // TODO: initialisez à une valeur appropriée
     string actual;
     actual = target.MartianTime(SecondsBegin);
     Assert.AreEqual(expected, actual);
     Assert.Inconclusive("Vérifiez l\'exactitude de cette méthode de test.");
 }
        public void TaskInfoTest()
        {
            int NumberDay = 0; // TODO: initialisez à une valeur appropriée
            Day target = new Day(NumberDay); // TODO: initialisez à une valeur appropriée
            List<Astronaut> a = new List<Astronaut>();
            Activity act = new Activity("Test");
            Task task = new Task(act,a,50,50,10,10); // TODO: initialisez à une valeur appropriée

            string[] expected = { "", target.ToString(), "0H50", "1H40", task.Name }; // TODO: initialisez à une valeur appropriée
            string[] actual;
            actual = target.TaskInfo(task);
            CollectionAssert.AreEqual(expected, actual);
        }
        /// <summary>
        /// Constructeur de la classe TaskForm
        /// </summary>
        /// <param name="astro">Les Astronautes de la missions</param>
        /// <param name="categ">Les catégories d'activités</param>
        /// <param name="form">Le type d'action (ajout ou édition)</param>
        /// <param name="day">Le jour ou est rajouté la tâche</param>
        /// <param name="MapString">Le chemin vers l'image de la carte</param>
        /// <param name="xOrigin">La position en X de la base</param>
        /// <param name="yOrigin">La position en Y de la base</param>
        public TaskForm(List<Astronaut> astro, List<Category> categ, string form, Day day, string MapString, int xOrigin, int yOrigin)
        {
            InitializeComponent();
            Astronauts = astro;
            Categories = categ;
            this.ActualDay = day;
            this.MapString = MapString;
            this.MapImage = Image.FromFile(this.MapString);
            Image img = Image.FromFile(MapString);
            imageCross = Astronauts_Activities.Properties.Resources.crossImage;
            this.graMap = MapPic.CreateGraphics();
            this.xMap = xOrigin;
            this.yMap = yOrigin;
            MapPic.Invalidate();

            //Initialisation astronautes
            foreach (Astronaut A in Astronauts)
            {
                AstronautView.Items.Add(A.Name);
            }

            foreach (Category c in Categories)
            {
                TreeNode n = ActivityView.Nodes.Add(c.Name);

                foreach (Activity Act in c.Activities)
                {
                    TreeNode NiveauSup = n.Nodes.Add(Act.Name);
                    if(Act.Activities != null)
                    {
                        foreach (Activity Act2 in Act.Activities)
                        {
                            NiveauSup.Nodes.Add(Act2.Name);
                        }
                    }
                }

            }

            //Initialisation bouton fin
            TypeForm = form;
            if (TypeForm == "adding")
            {
                buttonAddActivity.Text = "Add Task";
            }
            else if (TypeForm == "editing")
            {
                    buttonAddActivity.Text = "Edit Task";
            }
        }
 //Méthodes
 /// <summary>
 /// Constructeur de la classe DayReport
 /// </summary>
 /// <param name="daySelected">Le jour sélectionné pour écrire le rapport</param>
 public DayReport(Day daySelected)
 {
     InitializeComponent();
     Today = daySelected;
     Report = daySelected.Report;
     if (Report == null)
     {
         Report = Today.ToString() + ".";
         for (int i = 0; i < Today.Tasks.Count(); i++)
         {
             Report = Report + "\n\n   Activity " + (i + 1) + ": " + Today.Tasks[i].Name + ". It will start at " + FormatHour(Today.Tasks[i].StartHour) + "\nIt concerns " + Today.Tasks[i].Astronauts.Count() + " astronauts.";
         }
     }
     else
     {
     }
     richTextBoxReport.Text = Report;
 }
        /// <summary>
        /// Va lire un fichier Xml contenant un planning de mission enregistré
        /// </summary>
        /// <param name="Path">Le chemin vers le fichier Xml</param>
        private void LoadMission(string Path)
        {
            XmlDocument file = new XmlDocument();
            this.PlanningMission = new Planning();
            PlanningMission.Calendar.Clear();

            try
            {
                file.Load(Path);

                XmlNode root = file.DocumentElement;

                XmlNode Start = root.SelectSingleNode("StartMission");
                XmlNode Year = Start.SelectSingleNode("Year");
                XmlNode Month = Start.SelectSingleNode("Month");
                XmlNode Day = Start.SelectSingleNode("Day");

                this.StartMission = new DateTime(int.Parse(Year.InnerText), int.Parse(Month.InnerText), int.Parse(Day.InnerText));

                XmlNodeList Days = root.SelectNodes("Day");

                foreach (XmlNode d in Days)
                {
                    XmlNode Number = d.SelectSingleNode("Number");
                    XmlNode ReportDay = d.SelectSingleNode("Report");
                    String Report = ReportDay.InnerText;

                    Day newDay = new Day(int.Parse(Number.InnerText),Report);

                    XmlNodeList Tasks = d.SelectNodes("Task");

                    foreach (XmlNode n in Tasks)
                    {
                        XmlNode LoadActivity = n.SelectSingleNode("TaskName");
                        String ActivityName = LoadActivity.InnerText;
                        Activity newActivity = null;

                        XmlNode StartHourLoad = n.SelectSingleNode("StartHour");
                        int StartHour = int.Parse(StartHourLoad.InnerText);

                        XmlNode DurationLoad = n.SelectSingleNode("Duration");
                        int Duration = int.Parse(DurationLoad.InnerText);

                        XmlNode PositionXLoad = n.SelectSingleNode("PositionX");
                        int PositionX = int.Parse(PositionXLoad.InnerText);

                        XmlNode PositionYLoad = n.SelectSingleNode("PositionY");
                        int PositionY = int.Parse(PositionYLoad.InnerText);

                        foreach (Activity c in this.Categories)
                        {
                            if(newActivity == null)
                                newActivity = c.Activities.Find(x => x.Name == ActivityName);

                        }

                        XmlNode AstronautsXml = n.SelectSingleNode("Astronauts");
                        XmlNodeList AstronautsListXml = AstronautsXml.SelectNodes("Astronaut");

                        List<Astronaut> newAstronaut = new List<Astronaut>();
                        foreach (XmlNode astro in AstronautsListXml)
                        {
                            Astronaut a = this.Astronauts.Find(x => x.Name == astro.InnerText);
                            if(a != null)
                            {
                                newAstronaut.Add(a);
                            }
                        }

                        XmlNode DescriptionTask = n.SelectSingleNode("Description");
                        String Description = DescriptionTask.InnerText;

                        if(newActivity == null)
                        {
                            MessageBox.Show("No Activity Found");
                        }

                        Task newTask = new Task(newActivity, newAstronaut, Duration, StartHour, Description, PositionX, PositionY);
                        newDay.AddTask(newTask);
                    }
                    PlanningMission.Calendar.Add(newDay);
                }

                foreach (Astronaut a in Astronauts)
                {
                    AstronautList.Items.Add(a.Name);
                    AstronautList.SelectedIndex = 0;
                }
                CurrentDay = MajTime();
                foreach (Day day in PlanningMission.Calendar)
                {
                    TreeNode MyNode;
                    if (day.NumberDay < CurrentDay)
                    {
                        MyNode = listCalendar.Nodes.Add(day.ToString());

                        MyNode.BackColor = Color.LightGray;
                    }
                    else if (day.NumberDay == CurrentDay)
                    {
                        MyNode = listCalendar.Nodes.Add(day.ToString());

                        MyNode.BackColor = Color.Green;
                    }
                    else
                    {
                        MyNode = listCalendar.Nodes.Add(day.ToString());

                        MyNode.BackColor = Color.LightBlue;
                    }

                }
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
            listCalendar.SelectedNode = listCalendar.Nodes[CurrentDay-1];
        }