Mikrozadanie 10

backback

Treść

Patrz tutaj.

Wzorcówka

Dostępna w repozytorium na branchu model-solution a także w tym Pull Requeście z wygodnym diffem.

Uwagi

  1. Nagminnie ignorowaliście warningi o “possible null dereference.” Nie wolno tak robić. Każdy taki warning trzeba obsłużyć, albo sprawdzając nulla, albo wyciszając go bang operatorem ! jeśli jesteśmy pewni, że null tam jest niemożliwy.
  2. Ekran z sesjami był zepsuty, moja wina. Naprawiłem go we wzorcówce, teraz poprawnie się odświeża przy tworzeniu nowej sesji lub wykładu.
  3. Przy walidacji ważne jest przekazanie które pole formularza go spowodowało, żeby frontend mógł poprawnie wyświetlić błędy walidacji. W tym przypadku jako klucz w słowniku błędów trzeba było przekazać "SpeakerId".
  4. NIE WOLNO PRZEKAZYWAĆ PARAMETRÓW INLINE. Jeśli chcemy zrobić zapytanie, które wyciągnie nam referaty z danej sesji i będziemy filtrować w zapytaniu po SessionId, to należy je przekazać jako parametr:
_dbContext.Query<...>(
	@"SELECT ...
	     FROM lectures l
	  WHERE l.sessionId = @SessionId",
	  l => 
	  {
		  ...
	  },
	  new { SessionId = session.Id },
	  splitOn: ...
);

         w żadnym wypadku nie:

_dbContext.Query<...>(
	@"SELECT ...
	     FROM lectures l
	  WHERE l.sessionId = " + session.Id.ToString(),
	  l => 
	  {
		  ...
	  },
	  splitOn: ...
);

backback