public RegistrationResult?Register(string token) { var result = RegistrationResultFactory.New(token, ValidationState.Registered); if (_registrations.Add(result)) { return(result); } return(null); }
public RegistrationResult Validate(string token) { try { var result = _registrations.Single(x => string.Equals(token, x.Token, StringComparison.OrdinalIgnoreCase)); if (!_registrations.TryGetValue(result, out var registrationResult)) { return(RegistrationResultFactory.Invalid(token)); } registrationResult.State = ValidationState.Validated; _registrations.Remove(result); return(_registrations.Add(registrationResult) ? registrationResult : RegistrationResultFactory.Invalid(token)); } catch (Exception) { return(RegistrationResultFactory.Invalid(token)); } }