public async Task <Tuple <bool, string> > AddEntityAsync(APIShoppingUser entity) { try { var users = _dbContext.Users.ToList(); if (users.FirstOrDefault(u => u.Email == entity.Email) == null) { ShoppingUserEntity newUser = new ShoppingUserEntity() { Email = entity.Email, UserName = entity.UserName, PasswordHash = entity.Password, FirstName = entity.FirstName, LastName = entity.LastName, HomeStoreId = entity.HomeStoreId, TimeOfCreation = DateTimeOffset.UtcNow }; await _dbContext.ShoppingUsers.AddAsync(newUser); await _dbContext.SaveChangesAsync(); return(Tuple.Create(true, "")); } else { return(Tuple.Create(false, "Already have a user in database with that email")); } } catch (Exception ex) { return(Tuple.Create(false, "Unable to add user"));; } }
public async Task <IActionResult> RegisterShoppingUser([FromBody] APIShoppingUser user, CancellationToken ct) { if (!ModelState.IsValid) { return(BadRequest(new { error = "Model state is not valid" })); } StoreEntity store = await _storeRepository.GetEntityAsync(user.HomeStoreId, ct); var shoppingUser = new ShoppingUserEntity { FirstName = user.FirstName, LastName = user.LastName, UserName = user.UserName, Email = user.Email, HomeStoreId = user.HomeStoreId }; //var result = await _shoppingUserManager.CreateAsync(shoppingUser, user.Password); //await _shoppingUserManager.AddToRoleAsync(shoppingUser, "Shopping"); var result = await _baseUserManager.CreateAsync(shoppingUser, user.Password); if (!result.Succeeded) { return(BadRequest(result.Errors)); } result = await _baseUserManager.AddToRoleAsync(shoppingUser, "Shopping"); if (!result.Succeeded) { return(BadRequest(result.Errors)); } //await _baseSignInManager.SignInAsync(shoppingUser, isPersistent: false); result = await _baseUserManager.UpdateAsync(shoppingUser); if (!result.Succeeded) { return(BadRequest(result.Errors)); } return(Ok(CreateToken(shoppingUser))); }