Serwis zwracający enum

0

Powiedzmy, że mam serwis, którego pewna metoda zwraca enuma. Metoda ta jest wywoływana w akcji kontrolera i na podstawie wyniku (enuma) kontroler generuje odpowiedź w postaci jakiegoś widoku. Czy takie zachowanie jest zgodne z zasadami MVC i dobrymi praktykami? Tylko jeden enum oznacza, że wszystko poszło OK. Chciałem pisać jakieś ExceptionHandlery do tych "złych" sytuacji, ale stwierdziłem, że to będzie overkill. Mam rację?

1

Nie wiem, czy dobrze zrozumiałem. Masz na myśli coś takiego?

enum DoSomething { IsDisabled, UserCanceled, Success };

async Task<DoSomething> cosTam(object data) { 

//Robi coś

return wynik_w_enum; 
}

Bierzesz wynik i wyświetlasz komunikat na jego podstawie?

Moim zdaniem rozwiązanie ok o ile enum służy do tego konkretnego zadania, ewentualnie innych które go po całości wykorzystują.

0

Właśnie o to mi chodziło. Problem polega na tym, że w metodzie kontrolera będzie musiał znaleźć się jakiś switch-case, aby ten wynik obsłużyć, a to oznacza logikę w kontrolerze i sprzeczność z MVC.

1
nobody01 napisał(a):

a to oznacza logikę w kontrolerze i sprzeczność z MVC.

W kontrolerach zgodnych z MVC ma nie być logiki aplikacyjnej i biznesowej, ale to jest jak najbardziej prawidłowe miejsce na logikę prezentacji.

0

@somekind: A przy okazji: ten problem pojawił się przy okazji refaktoringu AccountController dostarczonego wraz z Identity. Ten enum pochodzi właśnie z Identity. Czy w porządku jest mieć nadal referencję w projekcie Web do Identity, jeśli cała logika aplikacji/biznesowa związana z autentykacją została przeniesiona do Application?

1 użytkowników online, w tym zalogowanych: 0, gości: 1