예제 #1
0
        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);
        }
예제 #2
0
        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);
        }