Beispiel #1
0
        public void ConfirmEmail(string confirmationToken)
        {
            Require.NotNull(confirmationToken, nameof(confirmationToken));

            var validationRequest = _validationRequestsRepository.GetMailValidationRequest(confirmationToken);

            if (validationRequest == null)
            {
                throw new TokenNotFoundException();
            }
            var userAccount = _userRepository.GetAccount(validationRequest.UserId);

            if (userAccount.ConfirmationStatus != ConfirmationStatus.Unconfirmed)
            {
                _validationRequestsRepository.DeleteValidationToken(validationRequest);
                throw new InvalidOperationException("Trying to confirm already confirmed profile ");
            }

            userAccount.ConfirmationStatus = ConfirmationStatus.EmailConfirmed;

            _userRepository.UpdateAccount(userAccount);

            _validationRequestsRepository.DeleteValidationToken(validationRequest);

            var @event = new NewEmailConfirmedDeveloper(userAccount.UserId);

            _eventBus.PublishEvent("Notification", "new_email_confirmed_developer", @event);
        }
        private string Describe(NewEmailConfirmedDeveloper @event)
        {
            Require.NotNull(@event, nameof(@event));

            var developer         = _userRepository.GetAccount(@event.UserId);
            var developerFullName = developer.Firstname + " " + developer.Lastname;

            return(string.Format(EventDescriptionResources.NewEmailConfirmedDeveloper, developerFullName,
                                 developer.Email.Address));
        }
        public void EventIsStoredSuccessfully()
        {
            var provider = new DatabaseSessionProvider();

            provider.OpenSession();
            var repository         = new EventRepository(provider);
            var eventInfo          = new NewEmailConfirmedDeveloper(1);
            var @event             = new Event(eventInfo);
            var receivers          = new[] { 30, 31, 32 };
            var distributionPolicy = new DistributionPolicy(receivers);

            repository.DistrubuteEvent(@event, distributionPolicy);
            var receivedEvent = repository.GetEventsByUser(receivers[0], false).Single();

            Assert.AreEqual(@event.EventInfo, receivedEvent.EventInfo);
            Assert.AreEqual(@event.EventType, receivedEvent.EventType);
        }
Beispiel #4
0
 public void NotifyAboutNewEmailConfirmedDeveloper(NewEmailConfirmedDeveloper @event)
 {
     NotifyAboutNewEvent(@event);
 }