private static User CreateUser(RegistrationRequest request, string password)
        {
            string passwordHash;
            using (var sha1 = new SHA1CryptoServiceProvider())
            {
                // TODO: использовать соль!
                passwordHash = Encoding.UTF8.GetString(sha1.ComputeHash(Encoding.UTF8.GetBytes(password)));
            }

            var user = new User
            {
                Email = request.Email,
                PasswordHash = passwordHash
            };

            return user;
        }
        public Result Execute(string userEmail)
        {
            if (!IsValidEmail(userEmail))
            {
                return Fail(() => InvalidEmail, "Невалидный email: " + userEmail);
            }

            var request = new RegistrationRequest
            {
                Id = Guid.NewGuid(),
                Email = userEmail
            };

            if (IsEmailRegistered(userEmail))
            {
                return Fail(() => EmailAlreadyRegistered, "Пользователь с таким email уже существует");
            }

            // получаем корзину
            var cartResult = _getCartCmd.Execute();
            if (cartResult.HasErrors)
            {
                return cartResult.Outcome;
            }

            // если корзина не пуста, созраняем ссылку в заявке
            if (cartResult.Value.Items.Any())
            {
                request.Cart = cartResult.Value;
            }

            // добавляем заявку
            _db.RegistrationRequests.Add(request);

            // отправляем письмо
            _mailService.SendUserConfirmatiom(userEmail, request.Id.ToString());

            return Ok();
        }
 private static bool CheckRequestExists(RegistrationRequest request)
 {
     return request != null;
 }