root / GES_PAC / ViewModel / ChambersViewModel.cs @ 9601eaf0
Historique | Voir | Annoter | Télécharger (1,796 ko)
1 |
using GES_PAC.Model; |
---|---|
2 |
using GES_PAC.Services; |
3 |
using GES_PAC.View; |
4 |
using GES_PAC.ViewModel.Controls; |
5 |
using System.Collections.ObjectModel; |
6 |
using System.Windows.Input; |
7 |
|
8 |
namespace GES_PAC.ViewModel |
9 |
{ |
10 |
public class ChambersViewModel : BaseViewModel |
11 |
{ |
12 |
#region Attributs |
13 |
#endregion |
14 |
|
15 |
#region Commandes |
16 |
public Serie? CurrentSet { get; set; } |
17 |
public ICommand TerminateSetCommand { get; } |
18 |
#endregion |
19 |
|
20 |
#region Propriétés |
21 |
public TimerPublisher Timer { get; } |
22 |
public List<ChamberButtonViewModel> Buttons { get; } = new(); |
23 |
|
24 |
#endregion |
25 |
|
26 |
#region Constructeurs |
27 |
public ChambersViewModel() |
28 |
{ |
29 |
TerminateSetCommand = new Command(async () => await TerminateSet()); |
30 |
|
31 |
CurrentSet = JourneeViewModel.Instance.GetCurrentSet(); |
32 |
|
33 |
Timer = new TimerPublisher(); |
34 |
Timer.Start(); |
35 |
} |
36 |
#endregion |
37 |
|
38 |
#region Méthodes |
39 |
private async Task TerminateSet() |
40 |
{ |
41 |
if (IsBusy) return; |
42 |
IsBusy = true; |
43 |
await Shell.Current.GoToAsync(nameof(EndSetView)); |
44 |
IsBusy = false; |
45 |
} |
46 |
|
47 |
internal async void OnAppearing() |
48 |
{ |
49 |
CurrentSet = JourneeViewModel.Instance.GetCurrentSet(); |
50 |
RefreshAll(); |
51 |
|
52 |
if (CurrentSet == null) |
53 |
{ |
54 |
IsBusy = true; |
55 |
await Shell.Current.GoToAsync(nameof(MainView)); |
56 |
IsBusy = false; |
57 |
} |
58 |
} |
59 |
public void RegisterButton(ChamberButtonViewModel vm) |
60 |
{ |
61 |
if (!Buttons.Contains(vm)) |
62 |
Buttons.Add(vm); |
63 |
} |
64 |
public void RefreshAll() |
65 |
{ |
66 |
foreach (var btn in Buttons) |
67 |
btn.UpdateProperties(); |
68 |
} |
69 |
|
70 |
#endregion |
71 |
} |
72 |
} |