root / GES_PAC / Model / Serie.cs @ 4e39035b
Historique | Voir | Annoter | Télécharger (3,311 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 | 12ddf7ef | lbihannic | public bool GetIsInByNumeroBoite(int numeroBoite) |
55 | fff89fc5 | lbihannic | { |
56 | 12ddf7ef | lbihannic | var serieAnimal = SeriesAnimales.FirstOrDefault(sa => sa.NumeroBoite == numeroBoite); |
57 | if (serieAnimal == null || !serieAnimal.Mesures.Any()) |
||
58 | return true; |
||
59 | return !serieAnimal?.IsOut ?? true; |
||
60 | fff89fc5 | lbihannic | } |
61 | |||
62 | 1019554c | lbihannic | public Mesure? GetLastMeasureByNumeroBoite(int numeroBoite) |
63 | { |
||
64 | var serieAnimal = SeriesAnimales.FirstOrDefault(sa => sa.NumeroBoite == numeroBoite); |
||
65 | if (serieAnimal == null || !serieAnimal.Mesures.Any()) |
||
66 | return null; |
||
67 | return serieAnimal.GetLastMeasure(); |
||
68 | } |
||
69 | |||
70 | 12ddf7ef | lbihannic | internal void AddMeasure(Mesure newMeasure, int numBoite, bool isAnimalOut) |
71 | fff89fc5 | lbihannic | { |
72 | 12ddf7ef | lbihannic | var sa = SeriesAnimales.Select(sa => sa).Where(sa => sa.NumeroBoite == numBoite).First(); |
73 | sa.AddMeasure(newMeasure); |
||
74 | if (isAnimalOut) |
||
75 | sa.IsOut = true; |
||
76 | fff89fc5 | lbihannic | } |
77 | 9fd69a0e | lbihannic | |
78 | internal void AddBehaviour(Comportement newBehaviour, int numBoite, bool isAnimalOut) |
||
79 | { |
||
80 | var sa = SeriesAnimales.Select(sa => sa).Where(sa => sa.NumeroBoite == numBoite).First(); |
||
81 | sa.AddBehaviour(newBehaviour); |
||
82 | if (isAnimalOut) |
||
83 | sa.IsOut = true; |
||
84 | } |
||
85 | 4e39035b | lbihannic | |
86 | public int GetAnimalCount() |
||
87 | { |
||
88 | return SeriesAnimales.Count(); |
||
89 | } |
||
90 | public int GetMeasureCount() |
||
91 | { |
||
92 | return SeriesAnimales.Sum(sa => sa.GetMeasureCount()); |
||
93 | } |
||
94 | public int GetBehaviourCount() |
||
95 | { |
||
96 | return SeriesAnimales.Sum(sa => sa.Comportements.Count()); |
||
97 | } |
||
98 | ba296a27 | lbihannic | #endregion |
99 | 65ad7e66 | Lucas Bihannic | } |
100 | } |