private void HandleEmailValidation(HttpContext context) { string loginUrl = WebSupport.GetLoginUrl(context); TBRLoginRoot loginRoot = TBRLoginRoot.GetOrCreateLoginRootWithAccount(loginUrl, false); string requestPath = context.Request.Path; string emailValidationID = requestPath.Substring(AuthEmailValidationLen); TBAccount account = loginRoot.Account; TBEmailValidation emailValidation = TBEmailValidation.RetrieveFromDefaultLocation(emailValidationID); if (emailValidation == null) { RespondEmailValidationRecordNotExist(context); return; } StorageSupport.DeleteInformationObject(emailValidation); if (emailValidation.ValidUntil < DateTime.UtcNow) { RespondEmailValidationExpired(context, emailValidation); return; } if (emailValidation.GroupJoinConfirmation != null) { HandleGroupJoinConfirmation(context, account, emailValidation); } else if (emailValidation.DeviceJoinConfirmation != null) { HandleDeviceJoinConfirmation(context, account, emailValidation); } else if (emailValidation.InformationInputConfirmation != null) { HandleInputJoinConfirmation(context, account, emailValidation); } else { HandleAccountEmailValidation(context, account, emailValidation); } }