Beispiel #1
0
        public async Task <IHttpActionResult> Get(string id)
        {
            // Create a user password cradentials.
            var credential = new UserPasswordCredential(Username, Password);

            // Authenticate using created credentials
            var authenticationContext = new AuthenticationContext(AuthorityUrl);
            var authenticationResult  = await authenticationContext.AcquireTokenAsync(ResourceUrl, ClientId, credential);

            var tokenCredentials = new TokenCredentials(authenticationResult.AccessToken, "Bearer");

            using (var client = new PowerBIClient(new Uri(ApiUrl), tokenCredentials))
            {
                // Get a list of reports.
                var reports = await client.Reports.GetReportsInGroupAsync(GroupId);

                var report = reports.Value.FirstOrDefault(r => r.Id == id);

                // Generate Embed Token for reports without effective identities.
                GenerateTokenRequest generateTokenRequestParameters;
                generateTokenRequestParameters = new GenerateTokenRequest(accessLevel: "view");
                var tokenResponse = await client.Reports.GenerateTokenInGroupAsync(GroupId, report.Id, generateTokenRequestParameters);

                var reportWithToken = new ReportWithToken(report, tokenResponse.Token);

                return(Ok(reportWithToken));
            }
        }
        public async Task <IHttpActionResult> Get(string id)
        {
            var credentials = new TokenCredentials(workspaceCollectionAccessKey, "AppKey");

            using (var client = new PowerBIClient(new Uri(apiUrl), credentials))
            {
                var reportsResponse = await client.Reports.GetReportsAsync(this.workspaceCollectionName, this.workspaceId.ToString());

                var report = reportsResponse.Value.FirstOrDefault(r => r.Id == id);
                if (report == null)
                {
                    return(BadRequest($"No reports were found matching the id: {id}"));
                }

                var embedToken      = PowerBIToken.CreateReportEmbedToken(workspaceCollectionName, workspaceId.ToString(), report.Id);
                var accessToken     = embedToken.Generate(workspaceCollectionAccessKey);
                var reportWithToken = new ReportWithToken(report, accessToken);

                return(Ok(reportWithToken));
            }
        }