public async Task <User> Registration(RegistrationViewModel newUser)
        {
            using (ApplicationContext db = new ApplicationContext())
            {
                var existUser = await db.Users.FirstOrDefaultAsync(item => item.Email == newUser.Email);

                if (existUser != null)
                {
                    throw new Exception("Such user already exists");
                }

                HashService.CreatePasswordHash(newUser.Password, out var passwordSalt, out var passwordHash);
                var user = new User()
                {
                    Id           = Guid.NewGuid(),
                    UserName     = newUser.UserName,
                    PasswordSalt = passwordSalt,
                    PasswordHash = passwordHash,
                    Email        = newUser.Email,
                    FirstName    = newUser.FirstName,
                    LastName     = newUser.LastName,
                    Role         = Role.User
                };

                await db.Users.AddAsync(user);

                await db.SaveChangesAsync();

                return(user);
            }
        }
예제 #2
0
        public void CreatePasswordHash_WhenCalled_ReturnPasswordObject(string passord)
        {
            var result = _service.CreatePasswordHash(passord);

            Assert.Multiple(() =>
            {
                Assert.That(result.PasswordHash, Is.Not.Null);
                Assert.That(result.PasswordSalt, Is.Not.Null);
            });
        }
        public async Task <IResult> Handle(RegisterSellerCommand request, CancellationToken cancellationToken)
        {
            HashService.CreatePasswordHash(request.Password, out byte[] passwordHash, out byte[] passwordSalt);
            var seller = Seller.Register(request.FirstName, request.LastName, request.Phone
                                         , request.Email, request.Brand, passwordSalt, passwordHash);



            await _sellerRepository.AddAsync(seller, cancellationToken);

            return(new Result(true));
        }
        public async Task <Unit> Handle(RegisterCustomerCommand request, CancellationToken cancellationToken)
        {
            var hashedIdentity = _cipherService.Encrypt(request.IdentityNumber);

            HashService.CreatePasswordHash(request.Password, out byte[] passwordHash, out byte[] passwordSalt);
            var customter = new Customer(request.FirstName, request.LastName, request.Email, hashedIdentity,
                                         request.Address, _customerUniqunessChecker, passwordSalt, passwordHash);

            await _customerRepository.AddAsync(customter, cancellationToken);

            return(Unit.Task.Result);
        }