Statistiques
| Branche: | Révision:

root / GES_PAC / Model / Journee.cs @ 42456640

Historique | Voir | Annoter | Télécharger (3,293 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
        public bool AddCalibration(MesureCalibration mesureCalibration, PhaseCalibration phaseCalibration)
29
        {
30
            var existing = Calibrations.FirstOrDefault(c => c.Phase == phaseCalibration);
31

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

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

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

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

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

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

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

    
92
        internal int GetDayBehaviourCount()
93
        {
94
            return Series.Sum(s => s.GetBehaviourCount());
95
        }
96
        internal Calibration GetLastCalibration()
97
        {
98
            return Calibrations.Last();
99
        }
100
        internal Calibration GetDebutCalibration()
101
        {
102
            return Calibrations.FirstOrDefault(c => c.Phase == PhaseCalibration.Debut);
103
        }
104
        internal bool IsCalibrationComplete(PhaseCalibration pc)
105
        {
106
            return Calibrations.FirstOrDefault(c => c.Phase == pc)?.IsComplete() ?? false;
107
        }
108
        internal bool IsComplete()
109
        {
110
            return Calibrations.FirstOrDefault(c => c.Phase == PhaseCalibration.Fin)?.IsComplete() ?? false;
111
        }
112
        #endregion
113
    }
114
}