/// <summary> /// </summary> /// <param name="authCode">Get the 'code' parameter from the Azure redirect</param> /// <returns></returns> public async Task <OutlookToken> GetAccessToken(string authCode, Uri onSuccessRedirectUri) { // Get the 'code' parameter from the Azure redirect var authContext = GetAuthenticationContext(); // Use client ID and secret to establish app identity var credential = GetCredentials(); try { // Get the token var authResult = await authContext.AcquireTokenByAuthorizationCodeAsync( authCode, onSuccessRedirectUri, credential, Scopes); var outlookToken = new OutlookToken(); // Save the token in the session var token = ""; outlookToken.IsRefreshTokenExpired = false; // Try to get user info outlookToken.Email = GetUserEmail(authContext, _clientId, out token); outlookToken.Token = authResult.Token; outlookToken.RefreshToken = await GetRefreshRoken(authCode, onSuccessRedirectUri); return(outlookToken); } catch (Exception ex) { throw ex; } }
public ActionResult Edit([Bind(Include = "OutlookTokenID,Token,Email")] OutlookToken outlookToken) { if (ModelState.IsValid) { db.Entry(outlookToken).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(outlookToken)); }
public async Task <OutlookServicesClient> GetOutlookClient(OutlookToken outlookToken) { var client = new OutlookServicesClient(new Uri(_outlookApiEndpoint), async() => { // Since we have it locally from the Session, just return it here. return(outlookToken.Token); }); client.Context.SendingRequest2 += (sender, e) => InsertXAnchorMailboxHeader(sender, e, outlookToken.Email); return(client); }
public ActionResult Create([Bind(Include = "OutlookTokenID,Token,Email")] OutlookToken outlookToken) { if (ModelState.IsValid) { db.OutlookTokens.Add(outlookToken); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(outlookToken)); }
private async void AddTokenToDatabase(OutlookToken outlookToken) { if (outlookToken != null) { var dbToken = db.OutlookTokens.FirstOrDefault(n => n.Email == outlookToken.Email); if (dbToken != null) { dbToken.Token = outlookToken.Token; dbToken.RefreshToken = outlookToken.RefreshToken; dbToken.IsRefreshTokenExpired = outlookToken.IsRefreshTokenExpired; } else { db.OutlookTokens.Add(outlookToken); } db.SaveChanges(); } }