public ActionResult LOBReport() { //if a user is already signed in but didn't go through the process of getting authorization code in auth config, //then GetAccessTokenAsync will succeed, but the returned access token can't be used to access the resource. //we have to ask the user to sign out and sign in again to get the authorization code first then access token. if (TokenCache.DefaultShared.Count > 0) { IEnumerable <TokenCacheItem> tokens = TokenCache.DefaultShared.ReadItems(); ViewBag.accessToken = tokens.First().AccessToken; string responseContent = string.Empty; string reportsUri = "https://api.powerbi.com/v1.0/myorg/reports"; System.Net.WebRequest request = System.Net.WebRequest.Create(reportsUri) as System.Net.HttpWebRequest; request.Method = "GET"; request.ContentLength = 0; request.Headers.Add("Authorization", String.Format("Bearer {0}", ViewBag.AccessToken)); using (var response = request.GetResponse() as System.Net.HttpWebResponse) { using (var reader = new System.IO.StreamReader(response.GetResponseStream())) { responseContent = reader.ReadToEnd(); PBIReports Reports = JsonConvert.DeserializeObject <PBIReports>(responseContent); ViewBag.Reports = new SelectList(Reports.value.OrderBy(t => t.name), "embedUrl", "name"); } } } return(View()); }
private void Refresh() { if (TokenService.HasAuthenticatedUser) { expUser.Header = TokenService.AuthenticatedUser; lblName.Content = TokenService.AuthenticatedUserEmail; twWorkspaceHierarchy.Items.Clear(); PBIGroups groups = PBIManagerREST.GetGroups(); foreach (PBIGroup group in groups.List) { //http://blogs.microsoft.co.il/pavely/2014/07/12/data-binding-for-a-wpf-treeview/ TreeViewItem g = new TreeViewItem() { Header = group.name, Tag = "Group", Uid = group.id }; //Add image to Group level PBIReports reports = PBIManagerREST.GetReports(group.id); foreach (PBIReport report in reports.List) { TreeViewItem r = new TreeViewItem() { Header = report.name, Tag = "Report", Uid = report.id }; g.Items.Add(r); } twWorkspaceHierarchy.Items.Add(g); } } else { expUser.Header = "Sign in"; //hide expander icon } }
public ActionResult PBI() { if (Session["authResult"] != null) { //Get the authentication result from the session authResult = (AuthenticationResult)Session["authResult"]; //Set user and toek from authentication result ViewBag.user = authResult.UserInfo.DisplayableId; } string responseContent = string.Empty; PBIReports PBIReports = null; AuthenticationResult AAR = Session["authResult"] as AuthenticationResult; //Configure reports request System.Net.WebRequest request = System.Net.WebRequest.Create(String.Format("{0}reports", baseUri)) as System.Net.HttpWebRequest; request.Method = "GET"; request.ContentLength = 0; request.Headers.Add("Authorization", String.Format("Bearer {0}", AAR.AccessToken)); //Get reports response from request.GetResponse() using (var response = request.GetResponse() as System.Net.HttpWebResponse) { //Get reader from response stream using (var reader = new System.IO.StreamReader(response.GetResponseStream())) { responseContent = reader.ReadToEnd(); //Deserialize JSON string PBIReports = JsonConvert.DeserializeObject <PBIReports>(responseContent); } } return(View(PBIReports)); }
public async Task <ActionResult> LOBReport() { ViewBag.accessToken = await GetTokenForApplication(); string responseContent = string.Empty; string reportsUri = "https://api.powerbi.com/v1.0/myorg/reports"; System.Net.WebRequest request = System.Net.WebRequest.Create(reportsUri) as System.Net.HttpWebRequest; request.Method = "GET"; request.ContentLength = 0; request.Headers.Add("Authorization", String.Format("Bearer {0}", ViewBag.AccessToken)); using (var response = request.GetResponse() as System.Net.HttpWebResponse) { using (var reader = new System.IO.StreamReader(response.GetResponseStream())) { responseContent = reader.ReadToEnd(); PBIReports Reports = JsonConvert.DeserializeObject <PBIReports>(responseContent); ViewBag.Reports = new SelectList(Reports.value.OrderBy(t => t.name), "embedUrl", "name"); } } return(View()); }