Пример #1
0
        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.");
        }
Пример #2
0
        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);
            }
        }