コード例 #1
0
        internal override async Task <User> RegisterUser(string username, string email, string password)
        {
            var transaction = _context.Database.BeginTransaction();

            try
            {
                IdentityUser user = new IdentityUser {
                    UserName = username, Email = email
                };
                IdentityResult result = await _userManager.CreateAsync(user, password);

                if (!result.Succeeded)
                {
                    List <String> errors = new List <String>();
                    foreach (var error in result.Errors)
                    {
                        errors.Add(error.Description);
                    }
                    throw new ConduitValidationException(errors);
                }
                _userPersonalizationRepository.CreateUserPersonalizationForId(user.Id);
                _context.SaveChanges();
                transaction.Commit();
                return(new User(email, GenerateJWTToken(user), username, null, null));
            } catch (Exception ex)
            {
                transaction.Rollback();
                throw ex;
            }
        }