Statistiques
| Branche: | Révision:

root / GES_PAC / ViewModel / ChambersViewModel.cs @ 612877b5

Historique | Voir | Annoter | Télécharger (2,332 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

    
21
        public Dictionary<int, int> NumberMeasure { get; set; }
22
        public ObservableCollection<Color> ChamberColors { get; } = [];
23
        public ObservableCollection<int> ChamberNumbers { get; } = [];
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
            NumberMeasure = JourneeViewModel.Instance.GetCurrentDay().GetCurrentSet().GetMeasureNumber();
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 (!NumberMeasure.ContainsKey(id))
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
            ChamberColors.Clear();
67
            for (int i = 1; i <= 12; i++)
68
            {
69
                int count = NumberMeasure.TryGetValue(i, out var val) ? val : 0;
70
                ChamberColors.Add(count > 0 ? Colors.LightGreen : Colors.White);
71
                ChamberNumbers.Add(count);
72
            }
73
        }
74
        #endregion
75
    }
76
}