public string GetNextCatalogItem(string type)
        {
            switch (type.ToLowerInvariant())
            {
            case "report":
                return(GetNextReport());

            case "mobilereport":
                return(ItemSelector.GetItem(this.ExistingMobileReports));

            case "kpi":
                return(ItemSelector.GetItem(this.ExistingKpis));

            case "powerbireport":
                return(ItemSelector.GetItem(this.ExistingPowerBIReports));

            case "powerbireportembedded":
                return(ItemSelector.GetItem(this.ExistingEmbeddedPowerBIReports));

            case "powerbireportdirectquery":
                return(ItemSelector.GetItem(this.ExistingDirectQueryPowerBIReports));

            default:
                throw new Exception("Type {0} is not supported.");
            }
        }
        /// <summary>
        /// Get next report item (random/sequetial)
        /// It gets from existing reports collection.
        /// </summary>
        /// <returns>Report Path That Exists</returns>
        public string GetNextReport()
        {
            string report;

            if (ItemSelector == null)
            {
                throw new Exception("The item selector need to be intialized for ContenManager before the GetNextReport() method is called");
            }

            if (isReportsWeightSet)
            {
                report = ItemSelector.GetItem(this.WeightedReports);
            }
            else
            {
                report = ItemSelector.GetItem(this.ExistingReports);
            }

            if (_badMethodReportCombinations != null && IsBlockedCombination(report))
            {
                report = GetNextReport();
            }

            return(report);
        }