/// <summary> /// Get embed params for a report /// </summary> /// <returns>Wrapper object containing Embed token, Embed URL, Report Id, and Report name for single report</returns> public static async Task <ReportEmbedConfig> GetEmbedParams(Guid workspaceId, Guid reportId, [Optional] Guid additionalDatasetId) { using (var pbiClient = await GetPowerBiClient()) { // Get report info var pbiReport = pbiClient.Reports.GetReportInGroup(workspaceId, reportId); /* * Check if dataset is present for the corresponding report * If no dataset is present then it is a RDL report */ bool isRDLReport = String.IsNullOrEmpty(pbiReport.DatasetId); EmbedToken embedToken; if (isRDLReport) { // Get Embed token for RDL Report embedToken = await GetEmbedTokenForRDLReport(workspaceId, reportId); } else { // Create list of dataset var datasetIds = new List <Guid>(); // Add dataset associated to the report datasetIds.Add(Guid.Parse(pbiReport.DatasetId)); // Append additional dataset to the list to achieve dynamic binding later if (additionalDatasetId != Guid.Empty) { datasetIds.Add(additionalDatasetId); } // Get Embed token multiple resources embedToken = await GetEmbedToken(reportId, datasetIds, workspaceId); } // Add report data for embedding var embedReports = new List <EmbedReport>() { new EmbedReport { ReportId = pbiReport.Id, ReportName = pbiReport.Name, EmbedUrl = pbiReport.EmbedUrl } }; // Capture embed params var embedParams = new ReportEmbedConfig { EmbedReports = embedReports, EmbedToken = embedToken }; return(embedParams); } }
/// <returns></returns> public async Task OnGetAsync(Guid reportID, string name, string role) { if (name == null && role == null) { ReportDetail = await _reportRepo.GetReportForIdAsync(reportID); } else { ReportDetail = await _reportRepo.GetReportForIdAsync(reportID, name, role); } }
/// <summary> /// Get embed params for multiple reports for a single workspace /// </summary> /// <returns>Wrapper object containing Embed token, Embed URL, Report Id, and Report name for multiple reports</returns> /// <remarks>This function is not supported for RDL Report</remakrs> public static async Task <ReportEmbedConfig> GetEmbedParams(Guid workspaceId, IList <Guid> reportIds, [Optional] IList <Guid> additionalDatasetIds) { // Note: This method is an example and is not consumed in this sample app using (var pbiClient = await GetPowerBiClient()) { // Create mapping for reports and Embed URLs var embedReports = new List <EmbedReport>(); // Create list of datasets var datasetIds = new List <Guid>(); // Get datasets and Embed URLs for all the reports foreach (var reportId in reportIds) { // Get report info var pbiReport = pbiClient.Reports.GetReportInGroup(workspaceId, reportId); // Append to existing list of datasets to achieve dynamic binding later datasetIds.Add(Guid.Parse(pbiReport.DatasetId)); // Add report data for embedding embedReports.Add(new EmbedReport { ReportId = pbiReport.Id, ReportName = pbiReport.Name, EmbedUrl = pbiReport.EmbedUrl }); } // Append to existing list of datasets to achieve dynamic binding later if (additionalDatasetIds != null) { datasetIds.AddRange(additionalDatasetIds); } // Get Embed token multiple resources var embedToken = await GetEmbedToken(reportIds, datasetIds, workspaceId); // Capture embed params var embedParams = new ReportEmbedConfig { EmbedReports = embedReports, EmbedToken = embedToken }; return(embedParams); } }