Domyślne wartości | Ilaro.Admin

W poprzednim wpisie na temat usuwania rekordów wspomniałem o metodzie OnDelete, która ustawia wartości properties podczas usuwania.

Istnieją jeszcze dwie analogiczne metody, OnCreate i OnUpdate.
Każda z nich ustawia domyślne wartości podczas określonej akcji, OnCreate podczas tworzenia rekordu, OnUpdate podczas edycji rekordu i OnDelete podczas usuwania (soft delete).

Konfiguracja

Konfiguracja dla każdej z tych metod jest taka sama, zmienia się nazwa atrybut lub nazwa metody.

Konfiguracja atrybutami:

Fluent konfiguracja:

Wartości statyczne i ValueBehavior

Te metody mogą przyjąć albo wartość statyczną:

Lub też mogą przyjąć wartość enuma ValueBehavior.

W przypadku wybrania ValueBehavior.Now  lub ValueBehavior.UtcNow wartość zostanie ustawiona na obecny czas.

Jeśli zostanie wybrany ValueBehavior.CurrentUserId lub ValueBehavior.CurrentUserName wartość zostanie ustawiona na Id lub UserName zalogowanego użytkownika.

Zalogowany użytkownik

Żeby wyciągnąć dane zalogowanego użytkownika Ilaro.Admin używa interfejsu IProvidingUser.

Jego domyślna implementacja:

UserName jest brany z obiektu HttpContext, natomiast jak widać domyślna implementacja nie ma zaimplementowanej metody CurrentId(), gdyż w ASP.NET MVC 4 obiekt HttpContext nie jest w stanie zwrócić Id zalogowanego użytkownika, istnieją inne metody dobrania się do tej informacji, jednak chciałem zachować spójność klasy. W wersji MVC 5 HttpContext posiada już taką informacje. Gdy zaktualizuje Ilaro.Admin do tej wersji MVC, uzupełnię implementacje IProvidingUser, tymczasem, by pobrać id zalogowanego użytkownika należy napisać własną implementacje.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *