Exemplo n.º 1
0
        // создание заявки препода
        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));
        }
Exemplo n.º 3
0
 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);
        }
Exemplo n.º 5
0
 public Task <OperationDetailDTO> CreateTeacherRegisterRequestAsync(TeacherRegisterDTO dto)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 6
0
        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
                });
            }
        }