public async Task <ActionResult> Auth()
        {
            var authHelper = new AuthHelper();
            var appState   = new AppState();

            // get id token from successful AzureAD auth
            var openIdToken = AuthHelper.OpenIdToken(Request.Form["id_token"]);

            appState.TenantId     = openIdToken.TenantId;
            appState.TenantDomain = openIdToken.Domain;
            appState.LoggedOnUser = openIdToken.UserPrincipalName;

            // set app as authoirzed
            appState.AppIsAuthorized = true;

            // obtain access token for graph client
            var appOnlyGraphToken = await authHelper.GetAppOnlyAccessToken(SettingsHelper.GraphResourceId);

            appState.AppOnlyGraphToken = appOnlyGraphToken;

            // TODO LATER: get all users in the directory
            var graphRepo = new GraphRepository();
            var users     = await graphRepo.GetUsers(appOnlyGraphToken);

            appState.MailboxList = users;

            Session["ClientCredsAddinAppState"] = appState;

            return(new RedirectResult("/Mail"));
        }
        public async Task <ActionResult> Auth()
        {
            var authHelper = new AuthHelper();
            var appState   = new AppState();

            // set app as authoirzed
            appState.AppIsAuthorized = true;

            // obtain access token for graph client
            var appOnlyGraphToken = await authHelper.GetAppOnlyAccessToken();

            appState.AppOnlyGraphToken = appOnlyGraphToken;

            // TODO LATER: get all users in the directory
            var graphRepo = new GraphRepository();
            var users     = await graphRepo.GetUsers(appOnlyGraphToken);

            appState.MailboxList = users;

            Session["ClientCredsAddinAppState"] = appState;

            return(new RedirectResult("/Mail"));
        }