public CompleteActivationResult TryCompleteActivation(string emailAddress, string code)
{
if (!this.accountActivationRepo.Contains(emailAddress))
{
return CompleteActivationResult.NotFound;
}
var accountActivation = this.accountActivationRepo.Open(emailAddress);
if (accountActivation.ActivationCode != code)
{
return CompleteActivationResult.IncorrectCode;
}
var completed = accountActivation.TryComplete();
if (!completed)
{
return CompleteActivationResult.Expired;
}
this.userRepo.Open(accountActivation.Username).Activate();
return CompleteActivationResult.Success;
}