Example #1
0
        public async Task <UserAuthDto> CreateAsync(UserCreateDto userDto)
        {
            if (await _userRepository.AnyUserAsync(x => x.Email == userDto.Email))
            {
                throw new FieldLogicException($"User with email {userDto.Email} already exists!",
                                              nameof(userDto.Email));
            }

            var user = Mapper.Map <User>(userDto);

            user.HashedPassword = _passwordHasher.HashPassword(user, userDto.Password);
            user.RoleId         = await _roleRepository.GetRoleIdByNameAsync(userDto.Role);

            _userRepository.Create(user);
            await SaveProvider.SaveAsync();

            await _pictureService.ChangeImageTagAsync(user.ImagePublicId, CloudinaryTagDefaults.Employee);

            await _pictureService.DeleteTemporaryImagesAsync();

            return(Mapper.Map <UserAuthDto>(user));
        }