Od DB do View - przejście wszystkich warstw

0

Chciałem zapytać jak prawidłowo powinno wyglądać takie przejście od pobrania danych z bazy do wyswietlenia strony uzytkownikowi.

mam w bazie tabele (pomińmy sensowność danych, po protu mamy jakieś dane w bazie)

Baza

TabNauczyciel

Id | Imie | Nazwisko| Wiek | Tytuł | Na urlopie
---------------- | -------------------
1 | Jan | Kowalski | 45 | magister | 0
2 | Andrzej | Polak | 65 | profesor | 0
3 | Janusz | Nowak | 40 | magister | 1

TabPokoj

Id | Numer | Pietro | Budynek
---------------- | -------------------
1 | 32 | 3 | 2A
2 | 16 | 3 | 3
3 | 24 | 1 | 1B

TabPokojNauczyciel

Id | NauczycielID | PokojID
---------------- | -------------------
1 | 1 | 2
2 | 3 | 2
3 | 2 | 3

Model
Tworzę sobie klasy modelu

public class Pokoj
{
 public int Numer{get; set;}
public int Pietro{get; set;}
public string Budynek{get; set;}
}

public class Nauczyciel
{
 public string Imie {get; set;}
 public string Nazwisko {get; set;}
 public int Wiek {get; set;}
 public string Tytuł {get; set;}
 public bool NaUrlopie{get; set;}
}



public class NauczycielViewModel
{
 
 public string Imie {get; set;}
 public string Nazwisko {get; set;}
 public int Wiek {get; set;}
 public string Tytuł {get; set;}
 public bool NaUrlopie{get; set;}
 public int Numer{get; set;}
 public int Pietro{get; set;}
 public string Budynek{get; set;}
}

Użytkownik wybiera że chce zobaczyć dane Jana Kowalskiego, czyli np w mamy np przekazanie w adresie parameru Id = 1

Parametr przekazywany jest do kontrolera.
Kontroler korzysta z service'a który odpytuje baze danych i następnie zwraca mi ViewModel no

public class ActionResult DaneSzczegolowe(int id)
{
   NauczycielViewModel nauczyciel = nauczycielService.Szczegoly(int id);
   return View(nauczyciel);
}

  1. czy to tak powinno wyglądać, czy macie może jakieś uwagi (bez wytykania, ze złe nazwy, lub ze po Polski ;) )
  2. chciałbym, żeby w widoku wyświetlała się jakaś zielona kontrolka jeśli nauczyciel nie jest na urlopie i czerwona jeśli jest. Gdzie zrobić sprawdzenie tego warunku i ustawić kolor? W widoku czy Viewmodelu?
0
  1. W ogólnym przypadku tak, to poprawny model. Jeden z wielu... Dopóki apka nie jest bardziej skomplikowana prawdopodobnie żadna klasa z logiką oprócz serwisów się nie pojawi.
    Ogólnie zawsze staraj się pisać jak najprościej - kod powinien "sam się tłumaczyć".
  2. Sprawdzenie na pewno na samym końcu w widoku, w końcu to tam musisz to ustawić przecież więc skądś musisz wiedzieć co ustawić (urlop=true/false)

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