Serwis zwracający enum

Serwis zwracający enum
N0
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gdańsk
  • Postów: 647
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ę?

Wojciech Dudek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 35
1

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

Kopiuj
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ą.

N0
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gdańsk
  • Postów: 647
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.

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
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.

N0
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gdańsk
  • Postów: 647
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?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.