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); }
public void NotifyAboutNewEmailConfirmedDeveloper(NewEmailConfirmedDeveloper @event) { NotifyAboutNewEvent(@event); }