public async Task <bool> CreateAsync(CreateUsuarioViewModel usuario) { ValidationResult _result = new CreateUsuarioValidation().Validate(usuario); if (!_result.IsValid) { throw new ApiException(_result.GetErrors(), ApiErrorCodes.MODNOTVALD); } Perfil _perfil = _repositoryPerfil.GetByKey(Perfil.ADM); if (_repository.ExistsWithUserName(usuario.Email)) { throw new ApiException(ApiErrorCodes.EXUSU); } Usuario _usuario = _mapper.Map <Usuario>(usuario); IdentityResult _identityResult = await _userManager.AddPasswordAsync(_usuario, usuario.Senha); if (!_identityResult.Succeeded) { throw new ApiException(ApiErrorCodes.INVPASS, nameof(usuario.Senha)); } IdentityResult _createResult = await _userManager.CreateAsync(_usuario, usuario.Senha); if (!_createResult.Succeeded || _createResult.Errors.Any()) { throw new ApiException(_createResult.GetErrorsToString(), ApiErrorCodes.CRUSIDNT); } _usuario.SetPerfilId(_perfil.Id); _repository.Create(_usuario); if (!_uow.Commit()) { throw new ApiException(ApiErrorCodes.ERROPBD); } return(true); }