Exemple #1
0
        public static string ValidateReportName(ICatalogItemContext reportContext, string reportName, ObjectType objectType, string objectName, string propertyName, ErrorContext errorContext)
        {
            Global.Tracer.Assert(null != reportName);
            if (reportName.StartsWith(Uri.UriSchemeHttp + Uri.SchemeDelimiter, StringComparison.OrdinalIgnoreCase) || reportName.StartsWith(Uri.UriSchemeHttps + Uri.SchemeDelimiter, StringComparison.OrdinalIgnoreCase))
            {
                try
                {
                    new Uri(reportName);
                }
                catch (UriFormatException)
                {
                    errorContext.Register(ProcessingErrorCode.rsInvalidReportUri, Severity.Error, objectType, objectName, propertyName);
                    return(reportName);
                }
            }
            else if (reportName.Length > 0 && -1 != reportName.IndexOfAny(PublishingValidator.m_invalidCharacters.ToCharArray()))
            {
                errorContext.Register(ProcessingErrorCode.rsInvalidReportNameCharacters, Severity.Error, objectType, objectName, propertyName, PublishingValidator.m_invalidCharacters);
                return(reportName);
            }
            string text;

            try
            {
                text = reportContext.AdjustSubreportOrDrillthroughReportPath(reportName.Trim());
            }
            catch (RSException)
            {
                errorContext.Register(ProcessingErrorCode.rsInvalidReportUri, Severity.Error, objectType, objectName, propertyName);
                return(reportName);
            }
            if (text != null && reportName.Length != 0)
            {
                return(text);
            }
            errorContext.Register((ProcessingErrorCode)((reportName.Length == 0) ? 151 : 153), Severity.Error, objectType, objectName, propertyName);
            return(reportName);
        }