public async Task <bool> CreateAsync(AppUser user)
        {
            try
            {
                user.Password = EncodePassword(user.Password);
                await _appUserRepository.CreateAsync(user);

                return(true);
            }

            catch (Exception exp)
            {
                throw new Exception(exp.Message);
            }
        }
예제 #2
0
 public async Task <IdentityResult> CreateAsync(AppUser user, string password)
 {
     return(await _appUserRepository.CreateAsync(user, password));
 }
예제 #3
0
        public async Task <IActionResult> Post([FromBody] NewUserModel item)
        {
            if (!ModelState.IsValid)
            {
                return(StatusCode(422, "Помилкові данні."));
            }
            if (string.IsNullOrEmpty(item.UserName))
            {
                return(StatusCode(422, "Відсутнє ім'я користувача."));
            }
            if (string.IsNullOrEmpty(item.LastName))
            {
                return(StatusCode(422, "Відсутнє прізвище користувача."));
            }
            var userExist = await _appUserRepository.IsExistAsync(item.UserName);

            if (userExist.Result == OperationResult.Error)
            {
                return(StatusCode(422, userExist.Message));
            }
            if (userExist.Value)
            {
                return(StatusCode(422, "Користувач вже існує."));
            }
            if (string.IsNullOrEmpty(item.Password))
            {
                return(StatusCode(422, "Відсутній пароль."));
            }
            if (item.Password.Length < 3)
            {
                return(StatusCode(422, "Пароль занадто короткий."));
            }

            if (item.RoleId == default(Guid))
            {
                var resultDefaultId = await _appRoleRepository.GetDefaultIdAsync();

                if (resultDefaultId.Result == OperationResult.Ok)
                {
                    if (resultDefaultId.Value == default(Guid))
                    {
                        return(StatusCode(422, "Роль за замовчуванням не знайдена."));
                    }
                    item.RoleId = resultDefaultId.Value;
                }
                else
                {
                    return(StatusCode(422, resultDefaultId.Message));
                }
            }
            else
            {
                try
                {
                    var isRoleExist = await _appRoleRepository.IsExistGuidAsync(item.RoleId);

                    if (isRoleExist.Result == OperationResult.Error)
                    {
                        return(StatusCode(422, userExist.Message));
                    }
                    if (!isRoleExist.Value)
                    {
                        return(StatusCode(422, "Роль не існує."));
                    }
                }
                catch (Exception ex) { return(StatusCode(422, $"Помилковий ідентифікатор ролі. {ex.Message}")); }
            }
            var result = await _appUserRepository.CreateAsync(item);

            if (result.Result == OperationResult.Ok)
            {
                return(StatusCode(201, result.Value));
            }
            return(StatusCode(422, result.Message));
        }