public CandidateMagicLinkExchangeResult(Candidate candidate) { Candidate = candidate; if (Candidate == null) { Status = ExchangeStatus.Invalid; } else if (Candidate.MagicLinkTokenAlreadyExchanged()) { Status = ExchangeStatus.AlreadyExchanged; } else if (Candidate.MagicLinkTokenExpired()) { Status = ExchangeStatus.Expired; } else { Status = ExchangeStatus.Valid; } }