Révision 6f451cc1 GES_PAC/Model/Journee.cs

Voir les différences:

GES_PAC/Model/Journee.cs
1
using SQLite;
2
using System.ComponentModel.DataAnnotations.Schema;
3

  
1 4
namespace GES_PAC.Model
2 5
{
3 6
    public class Journee
4 7
    {
5 8
        #region Propriétés
9
        [PrimaryKey, AutoIncrement]
10
        public int Id { get; set; }
11
        public int PersonneId { get; set; }
12
        [ForeignKey("PersonneId")]
6 13
        public Personne Responsable { get; set; }
14
        public int LieuId { get; set; }
15
        [ForeignKey("LieuId")]
7 16
        public Lieu Lieu { get; set; }
8
        public long Id { get; set; }
9 17
        public DateTime Date { get; set; }
10 18
        public string Regime { get; set; }
11
        public List<Serie> Series { get; set; }
12
        public List<Calibration> Calibrations { get; set; }
19
        public List<Serie> Series { get; set; } = [];
20
        public List<Calibration> Calibrations { get; set; } = [];
13 21
        #endregion
14 22

  
15 23
        #region Constructeurs
24
        public Journee(){}
16 25
        public Journee(DateTime Date, Personne Responsable, Lieu Lieu, string Regime)
17 26
        {
18 27
            this.Responsable = Responsable;
......
25 34
        #endregion
26 35

  
27 36
        #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 37

  
42 38
        public void AddSet(Serie set)
43 39
        {
40
            set.Journee = this;
44 41
            Series.Add(set);
45 42
        }
46

  
47
        public PhaseCalibration GetCurrentPhase()
43
        public List<TypeCalibration> GetMissingCalibrationByPhase(PhaseCalibration phase)
48 44
        {
49
            if (Series.Count == 0)
50
            {
51
                return PhaseCalibration.DEBUT;
52
            }
53
            return PhaseCalibration.FIN;
54
        }
45
            if (phase == null)
46
                return TypeCalibration.All;
55 47

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

  
61
        public List<TypeCalibration> GetCurrentMissingCalibration()
62
        {
63
            if (Calibrations.Count == 0 || Calibrations.Last().IsComplete())
64
            {
50
            if (calibPhase == null || calibPhase.IsComplete())
65 51
                return TypeCalibration.All;
66
            }
67
            return TypeCalibration.All.Except(Calibrations.Last().GetTypesDone()).ToList();
52

  
53
            return TypeCalibration.All.Except(calibPhase.GetTypesDone()).ToList();
68 54
        }
69
        
70
        public Serie GetCurrentSet()
55

  
56

  
57
        public Serie? GetCurrentSet()
71 58
        {
72
            return Series.LastOrDefault();
59
            return Series?.LastOrDefault();
73 60
        }
74 61
        public bool HasAnySet()
75 62
        {
......
99 86
        }
100 87
        internal Calibration GetDebutCalibration()
101 88
        {
102
            return Calibrations.FirstOrDefault(c => c.Phase == PhaseCalibration.DEBUT);
89
            return Calibrations.FirstOrDefault(c => c.Phase?.Value == PhaseCalibration.DEBUT.Value);
103 90
        }
104 91
        internal bool IsCalibrationComplete(PhaseCalibration pc)
105 92
        {
106
            return Calibrations.FirstOrDefault(c => c.Phase == pc)?.IsComplete() ?? false;
93
            return Calibrations?.FirstOrDefault(c => c.Phase == pc)?.IsComplete() ?? false;
107 94
        }
108 95
        internal bool IsComplete()
109 96
        {
110
            return Calibrations.FirstOrDefault(c => c.Phase == PhaseCalibration.FIN)?.IsComplete() ?? false;
97
            return Calibrations?.FirstOrDefault(c => c.Phase == PhaseCalibration.FIN)?.IsComplete() ?? false;
98
        }
99

  
100
        internal void AddCalibration(Calibration calibration)
101
        {
102
            calibration.Journee = this;
103
            Calibrations.Add(calibration);
111 104
        }
112 105
        #endregion
113 106
    }

Formats disponibles : Unified diff