Statistiques
| Branche: | Révision:

root / GES_PAC / ViewModel / ChambersViewModel.cs @ 9fd69a0e

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

1
using GES_PAC.Model;
2
using GES_PAC.View;
3
using System.Collections.ObjectModel;
4
using System.Windows.Input;
5

    
6
namespace GES_PAC.ViewModel
7
{
8
    public class ChambersViewModel : BaseViewModel
9
    {
10

    
11
        #region Attributs
12
        
13
        #endregion
14

    
15
        #region Commandes
16
        public ICommand OnClickChamberCommand { get; }
17
        #endregion
18

    
19
        #region Propriétés
20
        public ObservableCollection<Color> ChamberColors { get; set; } = [];
21
        public ObservableCollection<int> ChamberNumbers { get; set; } = [];
22
        public ObservableCollection<bool> ChamberIsIn { get; set; } = [];
23
        public Serie CurrentSet { get; set; }
24

    
25
        #endregion
26

    
27
        #region Constructeurs
28
        public ChambersViewModel()
29
        {
30
            //ONLY FOR TESTS
31
            var date = DateTime.Now;
32
            var newDay = new Journee(date, PersonViewModel.Instance.Persons[0], PlaceViewModel.Instance.Places[0], "");
33
            newDay.AddSerie(new Serie(date, date, 25, 25, 25));
34
            newDay.GetCurrentSet().AddSerieAnimal(new SerieAnimal(1, 500, date, ""));
35
            newDay.GetCurrentSet().AddMeasure(new Mesure(date, 50, 50, 50), 1);
36
            JourneeViewModel.Instance.Journees.Add(newDay);
37
            //ONLY FOR TESTS
38

    
39
            CurrentSet = JourneeViewModel.Instance.GetCurrentSet();
40
            UpdateChamberDatas();
41

    
42
            OnClickChamberCommand = new Command<string>(async (idStr) =>
43
            {
44
                int id = int.Parse(idStr);
45
                await GoToEnterAnimal(id);
46
            });
47
        }
48
        #endregion
49

    
50
        #region Méthodes
51
        private async Task GoToEnterAnimal(int id)
52
        {
53
            if (IsBusy) return;
54
            IsBusy = true;
55

    
56
            if (CurrentSet.GetMeasureNumberByNumeroBoite(id) == 0)
57
                await Shell.Current.GoToAsync($"{nameof(EnterAnimalView)}?chamberId={id}");
58
            else
59
                await Shell.Current.GoToAsync($"{nameof(CreateMeasureView)}?chamberId={id}");
60

    
61
            IsBusy = false;
62
        }
63

    
64
        private void UpdateChamberDatas()
65
        {
66
            ChamberIsIn = JourneeViewModel.Instance.GetCurrentSet().GetIsOutDatas();
67
            for (int i = 1; i <= 12; i++)
68
            {
69
                bool hasBehaviour = CurrentSet.GetHasBehaviourByNumeroBoite(i);
70
                int count = CurrentSet.GetMeasureNumberByNumeroBoite(i);
71
                if (hasBehaviour)
72
                    ChamberColors.Add(Colors.Yellow);
73
                else
74
                    ChamberColors.Add(count > 0 ? Colors.LightGreen : Colors.White);
75
                ChamberNumbers.Add(count);
76
            }
77
        }
78
        #endregion
79
    }
80
}