public ActionResult Email(string uh, int c) { Log.Verbose("Starting Confirming email. User Id Hash = {0}", uh); Uri redirectUri = new Uri(_bingOffersBaseUri, AuthUserInvalidPage); if (string.IsNullOrEmpty(uh)) { Log.Info("Confirm Email Request with invalid paramter. User Hash is null or empty", uh); } else { try { ConfirmEntityResult result = _usersDal.ConfirmEntity(uh, EntityType.AuthenticatedEmailAddress, c); switch (result.Status) { case ConfirmStatus.CodeConfirmed: _usersDal.UpdateUserEmail(result.UserId.Value, result.EntityId, true); Log.Verbose("Email confirmed and updated for user. User Id={0} ", result.UserId); redirectUri = new Uri(_bingOffersBaseUri, string.Format(AuthUserConfirmedPage, result.EntityId)); break; case ConfirmStatus.CodeWrong: redirectUri = new Uri(_bingOffersBaseUri, AuthUserInvalidPage); Log.Verbose("Can't confirm email. The user provided wrong code. User Id Hash = {0}", uh); break; case ConfirmStatus.Invalid: redirectUri = new Uri(_bingOffersBaseUri, AuthUserInvalidPage); Log.Verbose("Can't confirm email. The confirmation code is expired. User Id Hash = {0}", uh); break; case ConfirmStatus.CodeNotFound: Log.Verbose("Can't confirm email. Cannot locate the confirmation request for this user in the system. User Id Hash = {0}", uh); break; } } catch (Exception exp) { Log.Error(exp, "Can't Confirm email. User Id Hash = {0}", uh); redirectUri = new Uri(_bingOffersBaseUri, AuthUserInvalidPage); } } return(new RedirectResult(redirectUri.ToString())); }