public Report PostReport()

in src/Common/Common.Api/Reports/ReportsClient.cs [135:172]


        public Report PostReport(string reportName, string filePath, ImportConflictHandlerModeEnum nameConflict, int timeout)
        {
            var importId = this.PostImport(reportName, filePath, nameConflict);

            Nullable<DateTime> timeoutAt = null;
            if (timeout > 0)
            {
                timeoutAt = DateTime.Now.AddSeconds(timeout);
            }

            Import import = null;
            do
            {
                import = this.GetImport(importId: importId);

                if (import.ImportState != "Succeeded")
                {
                    if (timeoutAt != null && DateTime.Now > timeoutAt)
                    {
                        throw new TimeoutException();
                    }
                    else
                    {
                        System.Threading.Thread.Sleep(500);
                    }
                }

            } while (import.ImportState == "Publishing");

            if (import.ImportState != "Succeeded")
            {
                throw new ImportException(importId, reportName, import.ImportState);
            }

            // In case the import has more than one report
            var actualReportName = reportName.EndsWith(".pbix") ? reportName.Substring(0, reportName.Length - 5) : reportName;
            return import.Reports.Where(r => r.Name == actualReportName).LastOrDefault() ?? import.Reports.FirstOrDefault(); //For robust
        }