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;
            }
        }