-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/subject registration progress list #206
Conversation
private List<string> GetMissingCriteriaMessages(StudentRegistrationProgress progress) | ||
{ | ||
//Todo: Implement | ||
throw new NotImplementedException(); | ||
var missingCriteria = new List<string>(); | ||
|
||
if (!progress.HoursPerWeekProgress.IsProgressComplete) | ||
{ | ||
missingCriteria.Add("Počet hodin týdně"); | ||
} | ||
|
||
if (!progress.CsOrCpRegistrationProgress.IsProgressComplete) | ||
{ | ||
missingCriteria.Add("Počet hodin v ČS/ČP"); | ||
} | ||
|
||
if (progress.LanguageRegistrationProgress.IsLanguageRequired && | ||
!progress.LanguageRegistrationProgress.HasRegisteredLanguage) | ||
{ | ||
missingCriteria.Add("Jazyk"); | ||
} | ||
|
||
return missingCriteria; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Je ještě otázka, jestli by se tahle logika neměla sloučit i s výstupem pro jednotlivého studenta a potom na klientovi foreachovat
namísto toho if else if else if
co tam teď je
Web.Client/Pages/Electives/StudentSubjectRegistrationProgressList.razor.cs
Outdated
Show resolved
Hide resolved
private string GetStudentLastName(int studentId) | ||
{ | ||
return StudentsDataStore.GetByKey(studentId).LastName ?? "-příjmení nenačteno-"; | ||
} | ||
|
||
private string GetStudentGradeName(int studentId) | ||
{ | ||
var gradeId = StudentsDataStore.GetByKeyOrDefault(studentId)?.GradeId; | ||
return gradeId is not null | ||
? GradesDataStore.GetByKey(gradeId.Value)?.Name | ||
: null; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tahle logika se v klientské aplikaci taky opakuje celkem často, ale nejsem si jistý, jak to DRY nout
@Xopabyteh PERF se řeší tak, že si dopředu posbíráš seznamy věcí, které budeš potřebovat a ty seznamy si načteš z DB hromadnými dotazy, aby ses vyhnul načítání záznamů po jednom. Až se k tomudle PR dostanu (potřebuju teď dodělat něco do práce), tak to zkusím doladit a ukážu ti to pak. |
Web.Client/Pages/Electives/StudentSubjectRegistrationProgressList.razor
Outdated
Show resolved
Hide resolved
Web.Client/Pages/Electives/StudentSubjectRegistrationProgressList.razor
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm, drobnost upravím a nasadím
Ukazuje to splněno A/N a basic seznam toho co chybí:
![image](https://private-user-images.githubusercontent.com/70832276/333898866-17999cd8-af74-44a2-9270-f8875f41dd78.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1NzE3NDIsIm5iZiI6MTczOTU3MTQ0MiwicGF0aCI6Ii83MDgzMjI3Ni8zMzM4OTg4NjYtMTc5OTljZDgtYWY3NC00NGEyLTkyNzAtZjg4NzVmNDFkZDc4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE0VDIyMTcyMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU4MjM3ZjA3N2UyMTE2ZjA4YjU0MDI0YTMyNWU2OTA4N2YzMTE0M2NlYjI0NmNjMGJmNmYzNzlkOTdiMDExNGImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.-7KuOC9B2QMAbd1Ijv9d8pzZnVBtSVrlXGJ2eL2oXtM)
Implementačně jsem hodně bojoval s paginací na serveru, takže jsem to teď ponechal jako
request.ApplyTo(data)
na gridu.Taky je tam docela neoptimalizovaná práce s query v
SubjectRegistrationProgressValidationService.cs
z důvodu zachování logikyNextGrade()
a taky se to lépe čte, ale způsobuje to, že místo jednoho dotazu do databáze pro všechny data je to rozdělený na2 * počtetStudentů
requestů.To bych vyřešil nějakým takovýmhle dotazem, který by si přednačetl
studenta, budoucí ročník a jeho registrace
přednačetl. Je tu ale logikaNextGrade()
implicitní + je to trochu chaos: