Esempio n. 1
0
        public void ConfirmUserRegistration(string confirmationKey)
        {
            if (string.IsNullOrWhiteSpace(confirmationKey))
            {
                throw new ArgumentException("Not set", nameof(confirmationKey));
            }

            var confirmation = _confirmationRepository.FindByConfirmationKey(confirmationKey);

            if (confirmation == null)
            {
                throw new ConfirmationNotFoundException(confirmationKey);
            }

            confirmation.Confirm();
            _confirmationRepository.Update(confirmation);

            var user = _userRepository.GetById(confirmation.UserId);

            if (user == null)
            {
                throw new ApplicationException("Пользователь не зарегистрирован.");
            }

            user.Confirm();
            _userRepository.Update(user);

            var userSession = _userSessionRepository.GetLastSession(confirmation.UserId);

            if (userSession == null)
            {
                userSession =
                    new UserSession(confirmation.UserId);
                _userSessionRepository.Insert(userSession);
            }
        }