Example #1
0
        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());
        }
Example #2
0
        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
            }
        }
Example #3
0
        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));
        }
Example #4
0
        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());
        }