private void TokenReceived() { using (var trs = new TransactionScope()) { DateTime now = DateTime.Now; // Time of request ADOLinkRequest alr = new ADOLinkRequest(); LinkRequest lr = alr.Insert( new LinkRequest() { RequestedOn = DateTime.Now, Token = TextBox3.Text }); // Get a link for the token. ADOToken at = new ADOToken(); IToken token = at.FindUnexpired(lr.Token); if (token == null) { Response.Redirect("TokenNotFound.aspx"); return; } ADOTokenType att = new ADOTokenType(); TokenType tt = att.ById(token.TokenTypeId); //Now get Token request for this token. ADOTokenRequest atr = new ADOTokenRequest(); TokenRequest tr = atr.FindFor(token); bool expiredNow = token.SingleUse || tr.RequestedOn.AddSeconds(token.ValidForSeconds) <= now; if (expiredNow) { token = at.Expire(token); } if (token.IsExpired) { //Get token service TokenService ts = new TokenServices().GetTokenService(tt); //Make token available again ts.ReturnToken(token); } trs.Complete(); Response.Redirect( String.Format("Transfer.aspx?url2={0}", Server.UrlEncode(tr.LinkHref))); return; } }