private async Task ExecuteSaveChangesAsync(object parameter) { // TODO: sprawdzenie czy pola są podane await _longRunningOperationHelper.ProceedLongRunningOperationAsync(async() => { var studentsClass = new StudentsClass(ClassNumber, ClassLetter) { EducatorId = Educator?.Id, Educator = Educator, Students = Students }; Educator.ClassId = studentsClass.FullName; try { await _usersRepository.InsertOrReplaceAsync(Educator); foreach (var student in Students) { student.ClassId = studentsClass.FullName; student.Class = studentsClass; await _usersRepository.InsertOrReplaceAsync(student); await _mailingService.SendEmailWithLoginAndPasswordAsync(student, Administrator); if (student.Parent != null) { student.Parent.ChildClassId = studentsClass.FullName; await _usersRepository.InsertOrReplaceAsync(student.Parent); await _mailingService.SendEmailWithLoginAndPasswordAsync(student.Parent, Administrator); } } await _classesRepository.InsertOrReplaceAsync(studentsClass); } catch (TableException) { // TODO: wycofanie wszystkich zmian } }); MessageBoxHelper.ShowMessageBox($"Utworzono klasę {ClassNumber}{ClassLetter} wraz z kontami użytkowników."); }
private async Task ExeucteAddTeacherAsync(object parameter) { if (String.IsNullOrWhiteSpace(FirstName) || String.IsNullOrWhiteSpace(LastName) || String.IsNullOrWhiteSpace(Login) || String.IsNullOrWhiteSpace(Email)) { MessageBoxHelper.ShowErrorMessageBox("Wypełnij wszystkie pola."); return; } try { await _longRunningOperationHelper.ProceedLongRunningOperationAsync(async() => { string password = _loginService.GeneratePassword(); string hashedPassword = _loginService.HashPassword(password); long id = _uniqueIDGenerator.GetNextIdForUser(); var teacher = new Teacher(id) { FirstName = FirstName, LastName = LastName, Login = Login, Email = Email, Password = password, HashedPassword = hashedPassword }; await _usersRepository.InsertOrReplaceAsync(teacher); await _mailingService.SendEmailWithLoginAndPasswordAsync(teacher, Administrator); AllTeachers.Add(teacher); OnPropertyChanged(nameof(AllTeachers)); }); MessageBoxHelper.ShowMessageBox("Nauczyciel dodany do systemu."); ClearAllFields(); } catch (TableException ex) { MessageBoxHelper.ShowErrorMessageBox(ex.Message); } }