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); } }