// создание заявки препода public async Task <OperationDetailDTO> CreateTeacherRegisterRequestAsync(TeacherRegisterDTO dto) { List <string> errorMessages = new List <string>(); try { if (!UserValidator.Validate(dto, out errorMessages)) { return(new OperationDetailDTO { Succeeded = false, ErrorMessages = errorMessages }); } if (await _context.StudentRegisterRequests.AnyAsync(x => x.UserName == dto.UserName) || await _context.TeacherRegisterRequests.AnyAsync(x => x.UserName == dto.UserName) || await _userManager.FindByNameAsync(dto.UserName) != null) { errorMessages.Add("Пользователь с таким имененем пользователем уже существует. Пожалуйста, выберите другое."); return(new OperationDetailDTO { Succeeded = false, ErrorMessages = errorMessages }); } var testUser = new User { Email = dto.Email, UserName = dto.UserName, PasswordHash = dto.Password }; var userValidateRes = await _userValidator.ValidateAsync(_userManager, testUser); if (!userValidateRes.Succeeded) { errorMessages.Add("Введенные данные не прошли валидацию. Подробнее далее."); foreach (var error in userValidateRes.Errors.ToList()) { errorMessages.Add(error.Description); } return(new OperationDetailDTO { Succeeded = false, ErrorMessages = errorMessages }); } await _context.TeacherRegisterRequests.AddAsync(GetTeacherRegEntityFromDTO(dto)); await _context.SaveChangesAsync(); return(new OperationDetailDTO { Succeeded = true }); } catch (Exception e) { return(new OperationDetailDTO { Succeeded = false, ErrorMessages = { _serverErrorMessage + e.Message } }); } }
public async Task <IActionResult> AddTeacherRegRequestAsync([FromBody] TeacherRegisterDTO dto) { var test = JsonConvert.SerializeObject(dto); var detail = new OperationDetailDTO(); var res = await _accountService.CreateTeacherRegisterRequestAsync(dto); detail = res; return(Ok(detail)); }
private TeacherRegisterRequest GetTeacherRegEntityFromDTO(TeacherRegisterDTO dto) => new TeacherRegisterRequest { DepartmentId = dto.DepartmentId, Name = dto.Name, Surname = dto.Surname, Patronymic = dto.Patronymic, Position = dto.Position, Email = dto.Email, PasswordHash = dto.Password, UserName = dto.UserName, };
public static bool Validate(TeacherRegisterDTO dto, out List <string> messages) { bool res = true; messages = new List <string>(); if (String.IsNullOrEmpty(dto.Name) || dto.Name.Length >= 50) { messages.Add("Укажите корректно имя. Только буквы, максимальная длина - 50."); res = false; } if (String.IsNullOrEmpty(dto.Surname) || dto.Surname.Length >= 50) { messages.Add("Укажите корректно фамилию. Только буквы, максимальная длина - 50."); res = false; } if (String.IsNullOrEmpty(dto.Patronymic) || dto.Patronymic.Length >= 50) { messages.Add("Укажите корректно отчество. Только буквы, максимальная длина - 50."); res = false; } if (String.IsNullOrEmpty(dto.Position) || dto.Position.Length >= 50) { messages.Add("Укажите корректно должность. Только буквы, максимальная длина - 50."); res = false; } if (String.IsNullOrEmpty(dto.UserName) || dto.UserName.Length >= 50) { messages.Add("Укажите корректно имя пользователя. Максимальная длина - 50."); res = false; } if (dto.Password.Length < 6) { messages.Add("Укажите корректно пароль. Минимальная длина - 6."); res = false; } if (!EmailValidator.IsCorrect(dto.Email)) { messages.Add("Укажите корректно электронную почту."); res = false; } return(res); }
public Task <OperationDetailDTO> CreateTeacherRegisterRequestAsync(TeacherRegisterDTO dto) { throw new NotImplementedException(); }
public async Task <OperationDetailDTO> CreateTeacherAsync(TeacherRegisterDTO dto) { OperationDetailDTO resultDetail; List <string> errors = new List <string>(); try { var teacher = new Teacher { Name = dto.Name, Surname = dto.Surname, Patronymic = dto.Patronymic, Position = dto.Position, DepartmentId = dto.DepartmentId, }; var user = new User { Teacher = teacher, Email = dto.Email, PasswordHash = dto.Password, UserName = dto.UserName, EntityId = teacher.Id }; var userResult = await _userManager.CreateAsync(user, dto.Password); if (userResult.Succeeded) { var roleResult = await _userManager.AddToRoleAsync(user, Role.Types.Teacher.ToString()); if (roleResult.Succeeded) { resultDetail = new OperationDetailDTO { Succeeded = true }; } else { await _userManager.DeleteAsync(user); foreach (var error in userResult.Errors) { errors.Add("Ошибка при регистрации пользователя-преподавателя. Код ошибки: " + error.Code + ". Описание ошибки: " + error.Description); } resultDetail = new OperationDetailDTO { Succeeded = false, ErrorMessages = errors }; } } else { foreach (var error in userResult.Errors) { errors.Add("Ошибка при регистрации пользователя-преподавателя. Код ошибки: " + error.Code + " Описание ошибки: " + error.Description); } resultDetail = new OperationDetailDTO { Succeeded = false, ErrorMessages = errors }; } return(resultDetail); } catch (Exception e) { errors.Add(_serverErrorMessage + e.Message); return(new OperationDetailDTO { Succeeded = false, ErrorMessages = errors }); } }