Statistiques
| Branche: | Révision:

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

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

1

    
2
using System.Collections.ObjectModel;
3

    
4
namespace GES_PAC.Model
5
{
6
    public class Serie
7
    {
8
        #region Propriétés
9
        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
        public List<SerieAnimal> SeriesAnimales { get; set; } = [];
16
        #endregion
17

    
18
        #region Constructeurs
19
        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
        #endregion
29

    
30
        #region Méthodes
31
        public void AddSerieAnimal(SerieAnimal serieAnimal)
32
        {
33
            var existing = SeriesAnimales.FirstOrDefault(s => s.NumeroBoite == serieAnimal.NumeroBoite);
34
            if (existing != null)
35
                SeriesAnimales.Remove(existing);
36
            SeriesAnimales.Add(serieAnimal);
37
        }
38

    
39
        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
        {
57
            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
        }
65

    
66
        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
        internal void AddMeasure(Mesure newMeasure, int numBoite)
75
        {
76
            SeriesAnimales.Select(sa => sa).Where(sa => sa.NumeroBoite == numBoite).First().AddMeasure(newMeasure);
77
        }
78

    
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
        #endregion
87
    }
88
}