Statistiques
| Branche: | Révision:

root / GES_PAC / ViewModel / CreatePersonViewModel.cs @ eac868a1

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

1
using GES_PAC.Model;
2
using System.Windows.Input;
3

    
4
namespace GES_PAC.ViewModel
5
{
6
    public class CreatePersonViewModel : BaseViewModel
7
    {
8
        private string _nom;
9
        public string Nom
10
        {
11
            get => _nom;
12
            set
13
            {
14
                _nom = value;
15
                OnPropertyChanged();
16
                ValidateForm();
17
            }
18
        }
19
        private string _prenom;
20
        public string Prenom
21
        {
22
            get => _prenom;
23
            set
24
            {
25
                _prenom = value;
26
                OnPropertyChanged();
27
                ValidateForm();
28
            }
29
        }
30
        private string _email;
31
        public string Email
32
        {
33
            get => _email;
34
            set
35
            {
36
                _email = value;
37
                OnPropertyChanged();
38
                ValidateForm();
39
            }
40
        }
41
        private bool _isFormValid;
42
        public bool IsFormValid
43
        {
44
            get => _isFormValid;
45
            set
46
            {
47
                _isFormValid = value;
48
                OnPropertyChanged();
49
            }
50
        }
51

    
52
        public bool NomError { get; private set; } = true;
53
        public bool PrenomError { get; private set; } = true;
54
        public bool EmailError { get; private set; } = true;
55

    
56

    
57
        public ICommand ReturnCommand { get; }
58
        public ICommand CreatePersonCommand { get; }
59

    
60
        public CreatePersonViewModel()
61
        {
62
            ReturnCommand = new Command(async () => await Return());
63
            CreatePersonCommand = new Command(async () => await CreatePerson());
64
        }
65
        private async Task Return()
66
        {
67
            await Shell.Current.GoToAsync("..");
68
        }
69
        private async Task CreatePerson()
70
        {
71
            var newTechnician = new Personne(Nom, Prenom, Email);
72
            PersonViewModel.Instance.Persons.Add(newTechnician);
73
            await Shell.Current.GoToAsync("..");
74
        }
75

    
76
        private void ValidateForm()
77
        {
78
            NomError = string.IsNullOrWhiteSpace(Nom) || Nom.Length < 3;
79
            PrenomError = string.IsNullOrWhiteSpace(Prenom) || Prenom.Length < 3;
80
            EmailError = string.IsNullOrWhiteSpace(Email) || Email.Length < 10;
81

    
82
            OnPropertyChanged(nameof(NomError));
83
            OnPropertyChanged(nameof(PrenomError));
84
            OnPropertyChanged(nameof(EmailError));
85

    
86
            IsFormValid = !NomError && !PrenomError && !EmailError;
87

    
88
            (CreatePersonCommand as Command)?.ChangeCanExecute();
89
        }
90
    }
91
}