Statistiques
| Branche: | Révision:

root / GES_PAC / Model / Serie.cs @ 9fd69a0e

Historique | Voir | Annoter | Télécharger (2,937 ko)

1 65ad7e66 Lucas Bihannic
2 9fd69a0e lbihannic
using System.Collections.ObjectModel;
3
4 65ad7e66 Lucas Bihannic
namespace GES_PAC.Model
5
{
6
    public class Serie
7
    {
8 ba296a27 lbihannic
        #region Propriétés
9 65ad7e66 Lucas Bihannic
        public long Id { get; set; }
10
        public DateTime Time { get; set; }
11
        public DateTime MiseAJeun { get; set; }
12
        public double Temperature { get; set; }
13
        public double Humidite { get; set; }
14
        public double Pression { get; set; }
15 1019554c lbihannic
        public List<SerieAnimal> SeriesAnimales { get; set; } = [];
16 ba296a27 lbihannic
        #endregion
17 09d4a0de lbihannic
18 ba296a27 lbihannic
        #region Constructeurs
19 09d4a0de lbihannic
        public Serie(DateTime Time, DateTime MiseAJeun, double Temperature, double Humidite, double Pression)
20
        {
21
            this.Time = Time;
22
            this.MiseAJeun = MiseAJeun;
23
            this.Temperature = Temperature;
24
            this.Humidite = Humidite;
25
            this.Pression = Pression;
26
            SeriesAnimales = [];
27
        }
28 ba296a27 lbihannic
        #endregion
29
30
        #region Méthodes
31
        public void AddSerieAnimal(SerieAnimal serieAnimal)
32
        {
33 1019554c lbihannic
            var existing = SeriesAnimales.FirstOrDefault(s => s.NumeroBoite == serieAnimal.NumeroBoite);
34
            if (existing != null)
35
                SeriesAnimales.Remove(existing);
36 ba296a27 lbihannic
            SeriesAnimales.Add(serieAnimal);
37
        }
38 fff89fc5 lbihannic
39 9fd69a0e lbihannic
        public int GetMeasureNumberByNumeroBoite(int nb)
40
        {
41
            var sa = SeriesAnimales.FirstOrDefault(sa => sa.NumeroBoite == nb);
42
            if (sa == null)
43
                return 0;
44
            return sa.GetMeasureCount();
45
        }
46
47
        public bool GetHasBehaviourByNumeroBoite(int nb)
48
        {
49
            var sa = SeriesAnimales.FirstOrDefault(sa => sa.NumeroBoite == nb);
50
            if (sa == null)
51
                return false;
52
            return sa.HasBehaviour();
53
        }
54
55
        public ObservableCollection<bool> GetIsOutDatas()
56 fff89fc5 lbihannic
        {
57 9fd69a0e lbihannic
            var isOutDatas = new ObservableCollection<bool>();
58
            for (int i = 1; i <= 12; i++)
59
            {
60
                var serieAnimal = SeriesAnimales.FirstOrDefault(sa => sa.NumeroBoite == i);
61
                isOutDatas.Add(!serieAnimal?.IsOut ?? true);
62
            }
63
            return isOutDatas;
64 fff89fc5 lbihannic
        }
65
66 1019554c lbihannic
        public Mesure? GetLastMeasureByNumeroBoite(int numeroBoite)
67
        {
68
            var serieAnimal = SeriesAnimales.FirstOrDefault(sa => sa.NumeroBoite == numeroBoite);
69
            if (serieAnimal == null || !serieAnimal.Mesures.Any())
70
                return null;
71
            return serieAnimal.GetLastMeasure();
72
        }
73
74 fff89fc5 lbihannic
        internal void AddMeasure(Mesure newMeasure, int numBoite)
75
        {
76
            SeriesAnimales.Select(sa => sa).Where(sa => sa.NumeroBoite == numBoite).First().AddMeasure(newMeasure);
77
        }
78 9fd69a0e lbihannic
79
        internal void AddBehaviour(Comportement newBehaviour, int numBoite, bool isAnimalOut)
80
        {
81
            var sa = SeriesAnimales.Select(sa => sa).Where(sa => sa.NumeroBoite == numBoite).First();
82
            sa.AddBehaviour(newBehaviour);
83
            if (isAnimalOut)
84
                sa.IsOut = true;
85
        }
86 ba296a27 lbihannic
        #endregion
87 65ad7e66 Lucas Bihannic
    }
88
}