How Can We Help?
Reguły Walidacyjne
W tym artykule dowiesz się czym są reguły walidacyjne oraz jak je implementować. Jako przykład utworzymy taką regułę która będzie sprawdzać czy dane dotyczące stanu początkowego przejazdu (StanLicznikaPrzed) zgadzają się z ostatnim wpisem poprzedniego przejazdu. Ustalimy że StanLicznikaPrzed nie może być mniejszy niż aktualny przebieg pojazdu (StanLicznikaPo).
Aby osiągnąć nasz cel będziemy musieli dodać nowe pole (OstatniPrzebieg) do encji Samochod do którego będzie wysyłana wartość (StanLicznikaPo) poprzez metodę OnSave w encji SamochodPrzejazd, oraz zdefiniować regułę walidacyjną dla pola (StanLicznikaPrzed).
Dodanie pola
Pierwszym krokiem będzie dodanie pola OstatniPrzebieg do encji Samochod, pole to posłuży nam do przechwycenia i przechowania wartości z pola StanLicznikaPo. (Po każdym zapisie przejazdu będzie wysyłana nowa wartość Stanu Licznika Po).
// W tym miejscu będziemy definiować pola encji (properties). //.. private int _OstatniPrzebieg; [ReadOnly(true)] public int OstatniPrzebieg { get { return _OstatniPrzebieg; } set { SetPropertyValue("OstatniPrzebieg", ref _OstatniPrzebieg, value); } } //..
Definicja metody OnSave
// W tym miejscu będziemy definiować pola encji (properties). //.. protected override void OnSaving() { base.OnSaving(); Samochod.OstatniPrzebieg = StanLicznikaPo; } //..
Definicja reguły walidacyjnej
// Tutaj będziemy mogli dodawać atrybuty encji //.. [RuleCriteria("", DefaultContexts.Save, "StanLicznikaPrzed >= Samochod.OstatniPrzebieg", "StanLicznikaPrzed nie moze byc mniejszy od Ostatniego Przebiegu", SkipNullOrEmptyValues = false)] //..