Statistiques
| Branche: | Révision:

root / GES_PAC / Model / Journee.cs @ 957b1f34

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

1
namespace GES_PAC.Model
2
{
3
    public class Journee
4
    {
5
        #region Propriétés
6
        public Personne Responsable { get; set; }
7
        public Lieu Lieu { get; set; }
8
        public long Id { get; set; }
9
        public DateTime Date { get; set; }
10
        public string Regime { get; set; }
11
        public List<Serie> Series { get; set; }
12
        public List<Calibration> Calibrations { get; set; }
13
        #endregion
14

    
15
        #region Constructeurs
16
        public Journee(DateTime Date, Personne Responsable, Lieu Lieu, string Regime)
17
        {
18
            this.Responsable = Responsable;
19
            this.Lieu = Lieu;
20
            this.Date = Date;
21
            this.Regime = Regime;
22
            Series = [];
23
            Calibrations = [];
24
        }
25
        #endregion
26

    
27
        #region Méthodes
28

    
29
        public bool AddCalibration(MesureCalibration mesureCalibration, PhaseCalibration phaseCalibration)
30
        {
31
            var existing = Calibrations.FirstOrDefault(c => c.Phase == phaseCalibration);
32

    
33
            if (existing == null)
34
            {
35
                Calibrations.Add(new Calibration(phaseCalibration, mesureCalibration));
36
                return false;
37
            }
38

    
39
            existing.AddMesure(mesureCalibration);
40
            return existing.IsComplete();
41
        }
42

    
43
        public void AddSet(Serie set)
44
        {
45
            Series.Add(set);
46
        }
47

    
48
        public PhaseCalibration GetCurrentPhase()
49
        {
50
            if (Series.Count == 0)
51
            {
52
                return PhaseCalibration.Debut;
53
            }
54
            return PhaseCalibration.Fin;
55
        }
56

    
57
        public Calibration GetCurrentCalibration()
58
        {
59
            return Calibrations.FirstOrDefault(c => c.Phase == GetCurrentPhase());
60
        }
61

    
62
        public List<TypeCalibration> GetCurrentMissingCalibration()
63
        {
64
            if (Calibrations.Count == 0 || Calibrations.Last().IsComplete())
65
            {
66
                return TypeCalibration.All;
67
            }
68
            return TypeCalibration.All.Except(Calibrations.Last().GetTypesDone()).ToList();
69
        }
70
        
71
        public Serie GetCurrentSet()
72
        {
73
            return Series.Last();
74
        }
75
        public bool HasAnySet()
76
        {
77
            return Series.Count > 0;
78
        }
79
        internal int GetSetCount()
80
        {
81
            return Series.Count;
82
        }
83
        internal int GetDayAnimalCount()
84
        {
85
            return Series.Sum(s => s.GetAnimalCount());
86
        }
87

    
88
        internal int GetDayMeasureCount()
89
        {
90
            return Series.Sum(s => s.GetMeasureCount());
91
        }
92

    
93
        internal int GetDayBehaviourCount()
94
        {
95
            return Series.Sum(s => s.GetBehaviourCount());
96
        }
97
        internal Calibration GetLastCalibration()
98
        {
99
            return Calibrations.Last();
100
        }
101
        internal Calibration GetDebutCalibration()
102
        {
103
            return Calibrations.First(c => c.Phase == PhaseCalibration.Debut);
104
        }
105
        #endregion
106
    }
107
}