Пример #1
0
        private async void OnRegisteringTeacher()
        {
            DisableButtons();
            _teacherValidator = new TeacherValidator();
            if (SelectedSchool == null)
            {
                MessageDialog dialog = new MessageDialog($"Kindly select a school");
                await dialog.ShowAsync();

                EnableButtons();
                return;
            }
            _teacher?.Email?.Trim();
            _teacher?.MobilePhone?.Trim();
            _teacher.SchoolId = SelectedSchool.School.Id;
            var valResult = await _teacherValidator.ValidateAsync(_teacher);

            HttpResponseMessage response = default;

            if (valResult.IsValid)
            {
                if (isNewTeacher)
                {
                    response = await _httpClientService.PostBasicAsync(_teacher, "teacher/register");
                }
                else
                {
                    response = await _httpClientService.PutBasicAsync(_teacher, $"teacher/update/{_teacher.Id}");
                }
                if (response.IsSuccessStatusCode)
                {
                    var entity = JsonConvert.DeserializeObject <Teacher>(await response.Content.ReadAsStringAsync());
                    if (_teacherFileData != null)
                    {
                        var imageUri = await UplaodFileAsync(_httpClientService, entity, "teacher", _teacherFileData);

                        _teacherProfileImage = imageUri != null ? new BitmapImage(new Uri(imageUri)) : null;
                        RaisePropertyChanged(nameof(TeacherProfileImage));
                    }
                    MessageDialog dialog = new MessageDialog($"{_teacher.FirstName} {_teacher.MiddleName} {_teacher.LastName} has been registered.");
                    await dialog.ShowAsync();

                    _teacher = new Teacher();
                    RaisePropertyChanged(nameof(Teacher));
                    HideValidationErrors();
                    EnableButtons();
                    return;
                }
                else
                {
                    MessageDialog dialog = new MessageDialog($"An error occured. {await response.Content.ReadAsStringAsync()}");
                    await dialog.ShowAsync();

                    EnableButtons();
                    return;
                }
            }
            RaiseValidationErrors(valResult);
            EnableButtons();
        }