public async Task <IActionResult> Register([FromBody] RegisterViewModel model) { try { var user = new IdentityUser { UserName = model.Email.TrimAndToLower(), Email = model.Email.TrimAndToLower() }; IdentityResult result = null; using (var transaction = await _dbContext.Database.BeginTransactionAsync()) { try { result = await _userManager.CreateAsync(user, model.Password); if (!result.Succeeded) { return(BadRequest(result.ToErrorList())); } _dbContext.Add(new UserInfo(user.Id, user.Email).SetDefaultAddress().SetName(model.Name)); await _dbContext.SaveChangesAsync(); transaction.Commit(); return(Ok()); } catch (System.Exception e) { transaction.Rollback(); throw; } } } catch (Exception) { throw; } }