public async Task <EmailConfirmationModel> SignUpAsync(SignUpModel signUpModel) { var resultModel = new EmailConfirmationModel(); var user = await _userRepository.FindByEmailAsync(signUpModel.Email); if (user != null) { resultModel.Errors.Add(Constants.Errors.EmailExistsError); return(resultModel); } var result = await _userRepository.CreateAsync(signUpModel.MapToEntity(), signUpModel.Password); if (!result) { resultModel.Errors.Add(Constants.Errors.CreateUserError); return(resultModel); } user = await _userRepository.FindByEmailAsync(signUpModel.Email); if (user == null) { resultModel.Errors.Add(Constants.Errors.CreateUserError); return(resultModel); } result = await _userRepository.AddToRoleAsync(user.Id, Enums.Role.RoleName.Client.ToString()); if (!result) { resultModel.Errors.Add(Constants.Errors.CreateUserError); return(resultModel); } resultModel.Email = signUpModel.Email; resultModel.Token = await _userRepository.GenerateEmailConfirmationTokenAsync(user.Email); return(resultModel); }
public async Task <BaseModel> UpdateUserAsync(SignUpModel signUpModel) { var user = await _userRepository.FindByIdAsync(signUpModel.Id); var userModel = new UserModelItem(); if (user == null) { userModel.Errors.Add(Constants.Errors.UserNotExistsError); return(userModel); } user = signUpModel.MapToEntity(user); var result = await _userRepository.UpdateAsync(user, signUpModel.Password, signUpModel.NewPassword); if (!result) { userModel.Errors.Add(Constants.Errors.EditUserError); } return(userModel); }